随机森林算法梳理

---恢复内容开始---

随机森林算法梳理

 

1. 集成学习概念


 

通过构建并结合多个学习器来完成学习任务,有时也被称为多分类器系统、基于委员会的学习等

 

2. 个体学习器概念


 

通常由一个现有的算法从训练数据产生的基学习器。

 

3. boosting bagging


 boosting: 是一族可将弱学习器提升为强学习器的算法。这族算法的工作机制类似:先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练对训练样本分步进行调整,使得先前基学习器做错的训练样本在后续受到更多的关注,然后基于调整后的样本分布来训练下一个基学习器;如此重复进行,直到 基学习器数目达到事先指定的值T,最终将这T个基学习器进行加权结合。

bagging:是并行式学习方法最著名的代表。给定包含m个样本的数据集,我们先随机取出一个样本放入采样集中,再把该样本放回初始数据集,使得下次采样时该样本时该样本仍有可能被选中,选出T个含有m个训练样本的采样集,然后基于每个采样集训练出一个基学习器,再将这些基学习器进行结合。

 

4. 结合策略(平均法,投票法,学习法)


 平均法:对各个基学习器的数值输出进行平均(简单平均法,加权平均法)

投票法:每一基学习器输出一个标记,根据标记的出现次数来决定最终标记(绝对多数投票法、相对多数投票法、加权投票法)。

学习法:通过另一个学习器来学习如何结合。

 

5. 随机森林思想


 随机森林在以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入随机属性选择。

 

6. 随机森林的推广


extra trees、

Totally Random Trees Embedding、

Isolation Forest

 

7. 优缺点


随机森林 

优点:简单、容易实现、计算开销小

缺点:基学习器的多样性不仅来自样本扰动、还有属性扰动

 

8. sklearn参数


随机森林 

class sklearn.ensemble.RandomForestClassifier(n_estimators=’warn’, criterion=’gini’, max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=’auto’, max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, bootstrap=True, oob_score=False, n_jobs=None, random_state=None, verbose=0, warm_start=False, class_weight=None)

n_estimators:随机森林树的数量

criterion:衡量生成的随机森林质量的参数

max_depth:随机森林树的最大深度

min_samples_split:树分裂的最小个数

min_samples_leaf :某一叶节点上样本的最小数量

min_weight_fraction_leaf:叶结点的最小加权分数

max_features:在生成最佳森林时最大特征数

max_leaf_nodes:最大叶结点

min_impurity_decrease:如果某一节点分裂后,随机森林减少的熵大于此值则增加该分支

bootstrap:在生成树随机森林时,是否采用bootstrap样本 

oob_score:是否使用out-of-bag样本测试泛化性

n_jobs:是否使用多线程

random_state :随机种子

verbose:在优化和预测时控制模型详细程度

warm_start:是否重新生成随机森林

class_weight:每一等级的权重

 

2 9.应用场景


 随机森林:数据维度相对低(几十维),同时对准确性有较高要求时。

 某俱乐部人员分布,根据会员信息预测该会员的消费能力。

posted @ 2019-02-28 22:18  burton_shi  阅读(1736)  评论(0编辑  收藏  举报