随机森林(random forest)可以解决样本分布不均匀维度大且特征缺失的问题

随机森林的定义:上世纪八十年代Breiman等人发明分类树的算法(Breiman et al. 1984),通过反复二分数据进行分类或回归,计算量大大降低。2001年Breiman把分类树组合成随机森林(Breiman 2001a),即在变量(列)的使用和数据(行)的使用上进行随机化,生成很多分类树,再汇总分类树的结果。随机森林在运算量没有显著提高的前提下提高了预测精度。随机森林对多元公线性不敏感,结果对缺失数据和非平衡的数据比较稳健,可以很好地预测多达几千个解释变量的作用(Breiman 2001b),被誉为当前最好的算法之一(Iverson et al. 2008)。

随机森林的特点:

1.在做分类的适合,因为在选取训练数据和分类特征的过程中,它都是在随机的状态完成的,所有,随机森林不容易在机器学习的过程中过拟合,也使它具备很好的泛化能力。

2.在处理很多维度的特征时,由于是随机选取的特点,可以不需要做特征选择,对数据的适应能力很强,对连续和非连续数据都适用,数据不需要规范化。

3.训练速度快,容易做成并行处理的方式。

4.代码实现简单。

随机森林和决策树的区别:

随机森林和使用决策树作为基本分类器的(bagging)有些类似。以决策树为基本模型的bagging在每次bootstrap放回抽样之后,产生一棵决策树,抽多少次样本就生成多少棵树,在生成这些树的时候没有进行更多的干预。而随机森林也是进行bootstrap抽样,但它与bagging的区别是:在生成每棵树的时候,每个节点变量都仅仅在随机选出的少数变量中产生。因此,不但样本是随机的,连每个节点变量(Features)的产生都是随机的。许多研究表明, 组合分类器比单一分类器的分类效果好,随机森林(random forest)是一种利用多个分类树对数据进行判别与分类的方法,它在对数据进行分类的同时,还可以给出各个变量的重要性评分,评估各个变量在分类中所起的作用。

随机森林的原理:

随机森林由LeoBreiman(2001)提出,它通过自助法(bootstrap)重采样技术,从原始训练样本集N中有放回地重复随机抽取k个样本生成新的训练样本集合,然后根据自助样本集生成k个分类树组成随机森林,新数据的分类结果按分类树投票多少形成的分数而定。其实质是对决策树算法的一种改进,将多个决策树合并在一起,每棵树的建立依赖于一个独立抽取的样品,森林中的每棵树具有相同的分布,分类误差取决于每一棵树的分类能力和它们之间的相关性。特征选择采用随机的方法去分裂每一个节点,然后比较不同情况下产生的误差。能够检测到的内在估计误差、分类能力和相关性决定选择特征的数目。单棵树的分类能力可能很小,但在随机产生大量的决策树后,一个测试样品可以通过每一棵树的分类结果经统计后选择最可能的分类。

随机森林的算法:

决策树(decision tree)是一个树结构(可以是二叉树或非二叉树)。其每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的输出,而每个叶节点存放一个类别。使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果。

随机森林是用随机的方式建立一个森林,森林里面有很多的决策树组成,随机森林的每一棵决策树之间是没有关联的。在得到森林之后,当有一个新的输入样本进入的时候,就让森林中的每一棵决策树分别进行一下判断,看看这个样本应该属于哪一类,然后看看哪一类被选择最多,就预测这个样本为那一类。

在建立每一棵决策树的过程中,有两点需要注意采样与完全分裂。首先是两个随机采样的过程,random forest对输入的数据要进行行、列的采样。对于行采样,采用有放回的方式,也就是在采样得到的样本集合中,可能有重复的样本。假设输入样本为N个,那么采样的样本也为N个。这样使得在训练的时候,每一棵树的输入样本都不是全部的样本,使得相对不容易出现over-fitting。然后进行列采样,从M个feature中,选择m个(m << M)。之后就是对采样之后的数据使用完全分裂的方式建立出决策树,这样决策树的某一个叶子节点要么是无法继续分裂的,要么里面的所有样本的都是指向的同一个分类。一般很多的决策树算法都一个重要的步骤——剪枝,但是这里不这样干,由于之前的两个随机采样的过程保证了随机性,所以就算不剪枝,也不会出现over-fitting。

分裂特征点的选择:
1.信息增益
2.信息增益比
3.基尼指数

具体实现过程如下:

1.原始训练集为N,应用bootstrap法有放回地随机抽取k个新的自助样本集,并由此构建k棵分类树,每次未被抽到的样本组成了k个袋外数据;

2.设有mall个变量,则在每一棵树的每个节点处随机抽取mtry个变量(mtry n mall),然后在mtry中选择一个最具有分类能力的变量,变量分类的阈值通过检查每一个分类点确定;

3.每棵树最大限度地生长, 不做任何修剪;

4.将生成的多棵分类树组成随机森林,用随机森林分类器对新的数据进行判别与分类,分类结果按树分类器的投票多少而定。







  • 4
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
随机森林是一种集成学习算法,它由多个决策树组成。随机森林通过随机特征选择和样本选择的方式,构建多个决策树模型,并将它们集成为一个强分类器。 在随机森林算法中,首先从原始数据集中有放回地进行有放回抽样,形成多个训练子集。对于每个训练子集,随机森林使用CART(分类与回归树)算法建立一个决策树。建立决策树的过程中,采用随机特征选择,即在每次划分节点时,仅考虑子集的一部分特征。这种随机特征选择可以让每个决策树都对数据集有所差异,增加随机性,避免模型过拟合。 当所有决策树建立完成后,随机森林的分类器通过投票或者求平均值的方式来进行集成预测。对于分类问题,多数投票法是常用的集成方式。对于回归问题,可以将各个决策树的预测结果求平均值来得到最终结果。 随机森林具有以下优点:首先,它能够处理高维度的数据集,并且对缺失数据和异常数据具有较好的鲁棒性;其次,它能够自动进行特征选择,通过不同决策树之间的差异性,可以评估各个特征的重要性;此外,随机森林还可以进行并行计算,提高了训练速度。 总之,随机森林算法通过构建多个决策树进行集成学习,利用随机特征选择和样本选择的方式,能够处理高维度数据、高效地进行特征选择,并且对于分类和回归问题都有良好的性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值