随机森林算法梳理

集成学习概念

经过构建并结合多个学习器来完成任务,常能够得到比单一学习器更加优越的泛化性能。即便每一个简单的模型能力很弱,预测精度很是低,但组合起来以后,精度获得了显著的提高,能够和其余类型的强模型相媲美。html

集成学习示意图
上图是集成学习的通常结构: 先产生一组 个体学习器(概念见下节),再用某种策略将其结合起来。

个体学习器概念

个体学习器一般由现有的一个算法从训练中产生。此时集成中之包含同种类型的个体学习器,如决策树集成中的个体学习器所有是决策树,神经网络模型中的个体学习器所有是神经网络,这种集成是同质(homogenous)的,同质集成中的个体学习器也称做基学习器。 对应的,有异质集成,若集成中包含不一样类型的个体学习器,如同时包含决策树集成神经网络集成,这时的个体学习器通常称做组件学习器,而不是基学习器,或者,直接称之为个体学习器。node

boosting bagging

根据个体学习器的生成方式不一样,目前的集成学习方法大体分为两类:算法

  • 个体学习器之间存在强依赖关系,必须串行生成的序列化方法,表明:Boosting系列算法,Adaboost,GBDT,XGBoost
  • 个体学习器之间不存在强依赖关系,可同时生成的并行化方法,表明:Bagging 和 随机森林

Boosting

工做机制:先从初始训练机训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器作错的训练样本在后续受到更多的关注,而后基于调整后的样本分布来训练下一个基学习器。bootstrap

Bagging

Bagging 是并行式集成学习方法表明之一,其算法原理大体以下:网络

  • 数据处理:将数据根据实际状况进行清洗整理
  • 随机采样:重复T次,每一次从样本中随机选出T个字样本
  • 个体训练:将每个子样本放入个体学习器训练
  • 分类决策:用投票法集成进行分类决策

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

平均法

平均法

投票法

学习法

当训练数据不少时,一种更为强大的结合策略是使用 “学习法”,即经过另外一个学习器来进行结合。 Stacking 是学习法的典型表明。这里咱们把个体学习器称为初级学习器,用于结合的学习器称为次级学习器或元学习器 (meta-learner)。 Stacking 先从初始数据集训练出初级学习器,而后 “生成” 一个新数据集用于训练次级学习器。在这个新数据集中,初级学习器的输出被当作样例输入特征,而初始样本的标记仍被看成样例标记。dom

随机森林思想

随机森林是Bagging的表明算法,其原理与Bagging十分类似,在此基础上作了一些改进:机器学习

  1. 对于普通的决策树,会在N个样本的全部特征中选择一个最优划分特征,可是随机森林首先会从全部特征中随机选择部分特征,再从该部分特征中选择一个最优划分特征。这样进一步加强了模型的泛化能力。
  2. 在决定部分特征个数时,经过交叉验证的方式来获取一个合适的值。

随机森林算法流程:性能

  1. 从样本集中有放回随机采样选出n个样本
  2. 从全部特征值中随机选择k个特征,对选出的样本利用这些特征创建决策树
  3. 重复以上两步m次,即生成m棵决策树,造成随机森林
  4. 对于新数据,通过每棵树决策,最后投票确认分到哪一类。

随机森林的推广

基于RF,有不少算法变种,应用很普遍,不止用于分类,还能够用于特征转换,异常点检测等。 一、 extra trees 原理与RF几乎相同,具体的区别有:学习

  • 对于每个决策树的训练集,RF采用随机抽样,而ET采用原始数据集
  • 选定划分特征后,RF会基于gini或者信息熵等选择一个最优特征值划分点,与传统决策树相同。但ET会随机选择一个特征值来划分决策树。 因为随机选择了特征值的划分点位,而不是最优势位,这样会致使生成的决策树的规模通常会大于 RF 所生成的决策树。也就是说,模型的方差相对于 RF 进一步减小,可是偏倚相对于 RF 进一步增大。在某些时候,ET的泛化能力比 RF 更好。 二、Totally Random Trees Embedding (如下简称 TRTE)  TRTE 是一种非监督学习的数据转化方法。它将低维的数据集映射到高维,从而让映射到高维的数据更好的运用于分类回归模型。咱们知道,在支持向量机中运用了核方法来将低维的数据集映射到高维,此处 TRTE 提供了另一种方法。 三、 Isolation Forest(如下简称 IForest) 是一种异常点检测的方法。它也使用了相似于 RF 的方法来检测异常点

优缺点

优势

  1. 训练能够高度并行化
  2. 因为能够随机选择决策树节点划分特征,这样在样本特征维度很高的时候,仍然能高效的训练模型。
  3. 采用了随机采样,每次都模型都会使用不一样的特征集,必定程度上避免过拟合。训练出的模型的方差小,泛化能力强。

缺点

  1. 在某些噪音比较大的样本集上,RF 模型容易陷入过拟合。
  2. 取值划分比较多的特征容易对 RF 的决策产生更大的影响,从而影响拟合的模型的效果。

sklearn参数2

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)_.net

其中,参数2criterion表示特征划分方法选择,默认为gini,可选择为entropy(信息增益) 两者用于表示信息的纯度,区别是计算方法的不一样。

应用场景

  • 在银行领域,随机森林算法可用于发现忠诚客户,也就是说客户常常从银行借贷而且按时还款,一样也能用于发现欺诈客户,即那些没有按时还款且行为异常的人。
  • 在医疗领域,随机森林算法可以用于识别医药中的不一样成分是否以正确的方式组合在之前,也可经过分析患者的病历识别疾病。
  • 在股市方面,随机森林算法能够用于识别股票的波动行为,预估损失或收益。
  • 在电子商务方面,随机森林算法可用于根据顾客的购物经历,预测他们是否喜欢系统推荐的商品。

参考

机器学习总结(lecture 15)算法:随机森林 Random Forest(RF)

Bagging 与随机森林算法原理小结

使用 sklearn 进行集成学习——理论

机器学习 - 浅谈随机森林的几个 tricks-20170917

相关文章
相关标签/搜索