首页 > 技术文章 > 30-大道至简——随机森林如何将分类器由弱变强

turingbrain 2017-11-26 21:27 原文

两年前的我周末应该是在安逸地玩手机、看电视或出去玩,两年后的我不知被哪阵邪风侵入,总之现在每天以工作为乐,家里书房成了我的长期据点。现在的状态是没人逼我,不写代码不高兴。我想python的可爱语法是一个方面,另一个方面该不会是中危了?总之每天和时间赛跑的感觉……

 

今天学习简单而强大的随机森林:

  • 随机森林

可以看做是 ensemble of decision trees, 将弱的模型结合在一起变成强模型。更易扩展, 且较少会 overfitting。

 

构造步骤如下:

1. draw a random bootstrap sample of size n (with replacement)

2. grow decision tree from bootstrap sample, at each node:

3. randomly select d features without replacement

4. split node using feature that provides best split

5. repeat 1 & 2 k times.

6. aggregate the prediction by each tree to assign the class label by majority vote

 

划重点:抽样随机和选择特征随机。

 

 

  • 集成学习

就是将多个不同的分类器集合组合为一个大的分类器, 选择最终结果是以 majority voting为准。即使每个单独的分类器错误率较高, 但将多个分类器组合之后, 错误率就会大大降低。

 

假设我们组合了 n 个分类器,它们的错误率都为  εε , 各个分类器之间独立。

则这 n 个分类器里, 多于 k 个分类器分类错误的概率为:

 

 

  • Majority vote分类器

 

  • 使用Sklearn自带的VotingClassifier

 

下周学习如何评估majority voting的性能,敬请期待:)

推荐阅读