博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
各维度 特征 重要程度 随机森林_随机森林算法梳理
阅读量:6469 次
发布时间:2019-06-23

本文共 3075 字,大约阅读时间需要 10 分钟。

1. 集成学习概念

2. 个体学习器概念

3. boosting bagging

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

5. 随机森林思想

6. 随机森林的推广

7. 优缺点

8. sklearn参数2

9.应用场景

1. 集成学习概念

集成学习的思想是将若干个学习器(分类器&回归器)组合之后产生新的学习器。集成学习算法的成功在于保证弱分类器(错误率略小于0.5,即勉强比瞎猜好一点)的多样性,且集成不稳定的算法也能得到一种比较明显的提升。

2. 个体学习器概念

个体学习器就是基学习器,一般都是像决策树一样的弱学习器,由此可能产生的问题主要有:一,精确度不高,二,容易过拟合, 三,模型不稳定

3. boosting bagging

Bagging算法思想

Bagging,这个名字就是从袋子里取的意思,本身便很形象的说明了这个算法的核心思想,即在原始数据集上通过有放回的抽样的方式,重新选择出S个新数据集来分别训练S个分类器,随后在预测的时候采用多数投票或者求均值的方式来判断预测结果。

Bagging适用弱学习器的范围

基本的弱学习器都能用,如Linear、Ridge、Lasso、 Logistic、Softmax、ID3、C4.5、CART、SVM、KNN。

Boosting算法思想

提升学习(Boosting),这个名字也很形象,在赛车游戏中氮气加速有时候界面就描述是boost,也就是越加越快,每次都比上一次更快,也就是说同Bagging是不一样的,Boosting是会根据其他的弱分类器的结果来更改数据集再喂给下一个弱分类器。准确的描述为,Boosting算法每一步产生弱预测模型(如决策树),并加权累加到总模型中。

它的意义在于如果一个问题存在弱预测模型,那么可以通过提升技术的办法得到一个强预测模型。

注1: 如果每一步的弱预测模型的生成都是依据损失函数的梯度方式的,那么就称为梯度提升(Gradient boosting)

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

平均法:简单平均、加权平均

适用范围:

规模大的集成,学习的权重较多,加权平均法易导致过拟合

个体学习器性能相差较大时宜使用加权平均法,相近用简单平均法。

投票法:

1.绝对多数投票法:某标记超过半数;

2.相对多数投票法:预测为得票最多的标记,若同时有多个标记的票最高,则从中随机选取一个。

3.加权投票法:提供了预测结果,与加权平均法类似。

学习法

Stacking描述:先从初始数据集中训练出初级学习器,然后“生成”一个新数据集用于训练次级学习器。在新数据集中,初级学习器的输出被当做样例输入特征,初始样本的标记仍被当做样例标记。

5. 随机森林思想

随机森林的思路很简单如下:

从样本集中用Bootstrap采样选出n个样本;

从所有属性中随机选择K个属性,选择出最佳分割属性作为节点创建决策树

重复以上两步m次,即建立m棵决策树

这m个决策树形成随机森林,通过投票表决结果决定数据属于那一类

6.随机森林的推广

由于RF在实际应用中的良好特性,基于RF,有很多变种算法,应用也很广泛,不光可以用于分类回归,还可以用于特征转换,异常点检测等。下面对于这些RF家族的算法中有代表性的做一个总结。

6.1 extra trees

extra trees是RF的一个变种, 原理几乎和RF一模一样,仅有区别有:

1)对于每个决策树的训练集,RF采用的是随机采样bootstrap来选择采样集作为每个决策树的训练集,而extra trees一般不采用随机采样,即每个决策树采用原始训练集。
2)在选定了划分特征后,RF的决策树会基于信息增益,基尼系数,均方差之类的原则,选择一个最优的特征值划分点,这和传统的决策树相同。但是extra trees比较的激进,他会随机的选择一个特征值来划分决策树。
从第二点可以看出,由于随机选择了特征值的划分点位,而不是最优点位,这样会导致生成的决策树的规模一般会大于RF所生成的决策树。也就是说,模型的方差相对于RF进一步减少,但是偏倚相对于RF进一步增大。在某些时候,extra trees的泛化能力比RF更好。

6.2 Totally Random Trees Embedding

Totally Random Trees Embedding(以下简称 TRTE)是一种非监督学习的数据转化方法。它将低维的数据集映射到高维,从而让映射到高维的数据更好的运用于分类回归模型。我们知道,在支持向量机中运用了核方法来将低维的数据集映射到高维,此处TRTE提供了另外一种方法。

TRTE在数据转化的过程也使用了类似于RF的方法,建立T个决策树来拟合数据。当决策树建立完毕以后,数据集里的每个数据在T个决策树中叶子节点的位置也定下来了。比如我们有3颗决策树,每个决策树有5个叶子节点,某个数据特征xx划分到第一个决策树的第2个叶子节点,第二个决策树的第3个叶子节点,第三个决策树的第5个叶子节点。则x映射后的特征编码为(0,1,0,0,0, 0,0,1,0,0, 0,0,0,0,1), 有15维的高维特征。这里特征维度之间加上空格是为了强调三颗决策树各自的子编码。
映射到高维特征后,可以继续使用监督学习的各种分类回归算法了。

6.3 Isolation Forest

这个算法是用来异常点检测的,正如isolation这个名字,是找出非正常的点,而这些非正常的点显然是特征比较明确的,故不需要太多的数据,也不需要太大规模的决策树。

它和RF算法有以下几个差别:

在随机采样的过程中,一般只需要少量数据即可。

在进行决策树构建过程中,IForest算法会随机选择一个划分特征,并对划分特征随机选择一个划分阈值。

IForest算法构建的决策树一般深度max_depth是比较小的。

7.优缺点

RF的主要优点:

训练可以并行化,对于大规模样本的训练具有速度的优势。

由于进行随机选择决策树划分特征列表,这样在样本维度比较高的时候,仍然具有比较高的训练性能。

可以给出各个特征的重要性列表。

由于存在随机抽样,训练出来的模型方差小,泛化能力强。

RF实现简单。

对于部分特征的缺失不敏感。

RF的主要缺点:

在某些噪音比较大的特征上,RF模型容易陷入过拟合。

取值比较多的划分特征对RF的决策会产生更大的影响,从而有可能影响模型的效果。

随机森林在解决回归问题时并没有像它在分类中表现的那么好,这是因为它并不能给出一个连续型的输出。当进行回归时,随机森林不能够作出超越训练集数据范围的预测,这可能导致在对某些还有特定噪声的数据进行建模时出现过度拟合。

对于许多统计建模者来说,随机森林给人的感觉像是一个黑盒子——你几乎无法控制模型内部的运行,只能在不同的参数和随机种子之间进行尝试。

8.sklearn参数

请参考下文:

http://www.cnblogs.com/jasonfreak/p/5720137.html

9.应用场景

RF算法在实际应用中具有比较好的特性,应用也比较广泛,主要应用在分类、 回归、特征转换、特征重要度挑选、异常点检测等。

随机森林在现实分析中被大量使用,它相对于决策树,在准确性上有了很大的提升,同时一定程度上改善了决策树容易被攻击的特点。

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

因为不需要很多参数调整就可以达到不错的效果,基本上不知道用什么方法的时候都可以先试一下随机森林。

你可能感兴趣的文章
幸福框架:可扩展的、动态的、万能的 编号生成器
查看>>
黄聪:PHP 防护XSS,SQL,代码执行,文件包含等多种高危漏洞
查看>>
svn status 显示 ~xx
查看>>
常用HiveQL总结
查看>>
[转]使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(三)-- Logger
查看>>
POJ 3311 Hie with the Pie(状压DP + Floyd)
查看>>
HDU 1402 A * B Problem Plus FFT
查看>>
[CareerCup] 17.3 Factorial Trailing Zeros 求阶乘末尾零的个数
查看>>
Security updates and resources
查看>>
深入理解JavaScript系列(25):设计模式之单例模式
查看>>
DNS为什么通常都会设置为14.114.114.114
查看>>
给定一个序列,判断该序列是否为二叉树查找树的后序遍历序列
查看>>
Sqoop架构(四)
查看>>
golang copy函数
查看>>
《你有多少问题要请示》精华集粹
查看>>
深度 | 机器学习敲门砖:任何人都能看懂的TensorFlow介绍【转】
查看>>
leveldb学习:DBimpl
查看>>
MySQL存储引擎--MYSIAM和INNODB引擎区别
查看>>
[Recompose] Stream Props to React Children with RxJS
查看>>
打印图片
查看>>