是否有任何未分配k

时间:2018-06-24 08:02:17

标签: machine-learning deep-learning supervised-learning unsupervised-learning

传统的非监督学习方法通​​常需要在计算之前分配聚类(K)的数量,但是如果我不知道K的确切数量并将k排除在算法之外该怎么办,我的意思是,是否有任何非监督学习算法不需要分配任何k,因此我们可以自动获得k聚类?

3 个答案:

答案 0 :(得分:0)

  • 亲和力传播
  • DBSCAN
  • 平均移位

有关更多详细信息,请查看scikit-learn文档here

答案 1 :(得分:0)

您可以尝试使用Akaike information criterionBayes information criterion通过SilhouetteElbow等指标来推断集群数量。我还听说过有人谈论基于自组织地图(SOM)的自动聚类方法,但是您必须在那做自己的研究。

根据我的经验,它通常可以归结为使用多种方法(例如t-SNE和/或基于密度的方法(例如DBSCAN)来探索数据,然后手动设置k或使用适当的启发式方法。

答案 2 :(得分:0)

图的理论中有一个hierarchical clustering。您可以自下而上或自上而下实现集群。

自下而上

  • 定义距离度量(欧几里得,曼哈顿...)
  • 从其自身群集中的每个点开始
  • 合并最近的两个群集

有三种选择最接近的集群的方法:

  • 完整链接->两个具有最大最大成对距离的群集
  • 单链接->两个成对的最小最小成对距离
  • 平均链接->所有成对距离之间的平均距离

单链接聚类可以使用Kruskalov最小生成树算法来解决,但是尽管易于理解,但它可以在O(n ^ 3)中运行。 MST的Prim算法有所不同,可以在O(nˇ2)中解决。

自上而下的差异分析 从同一群集中的所有点开始,并在每次迭代中划分群集。

divisive analysis

您还可以使用Google的其他聚类算法,其中一些已经在其他答案中提到。我没有用过别人,所以我会把它排除在外。