K-means 法R语言实现 古卅 每天都有进步 2016-04-27

转载原文:https://mp.weixin.qq.com/s/bb6MlVBCKPfV86qogCMblw

基本原理:

1 随机选取k个中心点

2 遍历所有数据,将每个数据划分到最近的中心点中

3 计算每个聚类的平均值,并作为新的中心点

4 重复2-3,直到这k个中线点不再变化(收敛了),或执行了足够多的迭代

newiris <- iris;
newiris$Species <- NULL;  #对训练数据去掉分类标记

kc <- kmeans(newiris, 3);  #分类模型训练
View( fitted(kc) );  #查看具体分类情况

table(iris$Species, kc$cluster);  #查看分类概括(iris$Species是没有删掉的原数据分类标签)

#聚类结果可视化

win.graph(width=4,height=4,pointsize=8)

plot(   newiris[    c(      "Sepal.Length",      "Sepal.Width")       ],

col = kc$cluster,

pch = as.integer(   iris$Species    )     );  

#不同的颜色代表不同的聚类结果,不同的形状代表训练数据集的原始分类情况。

points(     kc$centers     [   ,    c(    "Sepal.Length", "Sepal.Width"     )     ]   , col = 1:3,   pch = 8,  cex=2);

猜你喜欢

转载自blog.csdn.net/weixin_42683052/article/details/106827845