K—means聚类的R函数和应用.docx

上传人:王** 文档编号:894992 上传时间:2024-02-22 格式:DOCX 页数:9 大小:132.24KB
下载 相关 举报
K—means聚类的R函数和应用.docx_第1页
第1页 / 共9页
K—means聚类的R函数和应用.docx_第2页
第2页 / 共9页
K—means聚类的R函数和应用.docx_第3页
第3页 / 共9页
K—means聚类的R函数和应用.docx_第4页
第4页 / 共9页
K—means聚类的R函数和应用.docx_第5页
第5页 / 共9页
K—means聚类的R函数和应用.docx_第6页
第6页 / 共9页
K—means聚类的R函数和应用.docx_第7页
第7页 / 共9页
K—means聚类的R函数和应用.docx_第8页
第8页 / 共9页
K—means聚类的R函数和应用.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
资源描述

《K—means聚类的R函数和应用.docx》由会员分享,可在线阅读,更多相关《K—means聚类的R函数和应用.docx(9页珍藏版)》请在优知文库上搜索。

1、学生实验报告课程名称数据挖掘实验名称K一means聚类的R函数和应用实验目的在r中实现K-Means聚类、PAM聚类和层次聚类,并对他们进行比较分析,得出最优聚类。二、实验环境R软件的集成平台Rstudio.三、实验原理1. K-Means聚类(1)原理:KMeans聚类将所收集到的具有P个数值型变量(即聚类变量)的样本数据看成P维空间上的点,并以此定义某种距离。(2)在r中的实现:kmeans(x二数据矩阵,centers二聚类数目或初始类质心,iter,max=10,nstart=l)2. PAM聚类(1)原理:PAM是Partitioningaroundmedoids的英文缩写,也是一种

2、基于质心的划分型聚类算法。PAM聚类与K-Means聚类的主要不同在于:第一,距离测度采用绝对距离。聚类目标是找到类内绝对距离之和最小的类。第二,增加了判断本次迭代类质心合理性的步骤。(2)在I中的实现:Panl(X=矩阵或数据框,k=聚类数目K,medoids二初始类质心向量,do.SWaP=TRUE/FALSE,Stand=TRUE/FALSE)3. 层次聚类(1)原理:层次聚类是将各个观测逐步合并成小类,再将小类逐步合并成中类乃至大类的过程。这类算法将空间中距离较近的多个观测点视为一个类,并基于联通性完成最终的聚类。得到的聚类结果一般为确定性的且具有层次关系。(2)在r中的实现:hclu

3、st(d二距离矩阵,method二聚类方法)四、实验内容及步骤(一)实验内容某年我国31个省级行政区(不包括港澳台)环境污染状况的经标准化处理的统计数据,包括生活污水排放量(xl)、生活二氧化硫排放量(x2)、生活烟尘排放量(x3)、工业固体废物排放量(x4)、工业废气排放总量(x5)、工业废水排放量(x6)0此外,还包括GDP水平(gdp)以及地理位置(ge。)。(二)实验步骤1.K-MeanS聚类、PAM聚类的实验步骤:指定聚类数目K;分别确定K个初始类质心;根据最近原则进行聚类;重新确定K个类质心;判断是否已经满足终止聚类算法的条件,如果没有满足则返回第三步。2.层次聚类的实验步骤:首先

4、将每个观测点自成一类;计算所有观测点彼此间的距离,并将其中距离最近的观测点聚成一个小类,形成。一1个类;再次度量剩余观测点和小类间的距离,并将当前距离最近的观测点或小类聚成一类;重复上述过程,不断将所有观测点和小类聚集成越来越大的类,直至所有观测点聚到一起,形成一个最大的类为止。五、数据处理及实验结论(1) K-Means聚类代码如下:setwd(,C:UsersUserDesktop,z)POData=read,table(环境污染数据.txt”,header二T)CluData=PoDataE,2:7#提取聚类变量xlx6set.seed(12345)C1uR=kmeans(x-CIuDa

5、ta,centers-4,nstart=30)ClUR$size#浏览各类包含的样本量CluRJcenters#浏览4类的类质心par(mfrow=c(2,1) ClUR$size#浏览各类包含的样本量1 4 19 2 6 CluR Scenters #浏览4类的类质心1234Xl 53.39250 15.06895 11.48000 26.91000x2x38.33500 7.9700015.09263 20.4326379.47000 69.4300039.77167 63.683334 1.42250 5.31000 59.88000 10.42833x5 6 36.78750 83.6

6、9250 13.37316 16.45105 33.07000 9.62000 56.67667 40.70000POData$ClUR=ClUR$CIUSter#将聚类解保存到PoData数据框的CluR域中plot(PoDataSCluR,pch=PoDataSCluR,ylab=类别编号“,xlab=省区Pinain二聚类的成员,axes*)#绘制个省区聚类解的序列图,不带坐标轴Par(IaS=2)#指定坐标轴文字转90度axis(l,at=l:31,labels=POData$PrOVinCe,cex.axis=0.6)#指定横坐标刻度文字为指定名axis(2,at=l:4,label

7、s=1:4,cex.axis=O.6)#指定列坐标刻度文字为聚类解编号box()IegendCtoprighr,cC第一类,第二类,第三类,第四类),PCh=I:4,cex=O.6)plot(CluRJcentersEl,type=T,ylim=c(0,82),xlab=聚类变量,ylab二组均值(类质心),main=各类聚类变量均值的变化折线图,axes*)#绘制第1个类的类质心变量取值折线图axis(l,at=l:6,labels=c(生活污水排放量,生活二氧化硫排放量,生活烟尘排放量,工业固体废物排放量,工业废气排放总量,工业废水排放量),cex.axis-0.6)box()IineS(

8、1:6,CIUR$CenterS2,Ity=2,CoI=2)#绘制第2个类的类质心变量取值折线图lines(l:6,CluRScenters3,lty=3,col=3)lines(l:6,CluRJcenters4,lty=4,col=4)legend(topright,c(第一类,第一类,第二类,第四类),Ity=I:4,col=l:4,cex=O.6)聚类的成员 省区各类聚类变量均值的变化折线图图1各类成员及聚类变量均值变量折线图实验说明:本例中,将数据聚为4类,各类样本量依次为4,19,2,6。第1类的质心向为(53.39250,8.33500,7.97000,1.42250,36.78

9、750,83.69250)。本例中,利用PIot函数和IineS函数绘制了4类的成员情况,以及6个聚类变量的均值在4类上的变化折线图,如图1所示,直观展现了4类的结构特征。例如,第二类地区的各类污染物排放均不高:第三类地区的主要污染物是二氧化硫和烟尘,污水排放量较低;等等。其次,评价类间差异性和类内相似性。实验结论:CluR$betweenss/CluR$totss*100CluR$betweenss/CluR$totss*100164.92061如上述所示,因类间解释的离差平方和占总平方和的64.92乐总体聚类效果一般。(2) PAM聚类代码如下:set.seed(12345)x=matri

10、x(rnorm(n=100,mean=0,sd=l),ncol=2,byrow=T)x1:25,1=x1:25,1+3#令样本数据包含2个自然小类X1:25,2=X1:25,2-4library(zzClusterzz)set.seed(12345)(PClu=pam(x=x,k=2,do.swap=T,stand=F)#PAM聚成2类Medoids:ID1,183,2542712-3.50881172,450.53652370.8248701Clusteringvector:11111111111111111111111111222212222236222222222222222Object

11、ivefunction:buildswap1.7214041.382137Available components:1 medoidsid.med6 clusinfosi 1 infoclustering objective isolationdisscalldataplot(x=PClu,data=x)#可视化聚类结果clusplot(pam( = x, k = 2, stand F, do.swap T)Sllhouene plot of pam(x =需 k = 2, stand F, do.swap T1 26 0612 24 0 SitXMjette width SiAveraoe

12、Sihouette width 062Component 1These two comoonets exolain 100%ofthe Dot nt VanabIftV图2PAM聚类的可视化结果实验说明,将样本数据聚成2个小类,最终两个小类质心为第18和第45号观测,两变量分别取值为(3.25,-3.51),(0.54,0.82)。2个小类分别包含26个和24个观测,可视化聚类结果如图2所示。图2(左)是对原始数据利用主成分分析法提取2个主成分的观测点分布图。两个类别的轮廓大致为椭圆形,两类边界接壤但没有相互交叉,聚类效果较为理想。图2(右)为各个观测的轮宽以及各类的平均轮宽。轮宽值较小的观测

13、是位于两类边界附近的观测。实验结论:本例的PAM聚类结果与K-Means聚类相同。(3)层次聚类代码如下:DisMatrix=Clist(CluData,method=euclidean)#计算关于欧式距离的距离矩阵CluR=hclust(d=DisMatrix,method=ward)#采用Ward策略聚类plot(CluR,Iabels=PoDataE,1)#绘制聚类树形图box()plot(CluRSheight,30:1,type=zzbzz,cex=0.7,xlab=距离测度“,ylab=聚类数目)OisMatnxKclust(*,w三rdO,)图3DisMatrixhclust(*

14、,tfward)图4层次聚类的碎石图实验说明:本例采用ward策略聚类。不同的聚类方法所得的聚类结果存在一定差异所示。聚类结果的最好展示方式是图形,利用plot函数可以绘制聚类的树形图,如图3所示。实验结论:如图4所示,随着聚类数目K的不断减少,最小的类间距离不断增大。当聚类数目达到4类之后,最小的类间距离的变化幅度很大,说明类间的差异性较大,不应再继续合并。所以,根据碎石图粗略判断聚成4类较为合适。PoDataSmemb=CUtree(CluR,k=4)#将层次聚类的树形图拆成4组table(PoDataJmemb)#浏览各类的成员个数table(PoData$memb)#浏览各类的成员个数123477134plot(PoDataSmemb,Pch=PoDataSmemb,ylab=类别编号,XIab=省区”,main=聚类的类成员,axes=F)par(las=2)axis(l,at=l:31,labels=PoDataSprovince,cex.axis-0.6)axis(2,at=l:4,labels=1:4,cex.axis=0.6)boxO聚类的类成员4-55J-+2-OO。OOOO省区图5层次聚类的类解图实验说明:图5的聚类结果与K-Means聚类有所

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 数据结构与算法

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!