R语言K-means

标签:
rk-means |
分类: DataMining |
k-means的原理是:
1)选择k个点作为初始质心,即需要分为k个簇
2)遍历数组,依次将点分配到最近的质心,加入新点后,质心需要重新计算更新
3)重复点的分配和质心的更新动作,直至簇不再发生变化或者质心的变动的范围在接受范围内
在聚类前,簇的个数是不可知的,初始质心的随机的选择会对聚类的生成造成很大的影响,为降低初始质心的选择丢后期的影响
a)先使用层次聚类的方法得到特定的k个簇及质心,(样本较小的情况)
b)随机选择第一个质心,对于后续的每一质心,选择离已经选取的初始质心最远的点
常用的判断值是误差的平方和(sum of the
squared error ,sse),以其作为度量聚类质量的目标函数。
即计算簇内每个点到簇质心的距离的平方和。
SSE=dist(c-x)^2,
dist(c-x)^2=(Cx-x)^2+(Cy-y)^2
存在的问题:
聚类优劣的判断
R 中聚类方法的运用是利用k-means函数
设置矩阵 x
http://s3/mw690/001mUNFYty6Jw4HzvQ6b2&690
上图中得到2个簇,第一个簇的质心是(5.5 ,7.000000) 第二个簇的质心是(3.0 ,3.666667)
其sse标识是 9.000000 2.666667
上图中得到2个簇,第一个簇的质心是(5.5 ,7.000000) 第二个簇的质心是(3.0 ,3.666667)
其sse标识是
我们来计算第二个
(3-3)^2+(3.666667-3)^2+(3-3)^2+(3.666667-3)^2+(3-3)^2+(3.666667-5)^2
=2.666667和上述一致