浅谈标签传播算法:LPA

标签传播算法: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 NN的概率转移矩阵P:
Pij = P(i->j) =
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 np


def 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 = 2
    clamp_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.0
    label_function = np.zeros((num_samples, num_classes), np.float32)
    label_function[0: num_label_samples] = clamp_data_label
    label_function[num_label_samples: num_samples] = -1  # 定义标签矩阵F
    data["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])  # 定义概率矩阵P
    iter = 0
    pre_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_function
        iter += 1
        label_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_labels


if __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.008739

Process finished with exit code 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值