@spiritnotes
2016-03-14T04:49:05.000000Z
字数 968
阅读 2525
机器学习
算法
聚类是一种无监督的学习,它将相似的对象归到同一个簇中。有点像全自动分类,聚类方法几乎可以应用于所有对象,簇内的对象越相似,聚类的效果越好。簇识别(cluster identification)给出聚类结果的含义。
聚类分析试图将相似对象归入同一簇,将不相似对象归到不同簇。相似这一概念取决于所选择的相似度计算方法。
K均值聚类方法有如下特点:
K均值收敛但是聚类效果差的原因是,K-均值算法收敛到了局部最小值,而非全局最小值。
用于度量聚类效果的指标是SSE(Sum of Squared Error,误差平方和),SSE值越小表示数据点越接近于它们的质心,聚类效果也越好。对误差取了平方,因此更加重视那些远离中心的点。可以通过降低SSE值的方法是增加簇的个数,但违背聚类的目标。聚类的目标是在保持簇数目不变的情况下提高簇的质量。
将具有最大SSE值的簇划分成两个簇。具体实现时可以将最大簇包含的点过滤出来并在这些点上运行K-均值算法,k为2.
首先将所有点作为一个簇继续进行划分,选择哪一个簇进行划分取决于对其划分是否可以最大程度降低SSE的值,上述划分过程不断重复,直到用户指定的簇数目为止
伪代码:
GitHub: https://github.com/spiritwiki/codes/tree/master/kmeans
coding.net: https://coding.net/u/spiritwiki/p/codes/git/tree/master/kmeans