如何在K均值聚类中定义聚类数?


19

有什么方法可以确定最佳群集数,还是我应该尝试不同的值并检查错误率以决定最佳值?


1
@berkay如何为这种无监督方法定义错误率?(或者您是指SS内的用户?)
chl

@chl,我可以使用所有群集的平方误差总和或整体准确性(在这种情况下,我知道类别标签。)
berkay

3
@berkay一种用于找到编号群集的简单算法是,在越来越多的群集(以2开始,以9或10结束)上计算20个k均值运行的平均WSS,并保持具有该群集集上的最小WSS。另一种方法是Gap统计。但是,如果您已经标记了实例,那么为什么要尝试一种无监督的方法呢?
chl

@chl谢谢,一个很好的问题,我们可以根据实例的特征猜测集群,我正在分析新的入侵特征,模仿法律申请。
berkay

2
R在这里用了六种方法(使用)回答了类似的问题:stackoverflow.com/a/15376462/1036500
2013年

Answers:


8

我使用的方法是使用CCC(三次聚类标准)。我希望随着群集数增加1,CCC会增加到最大,然后观察CCC何时开始减少。那时,我以(本地)最大值的簇数为准。这类似于使用碎石图来选择主要成分的数量。


SAS技术报告A-108立方聚类标准(pdf

=观测数 n k =聚类数k p =变量数 q =聚类数 X = n × p数据矩阵 M = q × p聚类均值矩阵 Z =聚类指示符( z i k =n
nkk
p
q
Xn×p
Mq×p
Z,如果观测。在簇 k中,否则为0) zik=1ik

假设每个变量具有均值0:
中号= Ž ' Ž - 1 Z ^ ' XZZ=diag(n1,,nq)M=(ZZ)1ZX

(总)矩阵= Ť = X ' X 小号小号(簇之间)矩阵= =中号' Ž ' Ž 中号小号小号(簇内)矩阵= w ^ = Ť - SSTXX
SSBMZZM
SSWTB

(迹线=对角线元素之和)R2=1trace(W)trace(T)

列堆叠为一个长列。 回归的克罗内克积žp × p的单位矩阵 计算- [R 2为该回归-相同- [R 2X
Zp×p
R2R2

CCC的想法是将给定集群集获得的R 2与通过在p维空间中均匀分布的点集聚而获得的进行比较。R2R2p


2
除了CCC,还有其他标准。看一下确定数据集中的簇数,以了解主要的
Vincent Labatut
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.