引言

想了解一个人的人品一般询问多个熟悉他的人,而不是只问一个人,毕竟一个人的评价难免有失偏颇。对于决策树也是一样,单一的决策树有时候会过拟合,有时候效果不太理想。而随机森林就是利用多棵决策树共同做决策。毕竟三个臭皮匠顶个诸葛亮嘛。


随机森林

随机森林主要利用了 bagging 的思想,也就是多个学习器并行学习,共同预测结果。

随机森林有多棵决策树,每棵决策树并行独立训练。预测时每个决策树都预测出一个结果,大家共同决策:

  • 对于分类问题:大家投票少数服从多数
    • 例如今天是否适合打球
  • 对于回归问题:大家求平均值
    • 例如北京房价多少钱一平米

如何建立随机森林

随机森林之所以叫"随机"森林,是因为建立时有两个随机。

  1. 每棵树的样本集随机
    • 为了保证训练数据的相对独立性
  2. 每棵树的属性集随机
    • 为了保证训练过程的相对独立性
样本集随机

假设原始样本集有 N 个样本,则每棵树从中有放回的选择 N 个样本作为自己的样本集,这样每个树的样本集仍然是 N 个。

但由于是有放回的,所以对于一棵决策树而言,有些样本被选择了多次,有些样本没有被选到。

既保证了每棵树样本集个数和分布的一致,又保证了每个树的样本集相对独立。

属性随机

假设每条数据有 M 个属性,每棵树随机选取其中的 m 个属性进行训练(m << M), 一般取 m = log M。

保证决策树训练过程的相对独立性。

随机森林流程图

训练过程

决策树系列4:随机森林 (三个臭皮匠顶个诸葛亮)

预测过程

决策树系列4:随机森林 (三个臭皮匠顶个诸葛亮)


后记

随机森林通常可以获取不错的性能,多棵决策树并行独立训练再共同预测。

那我们可不可以换个思路:

  • 先训练第一棵树
  • 再根据第一棵树的误差训练第二棵树
  • 再根据第二棵树的误差训练第三棵树
  • 以此类推,误差就会越来越小

这种递进式的训练思想称为 boost, 下次咱们就一起聊聊典型的 boost 算法: AdaBoost。

欢迎关注本人公众号《大数据茶馆》,用大白话畅聊大数据。

来的都是客,欢迎您常来坐坐~

决策树系列4:随机森林 (三个臭皮匠顶个诸葛亮)

相关文章:

  • 2021-10-31
  • 2021-08-27
  • 2021-09-18
猜你喜欢
  • 2021-06-14
  • 2021-07-27
  • 2021-05-06
  • 2021-11-21
  • 2021-07-10
  • 2021-10-04
相关资源
相似解决方案