gpt4 book ai didi

scikit-learn - sklearn kmeans 方法中的 precompute_distances 做什么?

转载 作者:行者123 更新时间:2023-12-04 04:18:06 24 4
gpt4 key购买 nike

我正在寻找 precompute_distances 属性的实用程序:

    class sklearn.cluster.KMeans(n_clusters=8, init=’k-means++’, n_init=10, 
max_iter=300, tol=0.0001, precompute_distances=’auto’, verbose=0,
random_state=None, copy_x=True, n_jobs=1, algorithm=’auto’)

它预先计算了哪些距离?

最佳答案

对于每一次 kmeans 迭代,我们需要找到离每个样本最近的簇来进行标记。如果 pre_compute == True,这是通过 metrics.pairwise_distances_argmin_min() 完成的。如果 pre_compute == False,则通过 cluster._k_means._assign_labels_array()

完成

https://github.com/scikit-learn/scikit-learn/blob/a24c8b464d094d2c468a16ea9f8bf8d42d949f84/sklearn/cluster/k_means_.py#L618

第一种方法使用矩阵运算,而后者一次计算一对距离。这就是为什么 precompute = True 会更快但会使用更多内存的原因。

这些最小距离不能在迭代之间缓存,因为 kmeans 中心会发生变化。

关于scikit-learn - sklearn kmeans 方法中的 precompute_distances 做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50003976/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com