收藏 分享(赏)

随机森林.ppt

上传人:weiwoduzun 文档编号:5655539 上传时间:2019-03-11 格式:PPT 页数:22 大小:848.50KB
下载 相关 举报
随机森林.ppt_第1页
第1页 / 共22页
随机森林.ppt_第2页
第2页 / 共22页
随机森林.ppt_第3页
第3页 / 共22页
随机森林.ppt_第4页
第4页 / 共22页
随机森林.ppt_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、随机森林,随机森林的定义,随机森林是一个树型分类器,构建的没有剪枝的分类回归决策树;输入的是一个二维的矩阵,决定了单颗树的生长过程;森林的输出采用简单多数投票法(针对分类)或单颗树输出结果的简单平均(针对回归)得到。,妹子分类问题,计算机看不到妹子的长相,只能得到一些属性(Attributes)描述,包括:身高、体重、头部面积、头部形状、眼睛面积、头发长度、胸围、腰围、臀围等等,那么是否能够通过这些特征判断一个妹子是不是美女。,决策树的定义,决策树是这样的一颗树: 每个内部节点上选用一个属性进行分割 每个分叉对应一个属性值 每个叶子结点代表一个分类,A1,A2,A3,c1,c2,c1,c2,c

2、1,a11,a12,a13,a21,a22,a31,a32,决策树框架,决策树生成算法分成两个步骤 树的生成 开始,数据都在根节点 递归的进行数据分片 树的剪枝 防止过拟合 决策树使用: 对未知数据进行分割 按照决策树上采用的分割属性逐层往下,直到一个叶子节点,随机森林算法,随机选取训练样本集:使用Bagging方法形成每颗树的训练集 随机选取分裂属性集:假设共有M个属性,指定一个属性数FM,在每个内部结点,从M个属性中随机抽取F个属性作分裂属性集,以这F个属性上最好的分裂方式对结点进行分裂(在整个森林的生长过程中, F的值一般维持不变) 每颗树任其生长,不进行剪枝,决策树续2分裂属性的选择度

3、量,原则:分类效果最好的(或分类最纯的,或能使树的路径最短)的属性 常用度量 信息增益Information gain (ID3/C4.5) 所有属性假设都是取离散值的字段(ID3) 经过修改之后可以适用于连续值字段(C4.5) 基尼指数Gini index (Classification and Regression Tress,CART,Breiman,1984) 能够适用于离散和连续值字段,信息增益,任意样本分类的期望信息: I(s1,s2,sm)=Pi log2(pi) (i=1m) 其中,数据集为S,m为S的分类数目, Pi|Si/|S| Ci为某分类标号,Pi为任意样本属于Ci的概

4、率, si为分类Ci上的样本数 I(s1,s2,sm)越小, s1,s2,sm就越有序(越纯),分类效果就越好。 由属性A划分为子集的熵: A为属性,具有V个不同的取值, S被A 划分为V 个子集s1,s2,sv,sij是子集sj中类Ci的样本数。 E(A)= (s1j+ +smj)/s * I(s1j,smj) 信息增益:Gain(A)= I(s1,s2,sm) E(A) 分裂属性选择规则:选择具有最大信息增益的属性为分裂属性,OOB估计,计算1(以树为单位,错误):对每颗树,利用未被该树选中的训练样本点,统计该树的误分率;将所有树的误分率取平均得到随机森林的OOB误分率 计算2(以样本为单

5、位,正确):对每个样本,计算它作为OOB样本的树对它的分类情况(约1/3的树);然后以简单多数投票作为该样本的分类结果;最后用误分个数占样本总数的比率作为随机森林的OOB误分率 OOB误分率是随机森林的泛化误差的一个无偏估计 OOB估计是高效的,其结果近似于需要大量计算的k折交叉验证。,随机森林的特点,两个随机性的引入,使得随机森林不容易陷入过拟合 两个随机性的引入,使得随机森林具有很好的抗噪声能力 对数据集的适应能力强:既能处理离散型数据,也能处理连续型数据,数据集无需规范化。 可生成一个Proximities=(pij)矩阵,用于度量样本之间的相似性: pij=aij/N, aij表示样本

6、i和j出现在随机森林中同一个叶子结点的次数,N随机森林中树的颗数。 可以得到变量重要性排序(两种:基于OOB误分率的增加量和基于分裂时的分类节点纯度下降量),两个重要的代码,randomForest 主要参数是ntree,mtry Predict,第一步,随机森林的安装,随机森林是基于R语言运行,安装过程分两步: 1.ubuntu系统下首先安装R语言包。 用一行代码。 sudo apt-get install R 然后ubuntu系统就自动的帮你安装完R。 2.安装random forest 意想不到的简单。 打开终端 ,输入R,就算进入到了R语言的编码界面。 在大于号后面入 “install

7、.packages(“randomForest“)“ 然后你选择一个距离你比较近的数据源就可以了。,使用代码,library( “randomForest“ ) data(iris) set.seed(100) ind-sample(2,nrow(iris),replace=TRUE,prob=c(0.8,0.2) iris.rfrandomForest(Species.,irisind=1,ntree=50,nPerm=10,mtry=3,proximity=TRUE,importance=TRUE) print(iris.rf) iris.pred-predict( iris.rf,iri

8、sind=2, ) table(observed=irisind=2,“Species“,predicted=iris.pred ),打开R界面,我的代码,library(randomForest) for (i in 1:5) set.seed(i) setwd(“/home/ubuntu/desktop/RNA/randomForest/train_all“) name-paste(“set“,i,“.txt“,sep=“) name1-paste(“tree1“,i,sep=“) name2-paste(“random“,i,sep=“) train1-read.table(name,h

9、eader=T) train-train1,2:dim(train1)2 hot.rf=randomForest(binding ., data=train, ntree=500, mtry=18, importance=TRUE) setwd(“/home/ubuntu/desktop/RNA/randomForest/query_all“) test1-read.table(name,header=T) test-test1,2:dim(test1)2 pre_1-predict(hot.rf,test) #table(observed = test“binding“, predicted = iris.pred) setwd(“/home/ubuntu/desktop/RNA/randomForest/out“) write.table(getTree(hot.rf,1),name1) write(hot.rf,name2) write.table(pre_1,name) ,

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报