标签传播算法:LPA

1.半监督学习

让学习器不依赖外界交互,自动的利用未标记样本来提升学习性能,这种就是半监督学习,主要用来处理现实中有标记数据少、未标记数据多的问题,要利用未标记的数据,必须要做一些将未标记样本所揭示的数据分布信息与类别标签相联系的假设。它基于三大假设:
a)Smoothness平滑假设:相似的数据具有相同的label。
b)Cluster聚类假设:处于同一个聚类下的数据具有相同label。
c)Manifold流形假设:处于同一流形结构下的数据具有相同label。

2.标签传播算法LPA

标签传播算法(LPA)是基于图的半监督学习算法,我们为所有的数据构建一个图,图的节点就是一个数据点,包含labeled和unlabeled的数据。节点i和节点j的边表示他们的相似度。 W i j Wij Wij在关系网络中就可以节点i与j之间的亲密度值代替。
标签传播算法是通过节点之间的边进行传播label,边的权重越大,说明更容易传播过去,根据权重 W i j Wij Wij定义 N ∗ N N*N N∗N的概率转移矩阵P:

Pij表示从节点i转移到节点j的概率。
假设有C个类和L个labeled样本,我们定义一个LxC的label矩阵YL,同样,我们也给U个unlabeled样本一个UxC的label矩阵YU,初始时将值都赋值成-1。把他们合并,我们得到一个NxC的soft label矩阵F=[YL;YU]。

算法步骤如下:
(1)执行传播:F=PF
(2)将F中有标签的部分重置成原始值:FL=YL
(3)重复1,2两步,直到收敛

步骤1就是将概率矩阵P和标签矩阵F进行相乘,此时每一个节点都将自己的label以P的概率传播给其他节点,步骤2,本来就有labeled的数据是确定的,每次迭代的时候,都需要回归它本来的label。

3.python代码

因为我这里是基于通话记录来实现LPA算法,这里的 w e i g h t weight weight是算的节点之间的亲密度,具体的公式如下:$weight(A,B) = 0.5*(0.5count(A->B)/count(A) + 0.5duration(A->B)/duration(A)) + 0.5*(0.5count(B->A)/count(B) + 0.5duration(B->A)/duration(B)) $ ,进而得到概率矩阵P

# -*- coding: utf-8 -*-
import pandas as pd
import os
import numpy as npdef LPA(max_iter=500, tol=1e-3):data = pd.read_csv(os.getcwd() + "/data1.csv", low_memory=False)  # 含概率矩阵P和标签的数据集num_label_samples = len(data) - (data["dsc_black_list"].isnull()).sum()num_unlabel_samples = (data["dsc_black_list"].isnull()).sum()num_samples = len(data)num_classes = 2clamp_data_label = np.zeros((num_label_samples, num_classes), np.float32)labels = list(data[~data["dsc_black_list"].isnull()]["dsc_black_list"].values)for i in range(num_label_samples):clamp_data_label[i][int(labels[i])] = 1.0label_function = np.zeros((num_samples, num_classes), np.float32)label_function[0: num_label_samples] = clamp_data_labellabel_function[num_label_samples: num_samples] = -1  # 定义标签矩阵Fdata["weight_sum"] = data.iloc[:, 1:-2].sum(axis=1)for i in data.columns[1:-3]:data[i] = data[i] / data["weight_sum"]affinity_matrix = np.array(data.iloc[:,1:-3])  # 定义概率矩阵Piter = 0pre_label_function = np.zeros((num_samples, num_classes), np.float32)changed = np.abs(pre_label_function - label_function).sum()while iter < max_iter and changed > tol:if iter % 1 == 0:print("---> Iteration %d/%d, changed: %f" % (iter, max_iter, changed))pre_label_function = label_functioniter += 1label_function = np.dot(affinity_matrix, label_function)label_function[0: num_label_samples] = clamp_data_label  # 每次迭代后都需要将labeled数据的label重置changed = np.abs(pre_label_function - label_function).sum()unlabel_data_labels = np.zeros(num_unlabel_samples)for i in range(num_unlabel_samples):unlabel_data_labels[i] = np.argmax(label_function[i + num_label_samples])for i in range(len(unlabel_data_labels)):if unlabel_data_labels[i] == 1:print(i + num_label_samples, "==>", data[data['mobile_iid'] == i + num_label_samples]["mobile"])return unlabel_data_labelsif __name__ == '__main__':unlabel_data_labels = LPA()

运行结果

/Users/xudong/opt/anaconda3/python.app/Contents/MacOS/python /Users/xudong/PycharmProjects/关系网络/相对亲密度计算/标签传播.py
---> Iteration 0/500, changed: 41348.000000
---> Iteration 1/500, changed: 32574.608464
---> Iteration 2/500, changed: 643.141368
---> Iteration 3/500, changed: 143.305840
---> Iteration 4/500, changed: 178.247241
---> Iteration 5/500, changed: 63.273638
---> Iteration 6/500, changed: 79.111427
---> Iteration 7/500, changed: 35.366934
---> Iteration 8/500, changed: 44.377126
---> Iteration 9/500, changed: 22.551544
---> Iteration 10/500, changed: 28.414276
---> Iteration 11/500, changed: 15.621304
---> Iteration 12/500, changed: 19.760175
---> Iteration 13/500, changed: 11.449968
---> Iteration 14/500, changed: 14.530995
---> Iteration 15/500, changed: 8.743314
---> Iteration 16/500, changed: 11.123148
---> Iteration 17/500, changed: 6.887087
---> Iteration 18/500, changed: 8.776184
---> Iteration 19/500, changed: 5.558837
---> Iteration 20/500, changed: 7.090529
---> Iteration 21/500, changed: 4.575745
---> Iteration 22/500, changed: 5.839091
---> Iteration 23/500, changed: 3.827748
---> Iteration 24/500, changed: 4.884682
---> Iteration 25/500, changed: 3.245352
---> Iteration 26/500, changed: 4.140333
---> Iteration 27/500, changed: 2.782945
---> Iteration 28/500, changed: 3.548713
---> Iteration 29/500, changed: 2.409612
---> Iteration 30/500, changed: 3.070794
---> Iteration 31/500, changed: 2.103816
---> Iteration 32/500, changed: 2.679272
---> Iteration 33/500, changed: 1.850186
---> Iteration 34/500, changed: 2.354585
---> Iteration 35/500, changed: 1.637520
---> Iteration 36/500, changed: 2.082428
---> Iteration 37/500, changed: 1.457493
---> Iteration 38/500, changed: 1.852140
---> Iteration 39/500, changed: 1.303815
---> Iteration 40/500, changed: 1.655648
---> Iteration 41/500, changed: 1.171656
---> Iteration 42/500, changed: 1.486742
---> Iteration 43/500, changed: 1.057253
---> Iteration 44/500, changed: 1.340583
---> Iteration 45/500, changed: 0.957639
---> Iteration 46/500, changed: 1.213351
---> Iteration 47/500, changed: 0.870445
---> Iteration 48/500, changed: 1.101998
---> Iteration 49/500, changed: 0.793759
---> Iteration 50/500, changed: 1.004064
---> Iteration 51/500, changed: 0.726023
---> Iteration 52/500, changed: 0.917549
---> Iteration 53/500, changed: 0.665956
---> Iteration 54/500, changed: 0.840808
---> Iteration 55/500, changed: 0.612495
---> Iteration 56/500, changed: 0.772483
---> Iteration 57/500, changed: 0.564754
---> Iteration 58/500, changed: 0.711439
---> Iteration 59/500, changed: 0.521989
---> Iteration 60/500, changed: 0.656724
---> Iteration 61/500, changed: 0.483567
---> Iteration 62/500, changed: 0.607536
---> Iteration 63/500, changed: 0.448953
---> Iteration 64/500, changed: 0.563191
---> Iteration 65/500, changed: 0.417689
---> Iteration 66/500, changed: 0.523107
---> Iteration 67/500, changed: 0.389381
---> Iteration 68/500, changed: 0.486785
---> Iteration 69/500, changed: 0.363689
---> Iteration 70/500, changed: 0.453795
---> Iteration 71/500, changed: 0.340320
---> Iteration 72/500, changed: 0.423764
---> Iteration 73/500, changed: 0.319018
---> Iteration 74/500, changed: 0.396370
---> Iteration 75/500, changed: 0.299560
---> Iteration 76/500, changed: 0.371330
---> Iteration 77/500, changed: 0.281752
---> Iteration 78/500, changed: 0.348399
---> Iteration 79/500, changed: 0.265423
---> Iteration 80/500, changed: 0.327360
---> Iteration 81/500, changed: 0.250423
---> Iteration 82/500, changed: 0.308023
---> Iteration 83/500, changed: 0.236619
---> Iteration 84/500, changed: 0.290222
---> Iteration 85/500, changed: 0.223894
---> Iteration 86/500, changed: 0.273807
---> Iteration 87/500, changed: 0.212145
---> Iteration 88/500, changed: 0.258648
---> Iteration 89/500, changed: 0.201278
---> Iteration 90/500, changed: 0.244627
---> Iteration 91/500, changed: 0.191213
---> Iteration 92/500, changed: 0.231641
---> Iteration 93/500, changed: 0.181875
---> Iteration 94/500, changed: 0.219597
---> Iteration 95/500, changed: 0.173201
---> Iteration 96/500, changed: 0.208411
---> Iteration 97/500, changed: 0.165130
---> Iteration 98/500, changed: 0.198009
---> Iteration 99/500, changed: 0.157611
---> Iteration 100/500, changed: 0.188325
---> Iteration 101/500, changed: 0.150597
---> Iteration 102/500, changed: 0.179297
---> Iteration 103/500, changed: 0.144046
---> Iteration 104/500, changed: 0.170873
---> Iteration 105/500, changed: 0.137918
---> Iteration 106/500, changed: 0.163002
---> Iteration 107/500, changed: 0.132180
---> Iteration 108/500, changed: 0.155640
---> Iteration 109/500, changed: 0.126801
---> Iteration 110/500, changed: 0.148748
---> Iteration 111/500, changed: 0.121751
---> Iteration 112/500, changed: 0.142288
---> Iteration 113/500, changed: 0.117007
---> Iteration 114/500, changed: 0.136228
---> Iteration 115/500, changed: 0.112543
---> Iteration 116/500, changed: 0.130538
---> Iteration 117/500, changed: 0.108340
---> Iteration 118/500, changed: 0.125190
---> Iteration 119/500, changed: 0.104378
---> Iteration 120/500, changed: 0.120158
---> Iteration 121/500, changed: 0.100640
---> Iteration 122/500, changed: 0.115421
---> Iteration 123/500, changed: 0.097108
---> Iteration 124/500, changed: 0.110956
---> Iteration 125/500, changed: 0.093769
---> Iteration 126/500, changed: 0.106746
---> Iteration 127/500, changed: 0.090610
---> Iteration 128/500, changed: 0.102771
---> Iteration 129/500, changed: 0.087617
---> Iteration 130/500, changed: 0.099016
---> Iteration 131/500, changed: 0.084780
---> Iteration 132/500, changed: 0.095466
---> Iteration 133/500, changed: 0.082089
---> Iteration 134/500, changed: 0.092108
---> Iteration 135/500, changed: 0.079532
---> Iteration 136/500, changed: 0.088928
---> Iteration 137/500, changed: 0.077103
---> Iteration 138/500, changed: 0.085915
---> Iteration 139/500, changed: 0.074793
---> Iteration 140/500, changed: 0.083057
---> Iteration 141/500, changed: 0.072593
---> Iteration 142/500, changed: 0.080346
---> Iteration 143/500, changed: 0.070499
---> Iteration 144/500, changed: 0.077772
---> Iteration 145/500, changed: 0.068502
---> Iteration 146/500, changed: 0.075327
---> Iteration 147/500, changed: 0.066597
---> Iteration 148/500, changed: 0.073001
---> Iteration 149/500, changed: 0.064778
---> Iteration 150/500, changed: 0.070789
---> Iteration 151/500, changed: 0.063041
---> Iteration 152/500, changed: 0.068683
---> Iteration 153/500, changed: 0.061380
---> Iteration 154/500, changed: 0.066676
---> Iteration 155/500, changed: 0.059792
---> Iteration 156/500, changed: 0.064764
---> Iteration 157/500, changed: 0.058272
---> Iteration 158/500, changed: 0.062940
---> Iteration 159/500, changed: 0.056816
---> Iteration 160/500, changed: 0.061199
---> Iteration 161/500, changed: 0.055421
---> Iteration 162/500, changed: 0.059537
---> Iteration 163/500, changed: 0.054083
---> Iteration 164/500, changed: 0.057949
---> Iteration 165/500, changed: 0.052800
---> Iteration 166/500, changed: 0.056431
---> Iteration 167/500, changed: 0.051568
---> Iteration 168/500, changed: 0.054978
---> Iteration 169/500, changed: 0.050384
---> Iteration 170/500, changed: 0.053589
---> Iteration 171/500, changed: 0.049247
---> Iteration 172/500, changed: 0.052258
---> Iteration 173/500, changed: 0.048154
---> Iteration 174/500, changed: 0.050982
---> Iteration 175/500, changed: 0.047102
---> Iteration 176/500, changed: 0.049760
---> Iteration 177/500, changed: 0.046090
---> Iteration 178/500, changed: 0.048587
---> Iteration 179/500, changed: 0.045115
---> Iteration 180/500, changed: 0.047462
---> Iteration 181/500, changed: 0.044175
---> Iteration 182/500, changed: 0.046382
---> Iteration 183/500, changed: 0.043270
---> Iteration 184/500, changed: 0.045344
---> Iteration 185/500, changed: 0.042397
---> Iteration 186/500, changed: 0.044347
---> Iteration 187/500, changed: 0.041554
---> Iteration 188/500, changed: 0.043388
---> Iteration 189/500, changed: 0.040741
---> Iteration 190/500, changed: 0.042465
---> Iteration 191/500, changed: 0.039956
---> Iteration 192/500, changed: 0.041577
---> Iteration 193/500, changed: 0.039198
---> Iteration 194/500, changed: 0.040722
---> Iteration 195/500, changed: 0.038464
---> Iteration 196/500, changed: 0.039898
---> Iteration 197/500, changed: 0.037756
---> Iteration 198/500, changed: 0.039104
---> Iteration 199/500, changed: 0.037070
---> Iteration 200/500, changed: 0.038338
---> Iteration 201/500, changed: 0.036406
---> Iteration 202/500, changed: 0.037599
---> Iteration 203/500, changed: 0.035764
---> Iteration 204/500, changed: 0.036886
---> Iteration 205/500, changed: 0.035142
---> Iteration 206/500, changed: 0.036197
---> Iteration 207/500, changed: 0.034539
---> Iteration 208/500, changed: 0.035532
---> Iteration 209/500, changed: 0.033954
---> Iteration 210/500, changed: 0.034889
---> Iteration 211/500, changed: 0.033388
---> Iteration 212/500, changed: 0.034268
---> Iteration 213/500, changed: 0.032839
---> Iteration 214/500, changed: 0.033666
---> Iteration 215/500, changed: 0.032305
---> Iteration 216/500, changed: 0.033085
---> Iteration 217/500, changed: 0.031788
---> Iteration 218/500, changed: 0.032521
---> Iteration 219/500, changed: 0.031285
---> Iteration 220/500, changed: 0.031976
---> Iteration 221/500, changed: 0.030797
---> Iteration 222/500, changed: 0.031447
---> Iteration 223/500, changed: 0.030323
---> Iteration 224/500, changed: 0.030935
---> Iteration 225/500, changed: 0.029862
---> Iteration 226/500, changed: 0.030438
---> Iteration 227/500, changed: 0.029414
---> Iteration 228/500, changed: 0.029957
---> Iteration 229/500, changed: 0.028978
---> Iteration 230/500, changed: 0.029489
---> Iteration 231/500, changed: 0.028554
---> Iteration 232/500, changed: 0.029035
---> Iteration 233/500, changed: 0.028142
---> Iteration 234/500, changed: 0.028595
---> Iteration 235/500, changed: 0.027740
---> Iteration 236/500, changed: 0.028167
---> Iteration 237/500, changed: 0.027349
---> Iteration 238/500, changed: 0.027751
---> Iteration 239/500, changed: 0.026968
---> Iteration 240/500, changed: 0.027346
---> Iteration 241/500, changed: 0.026596
---> Iteration 242/500, changed: 0.026953
---> Iteration 243/500, changed: 0.026234
---> Iteration 244/500, changed: 0.026570
---> Iteration 245/500, changed: 0.025881
---> Iteration 246/500, changed: 0.026198
---> Iteration 247/500, changed: 0.025537
---> Iteration 248/500, changed: 0.025836
---> Iteration 249/500, changed: 0.025202
---> Iteration 250/500, changed: 0.025483
---> Iteration 251/500, changed: 0.024874
---> Iteration 252/500, changed: 0.025139
---> Iteration 253/500, changed: 0.024554
---> Iteration 254/500, changed: 0.024804
---> Iteration 255/500, changed: 0.024242
---> Iteration 256/500, changed: 0.024478
---> Iteration 257/500, changed: 0.023937
---> Iteration 258/500, changed: 0.024159
---> Iteration 259/500, changed: 0.023640
---> Iteration 260/500, changed: 0.023849
---> Iteration 261/500, changed: 0.023349
---> Iteration 262/500, changed: 0.023546
---> Iteration 263/500, changed: 0.023065
---> Iteration 264/500, changed: 0.023250
---> Iteration 265/500, changed: 0.022787
---> Iteration 266/500, changed: 0.022962
---> Iteration 267/500, changed: 0.022515
---> Iteration 268/500, changed: 0.022680
---> Iteration 269/500, changed: 0.022249
---> Iteration 270/500, changed: 0.022405
---> Iteration 271/500, changed: 0.021989
---> Iteration 272/500, changed: 0.022136
---> Iteration 273/500, changed: 0.021735
---> Iteration 274/500, changed: 0.021873
---> Iteration 275/500, changed: 0.021486
---> Iteration 276/500, changed: 0.021617
---> Iteration 277/500, changed: 0.021242
---> Iteration 278/500, changed: 0.021366
---> Iteration 279/500, changed: 0.021004
---> Iteration 280/500, changed: 0.021120
---> Iteration 281/500, changed: 0.020770
---> Iteration 282/500, changed: 0.020880
---> Iteration 283/500, changed: 0.020541
---> Iteration 284/500, changed: 0.020645
---> Iteration 285/500, changed: 0.020317
---> Iteration 286/500, changed: 0.020415
---> Iteration 287/500, changed: 0.020097
---> Iteration 288/500, changed: 0.020189
---> Iteration 289/500, changed: 0.019882
---> Iteration 290/500, changed: 0.019969
---> Iteration 291/500, changed: 0.019671
---> Iteration 292/500, changed: 0.019753
---> Iteration 293/500, changed: 0.019464
---> Iteration 294/500, changed: 0.019541
---> Iteration 295/500, changed: 0.019260
---> Iteration 296/500, changed: 0.019333
---> Iteration 297/500, changed: 0.019061
---> Iteration 298/500, changed: 0.019130
---> Iteration 299/500, changed: 0.018866
---> Iteration 300/500, changed: 0.018931
---> Iteration 301/500, changed: 0.018674
---> Iteration 302/500, changed: 0.018735
---> Iteration 303/500, changed: 0.018486
---> Iteration 304/500, changed: 0.018544
---> Iteration 305/500, changed: 0.018301
---> Iteration 306/500, changed: 0.018356
---> Iteration 307/500, changed: 0.018119
---> Iteration 308/500, changed: 0.018171
---> Iteration 309/500, changed: 0.017941
---> Iteration 310/500, changed: 0.017990
---> Iteration 311/500, changed: 0.017766
---> Iteration 312/500, changed: 0.017812
---> Iteration 313/500, changed: 0.017594
---> Iteration 314/500, changed: 0.017638
---> Iteration 315/500, changed: 0.017425
---> Iteration 316/500, changed: 0.017466
---> Iteration 317/500, changed: 0.017259
---> Iteration 318/500, changed: 0.017298
---> Iteration 319/500, changed: 0.017096
---> Iteration 320/500, changed: 0.017133
---> Iteration 321/500, changed: 0.016936
---> Iteration 322/500, changed: 0.016970
---> Iteration 323/500, changed: 0.016778
---> Iteration 324/500, changed: 0.016810
---> Iteration 325/500, changed: 0.016623
---> Iteration 326/500, changed: 0.016653
---> Iteration 327/500, changed: 0.016470
---> Iteration 328/500, changed: 0.016499
---> Iteration 329/500, changed: 0.016320
---> Iteration 330/500, changed: 0.016348
---> Iteration 331/500, changed: 0.016172
---> Iteration 332/500, changed: 0.016198
---> Iteration 333/500, changed: 0.016027
---> Iteration 334/500, changed: 0.016052
---> Iteration 335/500, changed: 0.015884
---> Iteration 336/500, changed: 0.015907
---> Iteration 337/500, changed: 0.015743
---> Iteration 338/500, changed: 0.015765
---> Iteration 339/500, changed: 0.015605
---> Iteration 340/500, changed: 0.015626
---> Iteration 341/500, changed: 0.015468
---> Iteration 342/500, changed: 0.015488
---> Iteration 343/500, changed: 0.015334
---> Iteration 344/500, changed: 0.015353
---> Iteration 345/500, changed: 0.015202
---> Iteration 346/500, changed: 0.015219
---> Iteration 347/500, changed: 0.015072
---> Iteration 348/500, changed: 0.015088
---> Iteration 349/500, changed: 0.014943
---> Iteration 350/500, changed: 0.014959
---> Iteration 351/500, changed: 0.014817
---> Iteration 352/500, changed: 0.014832
---> Iteration 353/500, changed: 0.014692
---> Iteration 354/500, changed: 0.014706
---> Iteration 355/500, changed: 0.014569
---> Iteration 356/500, changed: 0.014583
---> Iteration 357/500, changed: 0.014448
---> Iteration 358/500, changed: 0.014461
---> Iteration 359/500, changed: 0.014329
---> Iteration 360/500, changed: 0.014341
---> Iteration 361/500, changed: 0.014212
---> Iteration 362/500, changed: 0.014223
---> Iteration 363/500, changed: 0.014096
---> Iteration 364/500, changed: 0.014106
---> Iteration 365/500, changed: 0.013981
---> Iteration 366/500, changed: 0.013991
---> Iteration 367/500, changed: 0.013868
---> Iteration 368/500, changed: 0.013878
---> Iteration 369/500, changed: 0.013757
---> Iteration 370/500, changed: 0.013766
---> Iteration 371/500, changed: 0.013648
---> Iteration 372/500, changed: 0.013656
---> Iteration 373/500, changed: 0.013539
---> Iteration 374/500, changed: 0.013547
---> Iteration 375/500, changed: 0.013433
---> Iteration 376/500, changed: 0.013440
---> Iteration 377/500, changed: 0.013327
---> Iteration 378/500, changed: 0.013334
---> Iteration 379/500, changed: 0.013223
---> Iteration 380/500, changed: 0.013230
---> Iteration 381/500, changed: 0.013120
---> Iteration 382/500, changed: 0.013127
---> Iteration 383/500, changed: 0.013019
---> Iteration 384/500, changed: 0.013025
---> Iteration 385/500, changed: 0.012919
---> Iteration 386/500, changed: 0.012925
---> Iteration 387/500, changed: 0.012820
---> Iteration 388/500, changed: 0.012826
---> Iteration 389/500, changed: 0.012723
---> Iteration 390/500, changed: 0.012728
---> Iteration 391/500, changed: 0.012627
---> Iteration 392/500, changed: 0.012631
---> Iteration 393/500, changed: 0.012532
---> Iteration 394/500, changed: 0.012536
---> Iteration 395/500, changed: 0.012438
---> Iteration 396/500, changed: 0.012442
---> Iteration 397/500, changed: 0.012345
---> Iteration 398/500, changed: 0.012349
---> Iteration 399/500, changed: 0.012253
---> Iteration 400/500, changed: 0.012257
---> Iteration 401/500, changed: 0.012163
---> Iteration 402/500, changed: 0.012166
---> Iteration 403/500, changed: 0.012073
---> Iteration 404/500, changed: 0.012077
---> Iteration 405/500, changed: 0.011985
---> Iteration 406/500, changed: 0.011988
---> Iteration 407/500, changed: 0.011897
---> Iteration 408/500, changed: 0.011900
---> Iteration 409/500, changed: 0.011811
---> Iteration 410/500, changed: 0.011814
---> Iteration 411/500, changed: 0.011726
---> Iteration 412/500, changed: 0.011728
---> Iteration 413/500, changed: 0.011641
---> Iteration 414/500, changed: 0.011644
---> Iteration 415/500, changed: 0.011558
---> Iteration 416/500, changed: 0.011560
---> Iteration 417/500, changed: 0.011476
---> Iteration 418/500, changed: 0.011478
---> Iteration 419/500, changed: 0.011394
---> Iteration 420/500, changed: 0.011396
---> Iteration 421/500, changed: 0.011313
---> Iteration 422/500, changed: 0.011316
---> Iteration 423/500, changed: 0.011234
---> Iteration 424/500, changed: 0.011236
---> Iteration 425/500, changed: 0.011155
---> Iteration 426/500, changed: 0.011157
---> Iteration 427/500, changed: 0.011077
---> Iteration 428/500, changed: 0.011079
---> Iteration 429/500, changed: 0.011000
---> Iteration 430/500, changed: 0.011001
---> Iteration 431/500, changed: 0.010924
---> Iteration 432/500, changed: 0.010925
---> Iteration 433/500, changed: 0.010848
---> Iteration 434/500, changed: 0.010850
---> Iteration 435/500, changed: 0.010773
---> Iteration 436/500, changed: 0.010775
---> Iteration 437/500, changed: 0.010700
---> Iteration 438/500, changed: 0.010701
---> Iteration 439/500, changed: 0.010626
---> Iteration 440/500, changed: 0.010628
---> Iteration 441/500, changed: 0.010554
---> Iteration 442/500, changed: 0.010555
---> Iteration 443/500, changed: 0.010483
---> Iteration 444/500, changed: 0.010484
---> Iteration 445/500, changed: 0.010412
---> Iteration 446/500, changed: 0.010413
---> Iteration 447/500, changed: 0.010342
---> Iteration 448/500, changed: 0.010343
---> Iteration 449/500, changed: 0.010272
---> Iteration 450/500, changed: 0.010273
---> Iteration 451/500, changed: 0.010203
---> Iteration 452/500, changed: 0.010204
---> Iteration 453/500, changed: 0.010135
---> Iteration 454/500, changed: 0.010136
---> Iteration 455/500, changed: 0.010068
---> Iteration 456/500, changed: 0.010069
---> Iteration 457/500, changed: 0.010001
---> Iteration 458/500, changed: 0.010002
---> Iteration 459/500, changed: 0.009935
---> Iteration 460/500, changed: 0.009936
---> Iteration 461/500, changed: 0.009870
---> Iteration 462/500, changed: 0.009871
---> Iteration 463/500, changed: 0.009805
---> Iteration 464/500, changed: 0.009806
---> Iteration 465/500, changed: 0.009741
---> Iteration 466/500, changed: 0.009742
---> Iteration 467/500, changed: 0.009678
---> Iteration 468/500, changed: 0.009678
---> Iteration 469/500, changed: 0.009615
---> Iteration 470/500, changed: 0.009615
---> Iteration 471/500, changed: 0.009553
---> Iteration 472/500, changed: 0.009553
---> Iteration 473/500, changed: 0.009491
---> Iteration 474/500, changed: 0.009491
---> Iteration 475/500, changed: 0.009430
---> Iteration 476/500, changed: 0.009430
---> Iteration 477/500, changed: 0.009369
---> Iteration 478/500, changed: 0.009370
---> Iteration 479/500, changed: 0.009309
---> Iteration 480/500, changed: 0.009310
---> Iteration 481/500, changed: 0.009250
---> Iteration 482/500, changed: 0.009250
---> Iteration 483/500, changed: 0.009191
---> Iteration 484/500, changed: 0.009191
---> Iteration 485/500, changed: 0.009133
---> Iteration 486/500, changed: 0.009133
---> Iteration 487/500, changed: 0.009075
---> Iteration 488/500, changed: 0.009075
---> Iteration 489/500, changed: 0.009018
---> Iteration 490/500, changed: 0.009018
---> Iteration 491/500, changed: 0.008961
---> Iteration 492/500, changed: 0.008961
---> Iteration 493/500, changed: 0.008905
---> Iteration 494/500, changed: 0.008905
---> Iteration 495/500, changed: 0.008849
---> Iteration 496/500, changed: 0.008849
---> Iteration 497/500, changed: 0.008794
---> Iteration 498/500, changed: 0.008794
---> Iteration 499/500, changed: 0.008739Process finished with exit code 0

浅谈标签传播算法:LPA相关推荐

  1. 浅谈标签传播算法LPA

       研究生期间第一次对相关内容做了一个汇报,查找了大量文献,发现很多的介绍对于新手来说都看不懂,这里采用最简单的方法来浅谈一下,如有错误,欢迎指正.   标签传播算法是一种基于图的半监督学习方法,其 ...

  2. 可视化学习:社团划分算法——标签传播算法LPA及优化

    标签传播算法 一.社团划分质量 二.标签传播算法(LPA) 三.优化算法 1.基于传播分数的标签传播算法(LPA-S) 2.基于邻居优势的标签传播算法(LPA-N) 3.基于叶子社团合并的标签传播算法 ...

  3. 附源码|复杂网络社区发现——标签传播算法(LPA)

    本文通过Python 3.7实现了标签传播算法的两个代码(1.自己写的,2.调包实现),并通过空手道俱乐部的例子进行可视化显示. 标签传播是一种半监督机器学习算法,它将标签分配给以前未标记的数据点.在 ...

  4. Stereo Matching文献笔记之(六):浅谈置信度传播算法(Belief-Propagation)在立体匹配中的应用~

    这是我一个纠结过的问题,曾经反反复复的看相关的知识,Belief-Propagation是一个伴随着"马尔科夫随机场"提出的优化算法,我对优化算法情有独钟,一直觉得搞定了各种优化, ...

  5. LPA标签传播算法——MATLAB实现及代码

    •标签传播算法 (LPA)是由 Zhu 等人于 2002 年提出,它是一种基于图的半监督学习方法,其基本思路是用已标记节点的标签信息去预测未标记节点的标签信息.利用样本间的关系建立关系完全图模型,在完 ...

  6. 【社团检测】社团检测之标签传播算法Python实现

    转载自:http://blog.csdn.net/DreamHome_S/article/details/78662197 主要优点:时间复杂度近似线性,不需要事先知道社区数量. 主要算法流程:首先为 ...

  7. 社区发现(三):LPA算法(标签传播算法)

    引用:https://blog.csdn.net/itplus/article/details/9286905 引用:https://www.jianshu.com/p/0c66b2717972 文章 ...

  8. 社区发现之标签传播算法(LPA)

    在Graph领域,社区发现(Community detection)是一个非常热门且广泛的话题,后面会写一个系列,该问题实际上是从子图分割的问题演变而来,在真实的社交网络中,有些用户之间连接非常紧密, ...

  9. 【知识图谱】两种 Python 方法实现社区发现之标签传播算法(LPA)

    在Graph领域,社区发现(Community detection)是一个非常热门且广泛的话题,后面会写一个系列,该问题实际上是从子图分割的问题演变而来,在真实的社交网络中,有些用户之间连接非常紧密, ...

最新文章

  1. 显示域用户登录的ip或计算机名,如何在使用PowerShell脚本或者VBS脚本,查看域内正在登录的域用户名、主机名和主机IP地址...
  2. 逐渐增高_钩机加长臂的销量持续增高成为热点话题!
  3. ES6新特性_ES6的Rest参数---JavaScript_ECMAScript_ES6-ES11新特性工作笔记012
  4. 性能测试--jmeter中响应断言【9】
  5. MYSQL 碎片查询
  6. 教孩子学编程(Python语言版)
  7. 创建MSN界面式的Ext JS布局
  8. python自动生成字幕_【教程】每天30分钟免费的视频自动生成字幕的方法
  9. css 自制一些小特效
  10. python为csv文件添加表头_csv大文件分割以及添加表头
  11. 2022-2028年全球与中国摆式斗式提升机市场现状及未来发展趋势分析报告
  12. HP LaserJet 1020打印机显示脱机,脱机使用打印机的勾去不掉
  13. 判断是否是手机号码的方法
  14. 【信息安全案例】——身份与访问安全(学习笔记)
  15. 【前端程序员的中秋节】中秋节,送你千盏孔明灯,万家灯火故事长
  16. 汉罗塔问题和杨辉三角(java实现)
  17. 华为鸿蒙os下载安装,华为鸿蒙系统安装包
  18. linux——dmidecode
  19. [基础论文阅读]QMIX: Monotonic Value Function Factorization for Deep Multi-agent Reinforcement Learning
  20. 大工计算机基础在线作业答案,大工11春《计算机化基础》在线作业及答案.doc

热门文章

  1. android iOS App客户端如何实现在线支付
  2. 【Linux】2020配置firefox +geckodriver + selenium 安装及报错解决办法:no DISPLAY environment variable specified
  3. 孩子学python_【二孩家庭要注意什么】二孩家庭要怎么教育_二孩家庭的孩子最好间隔几岁 - 妈妈网百科...
  4. android端蓝牙控制单片机,android 蓝牙控制继电器——单片机控制端
  5. 《涨知识啦30》-太阳能电池基本工作原理
  6. autopilot news
  7. PAT结构与算法7-46 新浪微博热门话题 (50行精简 测试点分析)
  8. 前瞻: 拥抱量子计算时代!详解2020年全球十大杰出量子计算公司
  9. 《实时控制软件设计》第一次阅读笔记
  10. outlook邮件 css 不生效问题