随机森林算法梳理
---恢复内容开始---
随机森林算法梳理
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.应用场景
随机森林:数据维度相对低(几十维),同时对准确性有较高要求时。
某俱乐部人员分布,根据会员信息预测该会员的消费能力。