就由这些树的分类结果投票产生bagging分类。 先利用bagging对全部数据进行拟合:免费视频在线观看网站。
给出训练集和测试集的分类平均错误率:library(rpart)E0=rep(0,5)E1=E0for(iin1:5){m=mm[[i]]n0=2126-length(m)n1=length(m)a=rpart(NSP~.,w[-m,])E0[i]=sum(w[-m,23]!=predict(a,w[-m,],type="class"))/n0E1[i]=sum(w[m,23]!=predict(a,w[m,],type="class"))/n1}mean(E0)## [1] 0.01599
mean(E1)
## [1] 0.01599
3.adaboost分类
library(adabag)
## Loading required package: mlbench## Loading required package: caret## Loading required package: cluster## Loading required package: foreach## Loading required package: lattice## Loading required package: plyr## Loading required package: reshape2
set.seed(4410)a=boosting(NSP~.,w)
## Warning: Walker's alias method used: results are different from R < 2.2.0
(z0=table(w[,23],predict(a,w)$class))
## ## 1 2 3## 1 1655 0 0## 2 1 294 0## 3 0 0 176
(E0=(sum(z0)-sum(diag(z0)))/sum(z0))
## [1] 0.0004704
barplot(a$importance)#画出变量重要性图
# 下面是5折交叉验证代码:library(adabag)set.seed(4410)E0=rep(0,5)E1=E0for(iin1:5){m=mm[[i]]n0=2126-length(m)n1=length(m)a=boosting(NSP~.,w[-m,])E0[i]=sum(w[-m,23]!=predict(a,w[-m,],type="class"))/n0E1[i]=sum(w[m,23]!=predict(a,w[m,],type="class"))/n1}
## Warning: 长的对象长度不是短的对象长度的整倍数## Warning: 长的对象长度不是短的对象长度的整倍数## Warning: 长的对象长度不是短的对象长度的整倍数## Warning: 长的对象长度不是短的对象长度的整倍数
## Error: 参数长度为零
mean(E0)
## [1] 0.2
mean(E1)
## [1] 0.2
- 4. bagging 分类
## ## 1 2 3## 1 1652 3 0## 2 29 265 1## 3 0 1 175
(E0=(sum(z0)-sum(diag(z0)))/sum(z0))
## [1] 0.01599
# 上面的程序中,可以与后面5折交叉验证测试集的误差率相比较。变量。我们可以使用a$confusion命令得到OOB估计值:a$confusion
## 1 2 3 class.error## 1 1651 4 0 0.002417## 2 17 277 1 0.0## 3 0 3 173 0.0
# 下面是5折交叉验证结果:set.seed()E0=rep(0,5)E1=E0for(iin1:5){m=mm[[i]]n0=2126-length(m)n1=length(m)a=randomForest(NSP~.,data=w[-m,])E0=sum(w[-m,23]!=predict(a,w[-m,]))/n0E1=sum(w[m,23]!=predict(a,w[m,]))/n1}mean(E0)
## [1] 0.0005882
mean(E1)
## [1] 0.007042
6.支持向量机分类# 利用全部数据作为训练集的情况library(rpart.plot)
## Loading required package: rpart
(a=rpart(NSP~.,w))#利用决策树拟合全部数据并打印输出
## n= 2126 ## ## node), split, n, loss, yval, (yprob)## * denotes terminal node## ## 1) root 2126 471 1 (0. 0. 0.0) ## 2) CLASS=1,2,3,4,6,7 1681 29 1 (0. 0.0 0.000000) *## 3) CLASS=5,8,9,10 445 179 2 (0.006742 0. 0.) ## 6) CLASS=5,10 269 4 2 (0.0 0. 0.003717) *## 7) CLASS=8,9 176 1 3 (0.000000 0.005682 0.) *
rpart.plot(a,type=2,extra=4)#画决策树
# 显示分类结果,成为OOB估计,—。这些观测值被称为OOB数据。基于这些数据得到的错误率,它们成为天然的测试集,听说sf999新网站。每次都有30%~40%的数据没有被抽到,抽样是放回抽样,即口袋外的数据。由于每棵树都由自助法抽样得来,学会横截面数据:因变量为分类变量及因变量为频数变量的情况(二)。节点变量也是随机的。对于。 这里用randomForest软件包对全部数据进行随机森林算法模拟:
1.胎心宫缩监护数据
利用e1071对全部数据拟合:数据。
library(randomForest)
## randomForest 4.6-7## Type rfNews() to see new features/changes/bug fixes.
a=randomForest(NSP~.,data=w,importance=TRUE,proximity=TRUE)(z0=table(w[,23],predict(a,w)))
## ## 1 2 3## 1 1655 0 0## 2 1 294 0## 3 0 0 176
(E0=(sum(z0)-sum(diag(z0)))/sum(z0))
## [1] 0.0004704
# 画出变量重要性的5个图layout(matrix(c(1,1,2,2,3,3,4,4,4,5,5,5),nr=2,byrow=TRUE))for(iin1:5)barplot(t(importance(a))[i,],cex.names=0.5)
# 基于OOB的结果:sf999发布网站。 OOB是out of# bag的缩写,相比看苏格影院。不仅样本随机,我不知道分类。每个节点变量的产生都仅仅在随机选出的少数变量中产生,但随机森林抽样得到的样本数与由此建立的决策树要大大多于bagging的样本数目。随机森林与bagging的关键区别在于:在生成每棵树的时候,因变量。在生成这些树的时候没有更多的干预。而随机森林也是进行多次bootstrap放回抽样,sf999发布网站。抽多少样本就生成多少颗决策树,就由这些树的分类结果投票产生bagging分类。 先利用bagging对全部数据进行拟合:够爽影院vip破解版。
随机森林(random forests)和bagging有些类似。bagging在每次bootstrap放回抽样后产生一棵决策树,如果目的是分类,yy6080。每棵树都对一个新的观测值产生一个预测,事实上光棍影院yy com。这样就产生k个不同的样本。然后对每个样本生成一个决策树,由于是放回抽样,每次抽取和样本量同样多的观测值,听说因变量。它对训练样本做多次放回抽样(如k次),译为“自助整合法”。bagging利用bootstrap放回抽样,每一次迭代都针对前一个分类器对某些观测值的误分缺陷加以修正。相比看手游私sf无限元宝。这里使用adabag软件包实现该算法。苏格影院手机在线观看。
set.seed(1044)a=bagging(NSP~.,w)(z0=table(w[,23],predict(a,w)$class))
## ## 1 2 3## 1 1652 3 0## 2 29 265 1## 3 0 1 175
(E0=(sum(z0)-sum(diag(z0)))/sum(z0))
## [1] 0.01599
barplot(a$importance)#画出变量重要性图
# 下面给出5折交叉验证平均误判结果:。library(adabag)set.seed(1044)E0=rep(0,5)E1=E0for(iin1:5){m=mm[[i]]n0=2126-length(m)n1=length(m)a=bagging(NSP~.,w[-m,])E0[i]=sum(w[-m,23]!=predict(a,w[-m,],type="class"))/n0E1[i]=sum(w[m,23]!=predict(a,w[m,],type="class"))/n1}
## Warning: 长的对象长度不是短的对象长度的整倍数## Warning: 长的对象长度不是短的对象长度的整倍数## Warning: 长的对象长度不是短的对象长度的整倍数## Warning: 长的对象长度不是短的对象长度的整倍数## Warning: 长的对象长度不是短的对象长度的整倍数## Warning: 长的对象长度不是短的对象长度的整倍数## Warning: 长的对象长度不是短的对象长度的整倍数## Warning: 长的对象长度不是短的对象长度的整倍数## Warning: 长的对象长度不是短的对象长度的整倍数## Warning: 长的对象长度不是短的对象长度的整倍数## Warning: 长的对象长度不是短的对象长度的整倍数## Warning: 长的对象长度不是短的对象长度的整倍数## Warning: 长的对象长度不是短的对象长度的整倍数## Warning: 长的对象长度不是短的对象长度的整倍数## Warning: 长的对象长度不是短的对象长度的整倍数## Warning: 长的对象长度不是短的对象长度的整倍数## Warning: 长的对象长度不是短的对象长度的整倍数## Warning: 长的对象长度不是短的对象长度的整倍数
mean(E0)
## [1] 1
mean(E1)
## [1] 1
5.随机森林分类
library(adabag)
## Loading required package: mlbench## Loading required package: caret## Loading required package: cluster## Loading required package: foreach## Loading required package: lattice## Loading required package: plyr## Loading required package: reshape2
set.seed(4410)a=boosting(NSP~.,w)
## Warning: Walker's alias method used: results are different from R < 2.2.0
(z0=table(w[,23],predict(a,w)$class))
## ## 1 2 3## 1 1655 0 0## 2 1 294 0## 3 0 0 176
(E0=(sum(z0)-sum(diag(z0)))/sum(z0))
## [1] 0.0004704
barplot(a$importance)#画出变量重要性图
# 下面是5折交叉验证代码:library(adabag)set.seed(4410)E0=rep(0,5)E1=E0for(iin1:5){m=mm[[i]]n0=2126-length(m)n1=length(m)a=boosting(NSP~.,w[-m,])E0[i]=sum(w[-m,23]!=predict(a,w[-m,],type="class"))/n0E1[i]=sum(w[m,23]!=predict(a,w[m,],type="class"))/n1}
## Warning: 长的对象长度不是短的对象长度的整倍数## Warning: 长的对象长度不是短的对象长度的整倍数## Warning: 长的对象长度不是短的对象长度的整倍数## Warning: 长的对象长度不是短的对象长度的整倍数
## Error: 参数长度为零
mean(E0)
## [1] 0.2
mean(E1)
## [1] 0.2
- 4. bagging 分类
## [1] 0.01599
mean(E1)
## [1] 0.01599
3.adaboost分类adaboost是adaptive boosting的简写,否则避免使用这种方法计算误判率。sf999发布网。# 下面利用5折交叉验证,造成误判率计算错误。所以除非是看见结果的矩阵,相比看情况。由于table()函数生成的矩阵可能不是方阵或预测缺类,利用对角线元素的比例来计算误判率,并计算误差z0=table(w[,23],predict(a,w,type="class"))z0## ## 1 2 3## 1 1652 3 0## 2 29 265 1## 3 0 1 175
(E0=(sum(z0)-sum(diag(z0)))/sum(z0))
## [1] 0.01599
# 上面的程序中,
# 利用全部数据作为训练集的情况library(rpart.plot)
## Loading required package: rpart
(a=rpart(NSP~.,w))#利用决策树拟合全部数据并打印输出
## n= 2126 ## ## node), split, n, loss, yval, (yprob)## * denotes terminal node## ## 1) root 2126 471 1 (0. 0. 0.0) ## 2) CLASS=1,2,3,4,6,7 1681 29 1 (0. 0.0 0.000000) *## 3) CLASS=5,8,9,10 445 179 2 (0.006742 0. 0.) ## 6) CLASS=5,10 269 4 2 (0.0 0. 0.003717) *## 7) CLASS=8,9 176 1 3 (0.000000 0.005682 0.) *
rpart.plot(a,type=2,extra=4)#画决策树
# 显示分类结果,(转)未来教师的培训
(转)展望未来教师