1

我正在使用 Shift-means 聚类(https://scikit-learn.org/stable/modules/clustering.html#mean-shift),其中集群的标签是从以下来源获得的:https://scikit-learn .org/stable/modules/generated/sklearn.neighbors.NearestNeighbors.html

然而,目前尚不清楚簇 (0,1,...) 的标签是如何生成的。显然,标签 0 似乎是具有更多元素的集群。这是一般规则吗?

其他算法如何工作?这是“随机”的意思吗?还是背后的算法检测到 0 集群的更大集群?

谢谢!

PS:根据这条规则很容易订购标签,我的问题更具理论性。

4

1 回答 1

1

在许多情况下,集群顺序取决于初始化。如果您提供初始值,则将保留此顺序。

如果您不提供此类初始值,则顺序通常基于数据顺序。例如,第一项可能属于第一个集群(在某些算法中保留噪声,例如 DBSCAN)。

现在数量(集群大小)有一个有趣的效果:假设您的数据是随机排序的(例如,不是由某些合成数据生成过程排序),那么第一个元素更有可能属于“最大”集群,所以即使是“随机”顺序,这个集群也最有可能排在第一位。

现在在 sklearn 的均值偏移(我认为最终分配规则中包含错误)中,作者显然决定按“强度”排序,但我不记得原始论文中有任何这样的规则。https://github.com/scikit-learn/scikit-learn/blob/7813f7efb/sklearn/cluster/mean_shift_.py#L222

于 2019-06-09T07:30:36.180 回答