【问题标题】:Are the labels-output of cluster algorithms ordered in a certain order? (python, scikit learn)集群算法的标签输出是否按特定顺序排序? (python、scikit 学习)
【发布时间】:2019-10-22 10:56:39
【问题描述】:

我正在使用 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:根据这条规则对标签进行排序很容易,我的问题更具理论性。

【问题讨论】:

  • 你永远不会,哪个集群获得更多条目。这一切都取决于初始初始化......所以有时0胜,有时1胜......

标签: scikit-learn label cluster-analysis mean-shift


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-13
    • 2022-08-19
    • 2015-07-08
    • 1970-01-01
    • 2018-03-28
    • 2018-08-15
    • 2016-12-06
    • 2014-08-17
    相关资源
    最近更新 更多