是否有任何“非参数”聚类方法我们不需要指定聚类的数量?以及其他参数,例如每个集群的点数等。
不需要预先指定聚类数量的聚类方法
需要您预先指定聚类数量的聚类算法是少数。有大量的算法没有。它们很难概括;这有点像要求描述任何不是猫的生物。
聚类算法通常分为广泛的领域:
可以有其他类别,人们可以不同意这些类别以及哪些算法属于哪个类别,因为这是启发式的。然而,类似这种方案的东西很常见。从这里开始,主要只有分区方法 (1) 需要预先指定要查找的集群数量。需要预先指定哪些其他信息(例如,每个集群的点数),以及将各种算法称为“非参数”是否合理,同样是高度可变的并且难以总结。
分层聚类不需要您像 k-means 那样预先指定聚类的数量,但您确实从输出中选择了一些聚类。另一方面,DBSCAN 也不需要(但它确实需要指定“邻居”的最小点数——尽管有默认值,所以从某种意义上说,你可以跳过指定——这确实为簇中模式的数量)。GMM 甚至不需要这三个中的任何一个,但确实需要关于数据生成过程的参数假设。据我所知,没有任何聚类算法永远不需要您指定集群的数量、每个集群的最小数据数量或集群内数据的任何模式/排列。我不明白怎么可能。
它可能会帮助您阅读不同类型聚类算法的概述。以下可能是一个开始的地方:
- Berkhin, P. “聚类数据挖掘技术调查” ( pdf )
最简单的例子是层次聚类,您可以使用一些距离度量将每个点与其他点进行比较,然后将具有最小距离的对连接在一起以创建连接的伪点(例如, b和c使bc与图像上的一样以下)。接下来,通过连接点和伪点来重复该过程,基于它们的成对距离,直到每个点都与图形连接。
(来源:https ://en.wikipedia.org/wiki/Hierarchical_clustering )
该过程是非参数的,您唯一需要的是距离测量。最后,您需要决定如何修剪使用此过程创建的树形图,因此需要决定预期的集群数量。
参数不错!
“无参数”方法意味着您只能获得单次拍摄(可能是随机性除外),没有定制的可能性。
现在聚类是一种探索性技术。您不能假设只有一个“真正的”聚类。您应该对探索相同数据的不同聚类感兴趣,以了解更多信息。将聚类视为黑匣子永远不会奏效。
例如,您希望能够根据您的数据自定义使用的距离函数(这也是一个参数!)如果结果太粗糙,您希望能够得到更精细的结果,或者如果它太精细,得到它的粗略版本。
最好的方法通常是那些可以让您很好地导航结果的方法,例如层次聚类中的树状图。然后,您可以轻松地探索子结构。
查看狄利克雷混合模型。如果您事先不知道集群的数量,它们提供了一种理解数据的好方法。但是,他们确实对您的数据可能违反的集群形状做出了假设。