R语言k均值聚类分析
物以类聚,人以群分。
对于一个数据集,人们既可以对变量(指标)进行分类(称为R型聚类),也可以对观测值(个案,样品)来分类(称为Q型聚类)。这两种聚类在数学上是对称的,没有什么不同。
k-means聚类是数据挖掘最重要的算法之一,聚类是指将一个数据集分成指定个数的类簇的过程。k-means聚类的方法是,随机选取k个初始值作为类的种子,将距离某个初始值最近的数据添加到该初始值所属的类并重新计算类的中心,通常取为重心。当数据中存在噪声时,个别噪声数据对分类结果影响显著。k-means聚类对初值敏感,由于初值随机选取,不同的初值可能得出不同的聚类结果。
改进的k-means聚类首先将数据标准化,排除数据数量级相差大导致某个维度的数据占主导。其次人为选取初值,满足它们的距离最大。由于孤立点的存在,在初值选好以后迭代过程中仍有可能产生较大偏差。
R语言操作
数据集regnw是从2005到2012年按年平均的人均GDP、城镇化水平和工业化水平的数据,它是一个31行3列的矩阵,每一行是一个地区的人均GDP、城镇化水平和工业化水平。后两个变量的取值都在0-1之间,因此将数据中的人均GDP作极差正规化变换,使之取值在0-1之间。
k-means均值聚类必须事先知道类数,因此我们先画谱系图,确定能分成几类。
dn <- dist(regnw) #建立31个三维点的距离,采用默认的欧式距离
hen <-hclust(dn) # 形成谱系图
plot(hcn) #绘制图形
结果显示分成4类比较合适
km <- laneans(regnw,4) # 建立 k-means 聚类
clusplot(regnw,km$cluster,color=T,shade=T,labels=2,lines=0) ##聚类结果
kmScenters #各类中心
小编预祝大家平安夜快乐!圣诞节快乐!元旦快乐!新年快乐!开开心心!
欢迎大家把平台推荐给您的朋友,大家共同学习进步!
查看评论 回复
"R语言k均值聚类分析"的相关文章
- 上一篇:C语言经典编程习题之循环
- 下一篇:易语言配置文件操作模块源码