欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

随机森林算法原理

程序员文章站 2022-07-14 15:14:07
...

RF是以决策树为基学习器构建bagging的基础上,进一步在决策树的训练过程中引入随机属性,简言之 RF就是 bagging+决策树,如果非必要的话,没有必要从头到尾重新搭建基学习器,已有的包可以解决当前问题即可。但是也存在一个问题,即现有的包中都将0/1赋予同样的权重,所以当样本不均衡且更关注负样本时,此时投票函数需要进一步的优化。

  1. 算法流程

① 假设存在数据集随机森林算法原理,有特征数N,有放回的抽样可以生 成抽样空间 随机森林算法原理

②构建基学习器(决策树):就每一个抽样 随机森林算法原理 (其中K<<M)生成决策树,并记录每一个决策树的结果 随机森林算法原理

③ 训练T 次使 随机森林算法原理 ,其中 随机森林算法原理 是一种算法(绝对多数投票法,相对多数投票法,加权投票法等)

2. RandomForest包主要参数解释

随机森林算法原理

formula:y~x1+x2+...+xk

data :数据集

na.action:缺失值的处理方式

ntree :生成树的数量 ,一般生成的数越多开销越大,一般而言不要太小

mtry: 随机抽样选取特征数,分类问题默认总特征数的平方根,回归问题默认为总特征的1/3

nodes:是否返回node

#以泰坦尼克号的数据集为例
setwd('E:/R')
data<-read.csv('E:/R/train.csv')
str(data)
data_new<-data[c(1,2,3,5,6,7,8,10)]
data_new<-na.omit(data_new)
rf<-randomForest(as.factor(Survived)~.,data=data_new)
plot(rf)                                       

随机森林算法原理

随机森林算法原理

随机森林的OOB是17.23%,准确率为:83%,召回为:17.8%

可以看见,误差在150棵树的情况下比较稳定了,为节省计算开销,可以选择将ntree参数设置为150

rf<-randomForest(as.factor(Survived)~.,data=data_new,ntree=150)

随机森林算法原理

此时,OOB为18.21%,准确度为82%,召回为17.8%

随机森林算法原理

将随机抽样的特征数设置为4的时候,得到的OOB是最小的

varImpPlot(rf)#查看特征的重要性

随机森林算法原理

相关标签: 机器学习