机器学习系列之随机森林

随机森林就是通过集成学习的思想将多棵树集成的一种算法,它的基本单元是决策树,而它的本质属于机器学习的一大分支——集成学习(Ensemble Learning)方法。将若干个弱分类器的分类结果进行投票选择,从而组成一个强分类器,这就是随机森林bagging的思想。

每棵树生成规则:

  1. 如果训练集大小为N,对于每棵树而言,随机且有放回地从训练集中的抽取N个训练样本(这种采样方式称为bootstrap sample方法),作为该树的训练集;每棵树的训练集都是不同的,而且里面包含重复的训练样本(理解这点很重要)。
  2. 如果每个样本的特征维度为M,指定一个常数m<<M,随机地从M个特征中选取m个特征子集,每次树进行分裂时,从这m个特征中选择最优的;
  3. 每棵树都尽最大程度的生长,并且没有剪枝过程。

随机森林包含两个随机:

  1. 一个是随机有放回的抽样训练集
  2. 一个是随机地从M个特征中选取m个特征子集

很有意义的一个随机森林,查询子特征贡献的包:

随机森林中每棵树,对应着随机选取的子特征。而每个特征的作用和贡献,在scikit - learn中没有体现。所以有这样一个包,pip install treeinterprete 将随机森林变成一个「白箱子」,这样每次预测就能被分解为各项特征的贡献和,即预测=偏差+特征 1 贡献+ ... +特征 n 贡献

参见网址:https://www.tuicool.com/articles/2MRbiuAhttps://github.com/andosa/treeinterpreter

猜你喜欢

转载自blog.csdn.net/weixin_41512727/article/details/81408932