- 1、本文档共48页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
009 现代回归和分类
在一个关于淋巴瘤的基因芯片数据中,变量个数可以达到4682个,而样本量仅有81个;这种数据在经典统计中根本无法处理,Diaconis Efron(1983)[1]曾经说过,“统计经验表明,基于19个变量和仅仅155个数据点来拟合模型是不明智的。”但是随机森林可以很好地找到重要的基因[2] 例9.7 (继续例9.3数据B1.txt). library(randomForest) B1=read.table(f:/hepbook/data/Boston.txt,header=T)#??êy?Y?úMASS attach(B1) w=randomForest(medv ~ ., data=B1, importance=TRUE,proximity=TRUE) par(mfrow=c(1,2)) for(i in 1:2)barplot(t(importance(w))[i,],cex.names = 0.5) print(w) 随机森林:IRIS set.seed(117) w=randomForest(Species ~ ., data=iris, importance=TRUE,proximity=TRUE) par(mfrow=c(1,2));for(i in 1:2)barplot(t(importance(w))[i,],cex.names = 0.7) 随机森林:IRIS par(mfrow=c(1,2)) aa=eigen(w$proximity)[[2]] plot(aa[,1:2],pch=(1:3)[as.numeric(iris$Species)],cex=0.7,main=,xlab=,ylab=) MDSplot(w, iris$Species, palette=rep(1, 3), pch=as.numeric(iris$Species),xlab=,ylab=) 例9.9 (数据airquality.txt) 1973年纽约市从五月到九月的空气质量数据[1]。变量有臭氧(Ozone,单位ppb) 、阳光辐射(Solar.R, 单位lang)、风力(Wind, 单位mph)、温度(Temp, 单位F)、月(Month)、日(Day)。我们希望把臭氧作为因变量,用气象数据作为自变量通过随机森林进行回归。 例9.9 (数据airquality.txt) ozone.rf=randomForest(Ozone ~ ., data=airquality, mtry=3,importance=TRUE, na.action=na.omit) par(mfrow=c(1,2));for(i in 1:2) barplot(importance(ozone.rf)[,i]) (该数据在randomForest中固有) 思考一下: 随机森林、bagging、adaboost等方法都是基于决策树的组合方法。但这些方法和传统统计思维有很大的不同。你能够说出你的感觉吗? 就你的理解,这些方法有什么优缺点? 最近邻方法 最近邻方法(nearest neighbor algorithm)可能是所有算法建模中最简单的方法。它基于训练集对测试集进行分类或回归。每个回归或分类问题都有一些自变量,它们组成一个多维空间。 首先在空间中假定一个距离。在连续型自变量的情况,通常都是用欧氏空间。 在分类问题中,一个测试集点应该属于离它最近的k个训练集点中多数所属于的类型。在k=1的最简单的情况,那么该点的类型应该和与它最近的一个点相同。 在回归中,一个测试集点的因变量的预测值应该等于离它最近的k个训练集点相应的因变量值的平均。至于k的选择,一般都用测试集的交叉验证来进行。 例9.10 (数据radar.txt). 关于雷达是否被电离层反射的具有351个观测值的数据[1]。这里自变量有34个,因变量class为分类变量,它取两个值:一个是的确被电离层反射,标为“好”(good),否则就是“不好”(bad)。我们在这里试图用最近邻方法来建立分类模型用那34个自变量预测这个分类变量。我们还是随机取约一半数据作为训练集,其余为测试集。 例9.10 (数据radar.txt). library(kknn);data(ionosphere) n=nrow(ionosphere);set.seed(1);test=sample(1:n,n/2) a=kknn(class ~ ., ionosphere[-test,], ionosphere[test,]) table(ionosphere[test,]$class, a$fit) 思考一下: 最近邻方法是最简单最直观的方法。似乎俗语“物以类聚,人以群分”可以描述这个方法。 最近邻方法最常用
文档评论(0)