当 k 均值设置为 True 时,k 均值预先计算precompute_distances哪些距离?



我正在使用scikit-learn来运行k-means。我查看了scikit-learnk-means代码,但我不明白k-means如何提前预先计算距离。哪些距离 k 均值预先预先计算,而它事先不知道中心的值?

它不会预先计算中心之间的距离,而是预先计算一个点(例如 X(与系统中所有其他点之间的距离,并存储它们以供以后使用。

检查 kmeans 中的第 619 行,它调用_labels_inertia_precompute_dense,而 pairwise_distances_argmin_min 又调用第 562 行。

pairwise_distances_argmin_min的文件指出:

计算一个点和一组点之间的最小距离。 此函数计算 X 中每一行的索引,即 Y 行的索引 哪个是最近的(根据指定的距离(。最小 还会返回距离。

因此,它不需要知道中心,这只是用于预先计算所有可能的点对之间的距离。

最新更新