您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 其它文档 > (用)第七课多元统计分析
1数据挖掘十大经典数据挖掘算法是那些?数据挖掘十大经典算法可以分为以下情况。1与分类相关的算法:C4.5(分类决策树),CART(分类与回归树),NaïveBayes(朴素贝叶斯),KNN(K近邻分类),SVM(支持向量机),EM(最大期望),AdaBoost;2与聚类相关的算法:(K-Means)K均值;3与关联规则相关的算法:Apriori;4与搜索引擎相关的算法:PageRank.21.判别分析是用于判别个体所属群体的一种统计方法,属于分类。判别通常由3种方法:距离判别、Fisher判别和Bayes判别,它们本质上属于线性判别和二次判别,R并没有给出这3种判别,而是3中判别法综合在一起,分别给出线性判别函数lda()和二次判别函数qda()函数。lda()和qda()使用前,需要加载MASS程序包:library(MASS)它们的使用形式基本相同,有公式形式,矩阵或数据框形式两种:公式格式为:(加载MASS包:library(MASS))lda(formula,data,...,subset,na.action)qda(formula,data,...,subset,na.action)参数formula为公式,形如groups~x1+x2+…,data为数据构成的数据框,subset为可选择向量,表示观察值的子集,na.action为函数,表示处理缺失数据的方法。lda()函数的返回值有:调用方法、先验概率、每一类样本的均值和线性判别系数,qda()函数的返回值与lda()函数的返回值相同,只是没有线性判别系数,因此,无论预测还是回代,还需要有预测函数predict()函数。对于lda()函数而言,predict()函数的使用格式:predict(object,newdata,prior=object$prior,dimen,method=c(“plug-in”,predictive,”debiased”),…)对于qda()函数而言,predict()函数的使用格式:predict(object,newdata,prior=object$prior,method=c(“plug-in”,predictive,”debiased”,”looCV”),…)参数object为lda()函数或qda()函数生成的对象;当lda()或qda()使用公式形式计算时,newdata为预测数据构成的数据框;当lda()或qda()使用矩阵或因子计算时,newdata为向量,默认值为全体训练样本;prior为先验概率,默认值使用对象的先验概率,dimen为使用空间的维数,method为参数估计的方法。predict()函数的返回值有:$class(分类),$posterior(后验概率),$x(qda函数无此项)。例1某气象站检测前14年气象的实际资料如下表,有两项综合预报因子,其中有春旱的是6个年份资料,无春旱的是8个年份资料,今年测到两个指标的数据为(23.5,-1.6),试用lda()函数和qda()函数对数据做判别分析,并预报今年是否有春旱。表某气象站有无春旱的资料解:数据框输入数据,格式调用序号春旱无春旱124.8-2.022.1-0.7224.1-2.421.6-1.4326.6-3.022.0-0.8423.5-1.922.8-1.6525.5-2.122.7-1.5627.4-3.121.5-1.0722.1-1.2821.4-1.33exam.data-data.frame(X1=c(24.8,24.1,26.6,23.5,25.5,27.4,22.1,21.6,22.0,22.8,22.7,21.5,22.1,21.4),X2=c(-2.0,-2.4,-3.0,-1.9,-2.1,-3.1,-0.7,-1.4,-0.8,-1.6,-1.5,-1.0,-1.2,-1.3),sp=rep(c(Have,No),c(6,8)))new-data.frame(X1=23.5,X2=-1.6)lda.sol-lda(sp~X1+X2,data=exam.data)predict(lda.sol,new)$classtable(exam.data$sp,predict(lda.sol)$class)##看二次判别结果:qda.sol-qda(sp~X1+X2,data=exam.data)predict(qda.sol,new)$classtable(exam.data$sp,predict(qda.sol)$class)同学自己看一下,lda()和qda()结果是否一样?例2(FisherIris数据)Iris数据有4个属性,萼片的长度、萼片的宽度、花瓣长度和花瓣的宽度。数据共150个样本,分为3类,前50个数据为第一类——Setosa,中间的50个数据为第二类——Versicolor,最后50个数据为第3类——Virginica,数据格式如下表所示,试用R软件中的判别函数(lda或qda)对Iris数据进行判别分析。表FisherIris数据序号萼片的长度萼片的宽度花瓣长度花瓣的宽度种类15.13.51.40.2Setosa24.93.01.40.2Setosa505.03.31.40.2Setosa517.03.24.71.4Versicolor1005.72.84.11.3Versicolor1016.33.36.02.5Virginica1505.93.05.11.8Virginica解(exam0713.R)R中提供了Iris数据(数据框iris),数据的第5列表明数据属于哪一类。在150个样本中随机选取100个作为训练样本,余下的50个作为待测样本,先验概率各为1/3。train-sample(1:150,100)##从150个数中随机抽取100个数z-lda(Species~.,iris,prior=c(1,1,1)/3,subset=train)class-predict(z,iris[-train,])$classclasssum(class==iris$Species[-train])###看一下预测结果的准确性(统计:预测的类别等于真值的类别个数)4结果:[1]48……………………………………………..完………………………………………….习题某医生为研究舒张压与血浆胆固醇对冠心病的影响情况,随机抽取并测定了某地从事某特殊工作的50~59岁女工冠心病人和正常人各15例的舒张压(DBP)与血浆胆固醇(CHOL),见下表,试分析测定结果,并提供对未知个体(DBP=10.66,CHOL=5.02)属于冠心病患者还是正常人的判断。解:library(MASS)exam.data-data.frame(DBP=c(9.86,13.33,14.66,9.33,12.80,10.66,10.66,13.33,13.33,13.33,12.00,14.66,13.33,12.80,13.33,10.66,12.53,13.33,9.33,10.66,10.66,9.33,10.66,10.66,9.33,10.40,9.33,10.66,10.66,11.20),CHOL=c(5.18,3.73,3.89,7.10,5.49,4.09,4.45,3.63,5.96,5.70,6.19,4.01,4.01,3.63,5.96,2.07,4.45,3.06,3.94,4.45,4.92,3.68,2.77,3.21,3.63,3.94,4.92,2.69,2.43,3.42),sp=rep(c(Have,No),c(15,15)))new-data.frame(DBP=10.66,CHOL=5.02)lda.sol-lda(sp~DBP+CHOL,data=exam.data)predict(lda.sol,new)$classtable(exam.data$sp,predict(lda.sol)$class)5##看二次判别结果:qda.sol-qda(sp~DBP+CHOL,data=exam.data)predict(qda.sol,new)$classtable(exam.data$sp,predict(qda.sol)$class)………………………………………………完……………………………………………..练习###读用户Excel文件ch1.xls,做分类,表中说明类别属性“身份”,1将军,2军师,3武官,4文官。install.packages(RODBC)library(RODBC)con-odbcConnectExcel(ch1.xls)##连接Excel表格##ch1.xls是你自己的文件名tbls-sqlTables(con)##得到Excel表格信息sh1-sqlFetch(con,tbls$TABLE_NAME[3])#读取Excel表格的有信息的sheet页##通常TABLE_NAME[1]对应sheet1页有信息,一般共3页sh2-sh1[,-(1:2)]library(MASS)##qda()函数在此包中new-data.frame(统御=66,武力=89,智慧=78,政治=56,魅力=76,忠诚=66,国别=3,出身=2)qda.sol-qda(身份~.,data=sh2)predict(qda.sol,new)$classtable(sh2$身份,predict(qda.sol)$class)完成练习(自己)###读用户Excel文件ch1.xls,做分类,表中说明类别属性“肾细胞癌转移情况”,0-无转移,1-有转移……………………………………………………..完………………………………聚类分析(系统聚类、动态聚类)思想:将相似性(或相异性)数据看成是对象之间的“距离”远近的一种度量,将距离近6的对象归入一类,不同类之间的对象距离较远。根据分类对象不同分为Q型聚类分析和R型聚类分析,Q型聚类分析是指:对样本进行聚类;R型聚类分析是指:对变量进行聚类。1.距离和相似系数变量大致可分为两类1)定量变量,是连续值,具有数值特征,数量上的变化;2)定性变量,这些量并非具有数量上的变化,而只有性质上的差异,大致分两类,一为有序变量,没有数量关系,只有次序关系,如一等品、二等品等;二为名义变量,既无等级,也无次序,如天气(阴,晴)等。1.1.距离:若数据集中有n个样本,则这n个样本就是数据集中的n个点,如每个样本有k个指标(分量),则ikx为第i个样本的第k个指标,第i个样本的第j个样本的距离记为ijd,聚类过程中,距离近的归为一类,距离远的归属不同类。在R中,dist()函数计算各样本间的距离,格式:dist(x,method=euclidean,diag=FALSE,upper=FALSE,p=2)参数x为数值矩阵,或者为数据框,或者是“dist”对象;method为定义距离的方法,默认值是euclidean,表示欧几里德距离(即2112)(pkjkikxx),还可选绝对值距离、无穷模距离等;diag为逻辑变量,表示输出上三角矩阵值,默认为FALSE,表示仅输出下三角阵值;p表示距离qpkqjkikxx11)(的参数q,默认值为2,即欧几里德距离。1.2数据变换做聚类分析时,需要将数据做中心化或标准化处理,称:jijijxxx*,niijjxnx11,i=1,2,..,n;j=1,2,...,p为中心化变换,称:jjijijsxxx*,21)(11nijijjxxns,i=1,2,..,n;j=1,2,...,p为标准化变换在R中,scale()函数做数据的中心化或标准化,格式:scale(x,center=TRUE,scale=TRUE)参数x为样本构成的数值矩阵,center或者为逻辑变量,表示是否对数据做中心变换,默认值为TRUE;或者为数值向量,
本文标题:(用)第七课多元统计分析
链接地址:https://www.777doc.com/doc-3045363 .html