vlambda博客
学习文章列表

R语言数据分析|随机森林

一、概念

集成学习:将多个弱分类器集成为强分类器。

回到原点:改变数据生成一棵树,然后再次改变数据,生成另一个树,最后取它们的平均值或者让它们投票选出票数最多的类,可能会提高准确性。

随机森林:准确性大于99%的决策树


二、算法

设给定d个元组的训练集D,为组合分类器产生k颗决策树

(1)使用有放回抽样生成训练集Di, 每个Di都是D的一个自助样本,某些元组在Di中出现多次,而某些元组不出现。

(2)每个自助样本集生长为单棵分类树:设F是用来在每个节点决定划分的属性数,其中F远小于可用属性数。为构造决策分类器Mi,在每个节点随机选择F个属性作为该节点划分的候选属性。

(3)采用简单多数投票法得到随机森林的结果


抽取n份数据(有放回的抽样)——选取少数的特征(若干列)——完全生长——多数表决

每个专家的经验不一样,每个专家的视角不一样,每棵树都是一个专家


三、代码实现

library(randomForest)set.seed(2012)imodel<-randomForest(wlfk~., ntree=220, data=cjb[train_set_index,])         #波浪号后面是自变量# 在训练集上表现predicted_train<-predict(imodel, newdata=cjb[train_set_idx,],type="response")Metrics::ce(cjb$wlfk[train_set_idx], predicted_test)
# 在测试集上表现predicted_train<-predict(imodel, newdata=cjb[-train_set_idx,],type="response")Metrics::ce(cjb$wlfk[-train_set_idx], predicted_test)


自律小tips:最高明的自律是巧妙借助他律来完成的!