随机森林算法原理

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)#查看特征的重要性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值