随机森林算法梳理
【1】随机森林算法梳理
文章目录
1集成学习概念
构建并结合多个学习器来完成学习任务,有时也被称为多分类器系统(multi-classifier system)、基于委员会的学习(cjommottee-based learning)
- 同质集成:只包含同种类型的个体学习器(基学习器)
- 异质集成:个体学习器由不同的学习算法生成(组件学习器)
根据个体学习器的生成方式分为:
- 个体学习器间存在强依赖关系、必须串行生成的序列方法。如:Boosting
- 个体学习器间不存在强依赖关系、可同时生成的并行化方法。如:Bagging 和随机森林(Rasdom Forest)
2个体学习概念
通常由一个现有的学习算法从训练数据产生如:C4.5决策树算法、BP神经网络
3 boosting &bagging
- Boosting(串行式学习):一簇可将弱学习器提升为强学习器的算法
先从初始训练集训练一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续受到更多关注,然后基于调整后的样本分布来训练下一个基学习器
- bagging(并行式学习):
-
基本流程:采用的自动采样法,给定包含m个样本的数据集,有放回抽取,经过m次随机采样操作,得到含m个样本的采样集,这样可以采样出T个含有m个训练样本的采样集,然后基于每个基于每个采样集训练出一个基学习器,再将这些基学习器进行结合:
- 分类任务使用简单投票法
- 回归任务使用简单平均法
-
优点:
- (由于采用了自采样过程)每个基学习器只使用了初始训练集中约63.2%的样本,剩下约36.8%的样本可用作验证集对泛化性能进行“包外估计”
4 结合策略
-
学习器结合可能会从三个方面带来好处:
-
统计方面:由于学习任务的假设空间往往很大,可能有多个假设在训练集上达到同等性能,此时若单个学习器可能因为误选而导致泛化性能不佳,结合多个学习器则会减少风险
-
计算方面:降低糟糕陷入局部最小点的风险
-
表示方面:结合多个学习器,假设空间有所扩大,有可能学得更好的近似
-
-
结合方法:
-
平均法(数值型输出):
-
简单平均:
-
加权平均:
其中是个体学习器的权重,通常要求,加权平均算法也存在一定的缺陷,因为加权平均法的权重一般是从训练数据中学习而得,现实任务中的训练样本通常不充分或存在噪声,这将使得学出的权重不完全可靠。尤其当集成规模较大时,要学习的权重较多,就容易导致过拟合
-
一般而言,在个体学习器性能相差较大时宜使用加权平均法,而在个体学习器性能相近时宜使用简单平均法
-
-
投票法(分类任务)
-
绝大多数投票法
即如某标记得票过半数,则预测为该标记,否则拒绝预测
-
相对多少投票法
即预测为得票最多的标记,若同时有多个标记获得最高票,则从中随机选择一个
-
加权投票法
-
-
学习法
当训练数据很多时,一种更为强大的结合策略是使用“学习法”,即通过另一个学习器来进行结合。Stacking是学习法的典型代表。我们将个体学习器称为初级学习器,结合学习器称为次级学习器
-
5随机森林思想
-
在以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入了随机属性选择
- 传统决策树在选择划分属性时是在当前节点的属性集合(假设有d个属性)中选择一个最优属性
- 在RF中,从该点属性集合中随机选择一个包含k个属性的子集(若k=d,则基决策树的构建与传统决策树相同)——推荐
6 随机森林推广
-
extra trees(Extremely Randomized Trees)
初始训练集 属性选择 RF 自助采样法随机选择 基于信息增益、信息增益率、基尼系数等 Extra Tree 原始数据 随机选择一个特征 由于Extra Tree是随机选择特征点进行划分,所以最后得到的决策树规模会大于RF生成的决策树,Extra Tree决策树的方差会减少,泛化能力比RF强
-
TRTE(Totally Random Trees Embedding)
-
Isolation Forest(IForest)
IForest(孤立森林)是一种异常点检测算法,使用类似RF的方式来检测异常点,IForest算法与RF算法的区别在于:
- 在随机采样的过程中,一般只需要取得少量的数据即可;
- 在进行决策树构建过程中,IForest算法会随机选择一个划分特征,并对划分特征随机选择一个划分阈值;
- IForest算法构建的决策树一般深度是比较小的。
区别原因:目的是异常检测,所以只要能够区分异常的数据即可,不需要大量的数据;在异常点的检测过程中,一般不需要构建太大规模的决策树(在前几个分支就可以判断出异常点)
7 优缺点
-
优点
- 训练可以并行化,计算开销小,能够高效地对大数据集进行训练;
- 实现简单、准确率高;
- 能够评估各个特征在分类问题上的重要性;
- 能够处理高维特征的输入样本,且不需要降维操作;
- 对部分特征的缺失不敏感;
- 能够取到内部生成误差的一种无偏估计,不需要交叉验证或者用一个独立的测试集获得误差的无偏估计;
- 由于存在随机抽样,训练出来的模型方差小,泛化能力强。
-
缺点:
- 某些噪音比较大的特征上,RF模型容易陷入过拟合;
- 取值比较多的特征对RF的决策会产生更大的影响,有可能影响模型的效果;
- 随机森林解释性不强,有点像黑盒模型。
8 sklearn参数
class sklearn.ensemble.RandomForestClassifier
(
n_estimators=10,
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=1,
random_state=None,
verbose=0,
warm_start=False,
class_weight=None
)