并且是的,如果center_shift_total
高于tol
,则该代码段将无法打印该消息。
为了在基于张量流的k-means实现中重复使用scikit-learn KMeans中实现的k-means收敛标准,我需要理解它,但我希望对此做出解释,我希望对此进行解释:] >
KMeans收敛于此消息:
迭代45,惯性6.993125中心偏移2.610457e-03
公差8.374284e-06https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/cluster/_k_means.py中的实现(第442ff行,函数_kmeans_single_lloyd)如下:
的值小于tolerance的值时,才打印消息。从输出中可以看到,在我的KMeans运行中情况并非如此(center_shift_total实际上比tol大[[uch]]。)这怎么发生(或我忽略了什么?我注意到“迭代时收敛”部分也丢失了,但是观察到的消息对我来说毫无意义。为了在基于张量流的k-means实现中重复使用scikit-learn KMeans中实现的k-means收敛标准,我需要理解它,但我观察到了这一点……center_shift_total = squared_norm(centers_old - centers) if center_shift_total <= tol: if verbose: print("Converged at iteration %d: " "center shift %e within tolerance %e" % (i, center_shift_total, tol)) break
仅当center_shift_total
Iteration 45, inertia 6.993125 center shift 2.610457e-03 within tolerance 8.374284e-06
可能来自的任何地方。并且是的,如果center_shift_total
高于tol
,则该代码段将无法打印该消息。
无论如何,祝你好运。