用R软件做聚类分析的例子ppt课件

上传人:夏** 文档编号:569389654 上传时间:2024-07-29 格式:PPT 页数:95 大小:696KB
返回 下载 相关 举报
用R软件做聚类分析的例子ppt课件_第1页
第1页 / 共95页
用R软件做聚类分析的例子ppt课件_第2页
第2页 / 共95页
用R软件做聚类分析的例子ppt课件_第3页
第3页 / 共95页
用R软件做聚类分析的例子ppt课件_第4页
第4页 / 共95页
用R软件做聚类分析的例子ppt课件_第5页
第5页 / 共95页
点击查看更多>>
资源描述

《用R软件做聚类分析的例子ppt课件》由会员分享,可在线阅读,更多相关《用R软件做聚类分析的例子ppt课件(95页珍藏版)》请在金锄头文库上搜索。

1、应用统计分析实验应用统计分析实验 R R软件软件SPSS:这是一个很受欢迎的统计软件这是一个很受欢迎的统计软件u容易操作,容易操作,u输出漂亮,输出漂亮,u功能齐全,功能齐全,u价格合理。价格合理。u对于非统计工作者是很好的选择。对于非统计工作者是很好的选择。SAS:这是功能这是功能非常非常齐全的软件;齐全的软件;u美国政府政策倾斜美国政府政策倾斜(“权威性权威性”)u许多美国公司使用。许多美国公司使用。u价格不菲价格不菲,每年交费每年交费.即使赠送即使赠送,条件苛刻条件苛刻u尽管现在已经尽量尽管现在已经尽量“傻瓜化傻瓜化”,仍然需要一定的训,仍然需要一定的训练才可以进入。练才可以进入。R软件

2、软件:免费的:免费的,志愿者管理的软件。志愿者管理的软件。u编程方便,语言灵活,图形功能强大编程方便,语言灵活,图形功能强大u有不断加入的各个方向统计学家编写的统计软件包。有不断加入的各个方向统计学家编写的统计软件包。也可以自己加入自己算法的软件包也可以自己加入自己算法的软件包.u这是发展最快的软件,受到世界上统计师生的欢迎。这是发展最快的软件,受到世界上统计师生的欢迎。是用户量增加最快的统计软件。是用户量增加最快的统计软件。u对于一般非统计工作者来说,主要问题是它没有对于一般非统计工作者来说,主要问题是它没有“傻瓜化傻瓜化”。lMinitab:这个软件是很方便的功能强大而又齐全的:这个软件是

3、很方便的功能强大而又齐全的软件,也已经软件,也已经“傻瓜化傻瓜化”,在我国用的不如,在我国用的不如SPSS与与SAS那么普遍。那么普遍。lEviews:这是一个主要处理回归和时间序列的软件。:这是一个主要处理回归和时间序列的软件。lGAUSS:这是一个很好用的统计软件,许多搞经济:这是一个很好用的统计软件,许多搞经济的喜欢它。主要也是编程功能强大。目前在我国使的喜欢它。主要也是编程功能强大。目前在我国使用的人不多。用的人不多。lMATLAB:这也是应用于各个领域的以编程为主的这也是应用于各个领域的以编程为主的软件,在工程上应用广泛。但是统计方法不多。软件,在工程上应用广泛。但是统计方法不多。R

4、的历史lS语言在语言在1980年代后期在年代后期在AT&T实验室开发实验室开发.lR 项目由项目由Auckland 大学统计系的大学统计系的Robert Gentleman和和Ross Ihaka于于1995年开始的年开始的.l它很快得到广泛用户的欢迎它很快得到广泛用户的欢迎. 目前它是由目前它是由R核心发展核心发展团队维持团队维持;它是一个由志愿者组成的工作努力的国际它是一个由志愿者组成的工作努力的国际团队团队下载下载R软件软件http:/www.r-project.org学习网站http:/www.biosino.org/pages/newhtm/r/schtml/R软件的使用软件的使用1

5、数据描述性统计数据描述性统计2回归分析回归分析3判别分析判别分析4聚类分析聚类分析5主成分分析主成分分析6因子分析因子分析7n基本语法基本语法n向量向量n矩阵矩阵 nlist与与data.framen读写数据文件读写数据文件n控制语句与自定义函数控制语句与自定义函数一一. R软件的使用软件的使用n 基本语法基本语法1. 变量使用即定义变量使用即定义: 变量名区分大小写变量名区分大小写, 也可用中文命也可用中文命名名 变量赋值可采用变量赋值可采用4种形式:种形式:=,, assign() 变量类型自动由变量赋值确定。变量类型自动由变量赋值确定。 a=10; bc ; assign(“d”,40)

6、中国中国=“中华人民共和国中华人民共和国” #生成字符串变量生成字符串变量2.注释符号注释符号 # 语句连接符语句连接符 ;3. 算术运算符算术运算符: +,-,*,/,(乘方乘方),% (模模), %/% (整除整除) 4.常用的数学函数有常用的数学函数有:abs , sign , log , log2, log10 , sqrt , exp , sin , cos , tan , acos , asin, atan , cosh , sinh, tanh5. 查看帮助查看帮助 help(round) ?absn 向量向量 1.向量的赋值向量的赋值(一维数组一维数组, 下标从下标从1开始开始

7、) a=c(d1,d2,d3,) 间隔为间隔为1的等差序列的等差序列: a:b 指定间隔的等差序列指定间隔的等差序列: seq(from,to,by) seq(length, from, by) 重复序列:重复序列: rep(vec, times) rep(vec,times,len,each) a=c(3,5,8,10); b=1:10; c=seq(1,10,2); d=seq(-pi,pi, 0.2) e=rep(a,3); f=rep(a, 2, each=3) 随机向量随机向量 rnorm(10) #10个服从标准正态分布的随机数个服从标准正态分布的随机数a=1:5(b=1:5) #

8、同上,只不过显示出来同上,只不过显示出来a2 #取出取出a中第二个元素中第二个元素ac(2,4)=c(4,8) #修改修改a中第中第2、4个元素分别为个元素分别为4、8a-5 #扣除第扣除第5个元素取出来个元素取出来a3 #判断判断a中元素是否小于中元素是否小于31 TRUE TRUE FALSE FALSE FALSEaa0,1 #第第1列大于列大于0的元素的元素x,-c(1,3) #没有第没有第1、3列的列的xx-2,-c(1,3) #没有第没有第2行、第行、第1、3列的列的x.1.矩阵的元素访问矩阵的元素访问2. 2. 矩阵的维数问题矩阵的维数问题矩阵的维数问题矩阵的维数问题 dim(A

9、) # dim(A) #获得维数获得维数获得维数获得维数, ,返回向量返回向量返回向量返回向量nrow(A) ,ncol(A) #nrow(A) ,ncol(A) #获得行数和列数获得行数和列数获得行数和列数获得行数和列数 rownames(A), colnames(A) #rownames(A), colnames(A) #访问各维名称访问各维名称访问各维名称访问各维名称3. 向量和数组向量和数组/矩阵的转化矩阵的转化: 只要定义向量的只要定义向量的维数维数即可即可实现向量和数组转化实现向量和数组转化c=1:12; a=matrix(c, nrow=2,ncol=6)dim(c)=c(3,4

10、) b=as.vector(c)A=diag(c(1,4,5) #以向量为对角元生成对角矩阵以向量为对角元生成对角矩阵a=diag(A) #获取矩阵的对角元获取矩阵的对角元 3. 3. 矩阵运算矩阵运算矩阵运算矩阵运算 +,-,*,/ +,-,*,/ 分别是矩阵内部元素的四则运算分别是矩阵内部元素的四则运算分别是矩阵内部元素的四则运算分别是矩阵内部元素的四则运算 向量矩阵间:向量按列匹配与矩阵运算向量矩阵间:向量按列匹配与矩阵运算向量矩阵间:向量按列匹配与矩阵运算向量矩阵间:向量按列匹配与矩阵运算例如:例如:例如:例如: A=matrix(1:6, nrow=3) A=matrix(1:6,

11、nrow=3) B=matrix(10:15,nrow=3) B=matrix(10:15,nrow=3) C=c(100,200) C=c(100,200)则:则:则:则: A+B A*B A+C A+B A*B A+C11 17 10 52 101 204 13 19 22 70 202 10515 21 36 90 103 206A %*% B #A %*% B #乘法乘法乘法乘法t(mat) t(mat) # #转置转置转置转置det(mat)det(mat)# #行列式行列式行列式行列式 solve(mat)solve(mat)# #逆矩阵逆矩阵逆矩阵逆矩阵 eigen(mat) e

12、igen(mat) # #求特征值与特征向量求特征值与特征向量求特征值与特征向量求特征值与特征向量 4.多维数组 a=array(data=1:24,dim=c(2,3,4)a,1n列表和数据框列表和数据框1. 1. 列表是一种特殊的对象集合,各元素类型任意列表是一种特殊的对象集合,各元素类型任意列表是一种特殊的对象集合,各元素类型任意列表是一种特殊的对象集合,各元素类型任意生成:生成:生成:生成: list(name1=value1, , namen=valuen) list(name1=value1, , namen=valuen)访问访问访问访问/ /修改:对象名修改:对象名修改:对象名

13、修改:对象名 下标下标下标下标 或或或或 对象名对象名对象名对象名$namei $namei stu=list(age=10, name=“Tom”, stu=list(age=10, name=“Tom”, interests=c(“swimming”,”drawing”) interests=c(“swimming”,”drawing”)stu2stu2stu$namestu$namestu$name=“john”stu$name=“john” names(stu) #得到所有的对象名得到所有的对象名2. 2. 数据框是数据框是数据框是数据框是R R的一种数据结构,以矩阵形式保存数据的一种

14、数据结构,以矩阵形式保存数据的一种数据结构,以矩阵形式保存数据的一种数据结构,以矩阵形式保存数据各列类型可以不同,每列为一变量,每行为样品各列类型可以不同,每列为一变量,每行为样品各列类型可以不同,每列为一变量,每行为样品各列类型可以不同,每列为一变量,每行为样品 各列长度相等各列长度相等各列长度相等各列长度相等 data.frame( ) data.frame( ) stu=data.frame(name=c(Tom, Rose), age=c(30,32) names(stu) #得到所有的变量名得到所有的变量名 colnames(stu) #列名,同上列名,同上rownames(stu)

15、 #得到行名得到行名 attach(x) #把数据框中的变量链接到内存中把数据框中的变量链接到内存中x=data.frame(matrix(1:6,nrow=2) #矩阵转化为数据框矩阵转化为数据框x=data.frame(id=101:120,score=round(rnorm(20,70,10)#取出前两行数据x1:2,#选出score60的数据xx20) a=10;b=10 else a=20; b=20;x=1; if(x0) a=10;b=10 else a=20; b=20;n控制语句控制语句与自定义函数控制语句控制语句与自定义函数2. 2. 循环结构循环结构循环结构循环结构 fo

16、r (name in express) expr; for (name in express) expr; while(condition) expr; while(condition) expr; repeat exprs; repeat exprs; if(if(达到中止条件达到中止条件达到中止条件达到中止条件) break) break 例子:计算例子:计算例子:计算例子:计算11+22+33+101011+22+33+1010i=1;j=1; k=1; s1=0; s2=0; s3=0;i=1;j=1; k=1; s1=0; s2=0; s3=0; for( i in 1:10) s1

17、=s1+ii; # for( i in 1:10) s1=s1+ii; #用用用用for for while(j=10) s2=s2+jj; j=j+1; # while(j10) break repeat s3=s3+kk; k=k+1; if(k10) break fun-function(arg1,arg2,) fun|t|) (Intercept) 3.36014 2.06876 1.624 0.128 x 0.82006 0.08895 9.219 4.58e-07 *-Signif. codes: 0 * 0.001 * 0.01 * 0.05 . 0.1 1 Residual s

18、tandard error: 3.243 on 13 degrees of freedomMultiple R-squared: 0.8673, Adjusted R-squared: 0.8571 F-statistic: 84.99 on 1 and 13 DF, p-value: 4.584e-07 若需编程,很多信息存放在lm和summary对象中flm$coef #得到回归系数flm$resi #得到残差向量flm$fitt #得到拟合向量summary(flm)$sigma #模型残差的标准差的估计量summary(flm)$r.squared #决定系数R2summary(flm

19、)$adj.r.squared #修正后的决定系数#预测,注意第二个参数为数据框类型,成员名称必须与原始的自变量一致predict(flm,data.frame(x=c(14,26)predict(flm,data.frame(x=c(14,26),interval=prediction) #区间预测 fit lwr upr1 14.84093 7.472051 22.20982 24.68160 17.389301 31.9739例例例例2:2:回归模拟回归模拟回归模拟回归模拟x=runif(30,0,10) #均匀分布的随机数均匀分布的随机数x=sort(x) y=3*x-0.2*x2+r

20、norm(x) # y与与x的准确关系的准确关系plot(x,y)l1=lm(yx);l2=lm(yx+0);l3=lm(yx+I(x2); l4=lm(yx+I(x2)+0)abline(l1,col=red,lty=1); abline(a=0,b=l2$coef,col=green,lty=2)lines(x,l3$fit,col=blue,lty=3)lines(x,l4$fit,col=orange,lty=4)legend(bottomright, legend=c(线性, 无常数项线性, 二次, 二次无常数项二次无常数项),col=c(red, green, blue, oran

21、ge),lty=1:4)实验二:最小二乘估计的求解及检验实验二:最小二乘估计的求解及检验n全局挑选最佳自变量组合全局挑选最佳自变量组合 library(leaps) r=summary(regsubsets(y.,data=X) n=nrow(X) aic=n*log(r$rss/n)+2*apply(r$which,1,sum) #计算AIC统计量 data.frame(r$outmat,r$rss,r$rsq,r$adjr2,r$cp,AIC=aic)例:水泥放热数据挑选最佳自变量组合例:水泥放热数据挑选最佳自变量组合 x1 x2 x3 x4 y1 7 26 6 60 78.52 1 29

22、 15 52 74.33 11 56 8 20 104.34 11 31 8 47 87.65 7 52 6 33 95.96 11 55 9 22 109.27 3 71 17 6 102.78 1 31 22 44 72.59 2 54 18 22 93.110 21 47 4 26 115.911 1 40 23 34 83.812 11 66 9 12 113.313 10 68 8 12 109.4残差平方和残差平方和决定系数决定系数R2修正后的决定系数修正后的决定系数Cp统计量统计量AIC统计量统计量 step(lm(y.,data=X) step(lm(y1,data=X),+x

23、1+x2+x3+x4)n逐步回归逐步回归实验三:回归分析中的自变量的挑选实验三:回归分析中的自变量的挑选 四四.判别分析判别分析n距离判别距离判别nBayes判别判别nfisher判别判别#计算马氏距离mahalanobis(x, center, cov, inverted=FALSE, .) n距离判别距离判别某总体的中心即均值向量某总体的协方差阵若设为TRUE,表明cov已求逆。默认为Falsedda1=function(x,newx=NULL) #x 为训练样本,最后一列为类别为训练样本,最后一列为类别, newx为待判样本为待判样本 x=as.matrix(x); p=ncol(x)-

24、1; #变量个数变量个数 k=max(x,p+1); #类别个数类别个数 n=nrow(x); #已知数据的个数已知数据的个数 if(is.null(newx)|ncol(newx)!=p) newx=x,1:p #如果待判样本如果待判样本newX为空,则为训练样为空,则为训练样本本 m=nrow(newx); #待判数据的个数待判数据的个数 md=matrix(-1,m,k); #距离矩阵距离矩阵k列,分别为到列,分别为到k个总体的距离个总体的距离 colnames(md)=paste(Dis,1:k,sep=); newClass=rep(-1,m); #新的类别新的类别 cov_each

25、=matrix(0,nrow=p,ncol=p) ; for(i in 1:k) temp=xx,p+1=i,1:p; center=apply(temp,2,mean); #计算当前总体的中心计算当前总体的中心 cov_each=cov(temp) md,i=mahalanobis(newx,center,cov_each);# 计算待判样本到当前总体的马氏距计算待判样本到当前总体的马氏距离离 newClass=apply(md,1,which.min); #距离矩阵距离矩阵md每一行最小的列就是归属类每一行最小的列就是归属类 list(matrix_Distance=md,newClass

26、=newClass)假设各总体协方差阵不相等时的距离判别假设各总体协方差阵不相等时的距离判别例例1 湿度差 压温差 q1 -1.9 3.2 12 -6.9 10.4 13 5.2 2.0 14 5.0 2.5 15 7.3 0.0 16 6.8 12.7 17 0.9 -15.4 18 -12.5 -2.5 19 1.5 1.3 110 3.8 6.8 111 0.2 6.2 212 -0.1 7.5 213 0.4 14.6 214 2.7 8.3 215 2.1 0.8 216 -4.6 4.3 217 -1.7 10.9 218 -2.6 13.1 219 2.6 12.8 220 -2

27、.8 10.0 2假设协方差阵不等时的距离判别结果:$MarsDistances$MarsDistances ,1 ,2 ,1 ,2 1, 0.23479212 2.1460083 1, 0.23479212 2.1460083 2, 3.03833480 6.9243049 2, 3.03833480 6.9243049 3, 0.45790973 7.3283556 3, 0.45790973 7.3283556 4, 0.40796928 6.6425393 4, 0.40796928 6.6425393 5, 1.15825305 13.3381431 5, 1.15825305 13

28、.3381431 6, 2.44342495 9.2742507 6, 2.44342495 9.2742507 7, 5.21569514 31.8233372 7, 5.21569514 31.8233372 8, 4.51109115 31.4452037 8, 4.51109115 31.4452037 9, 0.02172825 3.5632768 9, 0.02172825 3.563276810, 0.51080152 2.993595010, 0.51080152 2.993595011, 0.31493244 0.424259911, 0.31493244 0.4242599

29、12, 0.55187015 0.108792312, 0.55187015 0.108792313, 2.70320062 1.909028513, 2.70320062 1.909028514, 0.67515753 1.535877514, 0.67515753 1.535877515, 0.07154715 4.372183115, 0.07154715 4.372183116, 0.90447066 4.101480216, 0.90447066 4.101480217, 1.61226774 0.491871017, 1.61226774 0.491871018, 2.574851

30、81 1.714143218, 2.57485181 1.714143219, 1.92540870 2.343094319, 1.92540870 2.343094320, 1.56318137 0.999269920, 1.56318137 0.9992699$newClass$newClass 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 2 2 1 2 1 2 2 1 1 1 2 2 1 2 实验目的:掌握距离判别准则和实验目的:掌握距离判别准则和R软件编程软件编程实验任务:编写假设各总体协方差阵相等时的距离实验任务:编写假设各

31、总体协方差阵相等时的距离判别算法,并对判别算法,并对p182数据进行距离判别数据进行距离判别实验四:距离判别实验四:距离判别nBayes判别判别Library(MASS)qda()#Quadratic discriminant analysis. #其实质是正态总体时的最大后验概率准则Library(MASS)#默认先验概率prior 为各组数据所占比例qd=qda(g.,data=X)# X为数据框类型,含有类别gqd=qda(x,g) #x中不含类别,g为类别z=predict(qd, test) #test为待判样本,若省略,则对训练样本判别z$class # 类别结果z$posteri

32、or # 后验概率table(X$g,z$class) #若对训练样品判别,可输出判对情况library(MASS)qd=qda(g.,data=X)predict(qd)$class 1 2 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 2 2 2 2plot(X,1:2,pch=X,3,col=X,3)text(X,1,X,2,adj=-0.5, col=X,3) 湿度差 压温差 q1 -1.9 3.2 12 -6.9 10.4 13 5.2 2.0 14 5.0 2.5 15 7.3 0.0 16 6.8 12.7 17 0.9 -15.4 18 -12.5 -2.5 19

33、 1.5 1.3 110 3.8 6.8 111 0.2 6.2 212 -0.1 7.5 213 0.4 14.6 214 2.7 8.3 215 2.1 0.8 216 -4.6 4.3 217 -1.7 10.9 218 -2.6 13.1 219 2.6 12.8 220 -2.8 10.0 2#舍一验证qd=qda(g.,data=X,CV=TRUE)$class 1 2 2 1 1 1 1 1 1 1 2 2 2 2 2 1 1 2 2 2 2ld=lda(G.,data=X)ld$scaling #投影方向z=predict(ld,test)z$classz$posterior

34、#后验概率z$x # X* ld$scaling中心化后的矩阵n费希尔判别费希尔判别数据降维后,在各组协方差阵相等下进行的数据降维后,在各组协方差阵相等下进行的最大后验概率准则判别最大后验概率准则判别 湿度差 压温差 q1 -1.9 3.2 12 -6.9 10.4 13 5.2 2.0 14 5.0 2.5 15 7.3 0.0 16 6.8 12.7 17 0.9 -15.4 18 -12.5 -2.5 19 1.5 1.3 110 3.8 6.8 111 0.2 6.2 212 -0.1 7.5 213 0.4 14.6 214 2.7 8.3 215 2.1 0.8 216 -4.6

35、4.3 217 -1.7 10.9 218 -2.6 13.1 219 2.6 12.8 220 -2.8 10.0 2 ld$scaling LD1湿度差 -0.0682677压温差 0.1562112 predict(ld)$class 1 1 2 1 1 1 2 1 1 1 1 2 2 2 2 1 2 2 2 2 2library(MASS)class1=predict(qda(class.,data=train)$class #Bayes判别class2=predict(lda(class.,data=train)$class #Fisher线性判别newtrain=predict(l

36、da(class.,data=train)$xclass3=predict(qda(newtrain, train$class)$class #Fisher投影后再做Bayes判别rbind(class1, class2, class3)table(train$class, class1)table(train$class, class2)table(train$class, class3)class1 2 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 2 2 2 2class2 1 2 1 1 1 2 1 1 1 1 2 2 2 2 1 2 2 2 2 2class3 1 2

37、1 1 1 2 1 1 1 2 2 2 2 2 1 2 2 2 2 2类别类别血清铜血清铜蛋白蛋白蓝色蓝色反应反应乙酸乙酸中性硫中性硫化物化物胃癌患者胃癌患者1萎缩性胃萎缩性胃炎患者炎患者2非胃炎患非胃炎患者者3228134201124513410402001671227170150781001672014225125714130100612150117761201331026160100510185115519170125641651425313510821210011772例2: ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11 ,12 ,13 ,14 ,15class

38、1 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3class2 1 1 1 3 1 2 2 3 2 2 2 3 3 3 3class3 1 1 1 1 1 2 2 3 2 2 2 3 3 3 3实验五实验五 判别分析判别分析实验目的:掌握实验目的:掌握Bayes判别和判别和Fisher判别的基本原判别的基本原理及理及R软件实现软件实现实验任务:实验任务:费希尔于费希尔于1936年发表的鸢尾花数据是对年发表的鸢尾花数据是对3种鸢尾花:种鸢尾花:刚毛鸢尾花、变色鸢尾花和弗吉尼亚鸢尾花个抽取容刚毛鸢尾花、变色鸢尾花和弗吉尼亚鸢尾花个抽取容量为量为50的样本,测量其花萼长、花萼宽、花瓣长和

39、花的样本,测量其花萼长、花萼宽、花瓣长和花瓣宽。请将用每组前瓣宽。请将用每组前30个作为训练样本,剩余数据作个作为训练样本,剩余数据作为待判样本进行如下判别:为待判样本进行如下判别:1. 进行进行Bayes判别,输出判别,输出60个待判样本的判别结果。个待判样本的判别结果。2. 进行进行Fisher线性判别,输出投影矩阵及线性判别,输出投影矩阵及60个待判数个待判数据的判别结果,并画出训练样本投影后的散点图,不据的判别结果,并画出训练样本投影后的散点图,不同类别的点用不同的符号和颜色表示。同类别的点用不同的符号和颜色表示。3. 将第将第2题中投影后的数据进行题中投影后的数据进行Bayes判别,

40、输出判别,输出60个待判数据的判别结果。个待判数据的判别结果。R软件中已有数据软件中已有数据iris,iris3,且如下可得到题中的训练样本。,且如下可得到题中的训练样本。train=data.frame(rbind(iris31:30,1, iris31:30,2, iris31:30,3), class=rep(c(1,2,3),each=30)五五.聚类分析聚类分析n系统聚类系统聚类n快速聚类快速聚类d=dist(scale(X),method=euclidean) #默认是欧式距离hc1=hclust(d,method=complete)plot(hc1,hang=-1,main=聚类

41、谱系图最长距离法)“single” 最短距离法“complete” 最长距离法“median” 中间距离法“average” 类平均法“centroid” 重心法*“ward” 离差平方和法*hang表示谱系图中各类所在的位置,取负值时,从底部画起n系统聚类系统聚类d=dist(scale(X) )hc1=hclust(d2,method=centroid)hc1$height=sqrt(hc1$height)cbind(hc1$merge,hc1$height)plot(hc1,hang=-1,main=聚类谱系图重心法)注意: “median” 中间距离法;“centroid” 重心法;“

42、ward” 离差平方和法这三种应以欧式距离的平方矩阵为递推矩阵。和谱系图有关的还有as.dendrogram(x,type=c(“rectangle“, “triangle“),horiz=FALSE)d=dist(c(1,2,6,8,11,13,15) hc1=hclust(d)dend1=as.dendrogram(hc1)par(mfrow=c(2,2)plot(dend1)plot(dend1,type=t,nodePar=list(pch=c(1,NA)plot(dend1,horiz=T)plot(dend1,edgePar=list(col=gray, lwd=2),nodePa

43、r=list(col=3:2, cex=c(2.0, 0.75), pch= 21:22,bg= c(light blue, pink)cutree(hc1,3)或者rect.hclust(hc1,k=3,border=red)根据系统聚类划分为若干个类根据系统聚类划分为若干个类变量聚类变量聚类d=as.dist(sqrt(1-cor(X)2) #将相关系数转化为距离矩阵hc1=hclust(d,method=single)plot(hc1,hang=-1)n快速聚类(快速聚类(k均值聚类)均值聚类)kmeans(x, centers) #centers为聚类个数实验六:聚类分析实验六:聚类分

44、析实验目的:掌握系统聚类和实验目的:掌握系统聚类和k均值聚类的原理,并熟练使均值聚类的原理,并熟练使用用R软件实现软件实现实现任务:了研究亚洲各国发展情况,选取了实现任务:了研究亚洲各国发展情况,选取了20个国家的个国家的六个指标数据,进行以下聚类六个指标数据,进行以下聚类(1)选取前四个指标,用标准化数据的欧式距离作用距离度选取前四个指标,用标准化数据的欧式距离作用距离度量,分别按最小距离、类平均距离、重心法和量,分别按最小距离、类平均距离、重心法和Ward法法和最大距离法分别对这些国家做聚类,画出聚类谱系图。和最大距离法分别对这些国家做聚类,画出聚类谱系图。并输出按并输出按Ward法分成三

45、类的结果法分成三类的结果(2)用相关系数转化为距离,分别按最小距离法和类平均距用相关系数转化为距离,分别按最小距离法和类平均距离对这些变量做聚类,画出聚类谱系图。并输出按类平离对这些变量做聚类,画出聚类谱系图。并输出按类平均法分成两类的结果。均法分成两类的结果。 平均寿命识字率综合入学率人均GDP面积人口Afghanistan44.63732.6919654.072061419.00365230022000Cambodia62.16878.287958.075441952.2618103511430China73.47494.230168.0057206.11896000001295330In

46、dia64.35268.292662.607723354.39429747001020000Indonesia71.49393.7822374.515484394.3261904443210000Iran71.9185.2328574.0358911891.32164500063900Korea79.89999.8453129325.779960048022Japan83.1669987.2983233648.66377800127310Jordan73.10793.1032878.267155700.399893405040Kazakhstan65.3649990.9307811927.25

47、271730014821Nepal67.45960.303957.478621189.2414718123000Oman76.14286.273466.1602726258.11309502325Pakistan67.16457.8346641.533252624.715115008797VietNam74.90892.1366963.711983096.95732955677680Philippines72.33993.673278.028843600.930000080080Malaysia74.73292.89869.7671714410.4332973523275SaudiArabia73.30586.74680.1635624208.17225000022760Israel81.15398.4251290.8670528291.88149006458Turkey72.2390.0395874.2616313359.2477945066500Qatar75.96694.3421160.9716577177.6811437580

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号