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:最高明的自律是巧妙借助他律来完成的!