随机森林算法梳理

个体学习器概念

  • 通常由一个现有的学习算法从训练数据中产生,例如C4.5决策算法、BP神经网络算法等,此时集成中只包含同种类型的个体学习器,例如“决策树集成”中全是决策树,“神经网络集成”中全是神经网络,这样的集成是“同质”的。同质集成中的个体学习器亦称为“基学习器”。相应的学习算法称为“基学习算法”。集成也可包含不同类型的个体学习器,例如,同时包含决策树和神经网络,这样的集成称为“异质”的。异质集成中的个体学习器由不同的学习算法生成,这时就不再有基学习算法,常称为“组件学习器”或直接称为个体学习器。

集成学习概念

  • 通过将多个单个学习器集成/组合在一起,使它们共同完成学习任务,有时也被称为“多分类器系统(multi-classifier system)”、”基于委员会的学习(Committee-based learning)“。先产生一组“个体学习器”(individual learner),再用某种策略将它们结合起来。

  • 同质集成(homogeneous):集成中只包含同种类型的个体学习器,同质集成中的个体学习器亦称"基学习器" (base learner), 相应的学习算法称为"基学习算法" (base learning algorithm).(即每个个体学习器存在依赖的关系,必须串行生成的序列化方法)。主要代表有:boosting。

  • 异质集成(heterogenous):集成也可包含不同类型的个体学习器(个体学习器之间不存在强依赖关系、可同时生成的并行化方法),这样集成是”异质“的(heterogeneous)。相应的个体学习器,常称为”组件学习器“(component learning)或直接称为个体学习器。主要代表有:bagging和随机森林(Random Forest)。

  • 分类(根据个体学习器的生成方式)

    • 序列化方法
      个体学习器问存在强依赖关系、必须串行生成。代表:Boosting
    • 并行化方法
      个体学习器间不存在强依赖关系、可同时生成。代表:随机森林,Bagging

Boosting

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

Bagging

  • Bagging是并行式集成学习方法最著名的代表。给定包含m个样本的数据集,先随机取出一个样本放入采样集中,再把该样本放回初始数据集,使得下次采样时,该样本仍有可能被选中,这样经过m次随机采样操作,我们得到含m个样本的采样集,初始训练集中有的样本在采样集中多次出现,有的则从未出现,初始训练集中约有63.2%的样本出现在采样集中。

随机森林

  • 随机森林(Random Forest,简称RF)是Bagging的一个扩展变体,随机森林是2001年由Leo Breiman将Bagging集成学习理论与随机子空间方法相结合,提出的一种机器学习算法。 随机森林是以决策树为基分类器的一个集成学习模型,它包含多个由Bagging集成学习技术训练得到的决策树, 当输入待分类的样本时, 最终的分类结果由单个决策树的输出结果投票决定。其在以决策树作为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入了随机属性选择。具体来说,传统决策树在选择划分属性时是在当前结点的属性集合(假定有d个属性)中选择一个最有属性;而在RF中,对基决策树的每个结点,先从该结点的属性集合中随机选择一个包含k个属性的子集,然后再从这个子集中选择一个最优属性用于划分。这里的参数k控制了随机性的引入程度:若令k=d,则基决策树的构建与传统决策树相同;若令k=1,则是随机选择一个属性用于划分;一般情况下,推荐值k=log2dlog2d。

结合策略

  • 学习器结合可能会从三个方面带来好处,首先,从统计的方面来看,由于学习任务的假设空间往往很大,可能有多个假设在训练集上达到同样性能,此时若使用但学习器可能因误选而导致泛化性能不佳,结合多个学习器则会减小这一风险。第二,从计算的方面来看,学习算法往往会陷入局部极小,有的局部极小点所对应的泛化性能可能很糟,而通过多次运行之后结合,可降低陷入糟糕局部极小点的风险。第三,从表示的方面看,某些学习任务的真实假设可能不在当前学习算法所考虑的假设空间中,此时,若使用单学习器肯定无效,而通过结合多个学习器,由于相应的假设空间有所扩大,有可能学得更好的近似。假如集成中包含T个基学习器 h 1 , h 2 , . . . , h T h1,h2,...,hT h1,h2,...,hT​,其中 h i ​ hi​ hi在示例x上的输出为 h i ( x ) hi(x) hi(x)。那么对 h i hi hi​进行结合的常见策略有以下几种:
    • 简单平均法( averaging):事实上,加权平均法可认为是集成学习研究的基本出发点,对给定的基学习器,不同的集成学习方法可视为通过不同的方式来确定加权平均法中的基学习器权重。加权平均法的权重一般是从训练数据中学习而得到,现实任务中的训练样本通常不充分或存在噪声,这将使得学出的权重不完全可靠。对于规模较大的集成来说,要学习的权重比较大,容易导致过拟合。一般而言,在个体学习器性能相差较大时宜使用加权平均法,而在个体学习器性能相近时,宜使用简单平均法。
    • 投票法:对分类任务来说,学习器将从类别标记中预测出一个标记,最常见的结合策略是使用投票法。绝对多数投票法(若某标记得票超过半数,则预测为该标记,否则拒绝预测)、相对多数投票法(预测为得票最多的标记)、加权投票法。
    • 学习法。当训练数据很多时,一种更为强大的结合策略是使用学习法,即通过另一个学习器来进行结合。Stacking是学习法的典型代表。个体学习器被称为初级学习器,用于集合的学习器称为刺激学习器或元学习器。

优点

  • 具有极高的准确率
  • 随机性的引入,使得随机森林不容易过拟合
  • 随机性的引入,使得随机森林有很好的抗噪声能力
  • 既能处理离散型数据,也能处理连续型数据,数据集无需规范化

缺点

  • 当随机森林中的决策树个数很多时,训练时需要的空间和时间会较大
  • 随机森林模型还有许多不好解释的地方,有点算个黑盒模型

sklearn 参数

  • criterion:特征选择的标准,有信息增益和基尼系数两种,使用信息增益的是ID3和C4.5算法(使用信息增益比),使用基尼系数的CART算法,默认是gini系数。
  • splitter:特征切分点选择标准,决策树是递归地选择最优切分点,spliter是用来指明在哪个集合上来递归,有“best”和“random”两种参数可以选择,best表示在所有特征上递归,适用于数据集较小的时候,random表示随机选择一部分特征进行递归,适用于数据集较大的时候。
  • max_depth:决策树最大深度,决策树模型先对所有数据集进行切分,再在子数据集上继续循环这个切分过程,max_depth可以理解成用来限制这个循环次数。
  • min_samples_split:子数据集再切分需要的最小样本量,默认是2,如果子数据样本量小于2时,则不再进行下一步切分。如果数据量较小,使用默认值就可,如果数据量较大,为降低计算量,应该把这个值增大,即限制子数据集的切分次数。
  • min_samples_leaf:叶节点(子数据集)最小样本数,如果子数据集中的样本数小于这个值,那么该叶节点和其兄弟节点都会被剪枝(去掉),该值默认为1。
  • min_weight_fraction_leaf:在叶节点处的所有输入样本权重总和的最小加权分数,如果不输入则表示所有的叶节点的权重是一致的。
  • max_features:特征切分时考虑的最大特征数量,默认是对所有特征进行切分,也可以传入int类型的值,表示具体的特征个数;也可以是浮点数,则表示特征个数的百分比;还可以是sqrt,表示总特征数的平方根;也可以是log2,表示总特征数的log个特征。
  • random_state:随机种子的设置,与LR中参数一致。
  • max_leaf_nodes:最大叶节点个数,即数据集切分成子数据集的最大个数。
  • min_impurity_decrease:切分点不纯度最小减少程度,如果某个结点的不纯度减少小于这个值,那么该切分点就会被移除。
  • min_impurity_split:切分点最小不纯度,用来限制数据集的继续切分(决策树的生成),如果某个节点的不纯度(可以理解为分类错误率)小于这个阈值,那么该点的数据将不再进行切分。
  • class_weight:权重设置,主要是用于处理不平衡样本,与LR模型中的参数一致,可以自定义类别权重,也可以直接使用balanced参数值进行不平衡样本处理。
  • presort:是否进行预排序,默认是False,所谓预排序就是提前对特征进行排序,我们知道,决策树分割数据集的依据是,优先按照信息增益/基尼系数大的特征来进行分割的,涉及的大小就需要比较,如果不进行预排序,则会在每次分割的时候需要重新把所有特征进行计算比较一次,如果进行了预排序以后,则每次分割的时候,只需要拿排名靠前的特征就可以了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值