01 集成学习 - 概述、Bagging - 随机森林、袋外错误率
五、特征重要度
作为单个的决策树模型,在模型建立时实际上是寻找到某个特征合适的分割点。这个信息可以作为衡量所有特征重要性的一个指标。
基本思路如下:
如果一个特征被选为分割点的次数越多,那么这个特征的重要性就越强。这个理念可以被推广到集成算法中,只要将每棵树的特征重要性进行简单的平均即可。
分别根据特征1和特征4进行分割,显然x1出现的次数最多,这里不考虑先分割和后分割的情况,只考虑每次分割属性出现的次数。
计算得:
x1的特征重要度:出现在2棵树上,两棵树一共分裂了6次,x1出现了3次。
x1特征重要度 = 3/6 = 1/2
x2的特征重要度= 4/6 = 2/3
x3的特征重要度= 3/6 = 1/2
x4的特征重要度: 出现在1棵树上,一个树分裂了3次,x4出现了1次。
x4的特征重要度= 1/3
根据特征重要度进行特征选择。
六、随机森林RF推广算法
随机森林推广算法的作用不是在于做预测。
RF推广算法在实际应用中占有比较好的特性,应用比较广泛,主要应用在:分类、回归、特征转换、异常点检测等。常见的RF变种算法如下:Extra Tree、Totally Random Tree Embedding(TRTE)、Isolation Forest
1、Extra Tree
Extra Tree是随机森林(RF)的一个变种,原理基本和随机森林一样,区别如下:
1、RF会随机采样来作为子决策树的训练集,而Extra Tree每个子决策树采用原始数据集训练。
2、RF在选择划分特征点的时候会和传统决策树一样,会基于信息增益、信息增益率、基尼系数、均方差等原则来选择最优的特征值。Extra Tree则是随机选择一个特征值来划分决策树。
由于Extra Tree是随机选择特征点进行划分,所以最后得到的决策树规模会大于RF生成的决策树,Extra Tree决策树的方差会减少,泛化能力比RF更强。
2、Totally Random Tree Embedding(TRTE)
TRTE 是一种非监督的数据转化方式。将低维的数据集映射到高维,从而让高维的数据更好得用于分类回归模型。
TRTE的算法的转化过程类似于RF算法,建立T个决策树来拟合数据。当决策树构建完成之后,数据集里的每个数据在T个决策树中叶子节点的位置就固定下来了,将位置信息转换为向量即完成了算法的转换。
有3棵决策树,每棵树都有五个叶子节点: □-□-□-□-□
一个数据 x
划分落入树1的第三个子节点:□-□-■-□-□ => 00100
划分落入树2的第一个子节点:■-□-□-□-□ => 10000
划分落入树3的第五个子节点:□-□-□-□-■ => 00001
数据x的特征映射码:(0,0,1,0,0, 1,0,0,0,0, 0,0,0,0,1)
样本根据TRTE进行转化特征,最后可能得到更高维的数据,也可能得到更低维的数据,如词袋法中的特征有2000个,做完TRTE后只剩下几百个。
经过TRTE转化后的编码可以用于无监督的分类操作,将相似的特征码聚类到一起,最后完成分类的操作。
3、Isolation Forest (IForest)
IForest是一种异常点检测算法,使用类似RF的方式来检测异常点。
IForest和RF的区别在于:
1、在随机采样的过程中,一般只需要少量的数据。
2、在进行决策树的构建过程中,IForest会随机选择一个划分特征,并对划分特征随机选择一个划分阈值。
3、IForest的划分深度是比较小的,即max_depth较小。
区分原因:目的是异常点检测,所以只要能够区分出异常即可,不需要大量的数据;此外在异常点检测过程中,一般也不需要太大规模的决策树。
下面说说 IForest为什么可以做异常点判断。
对于异常点的判断:将测试样本x拟合到T棵决策树上,计算每棵树上该样本的叶子节点的深度ht(x),从而计算出平均深度h(x);然后就可以使用下列公式计算样本点x的异常概率值,p(x,m)的取值范围为[0,1],越接近1,说明异常点概率越大。
分析: 欧拉常数 ζ ≈ 0.57721566490153286060651209。当样本个数m确定的时候,c(m) 是一个定值。所以影响异常点出现的概率-p(x,m)的值,我们只考虑h(x)的取值即可。
h(x)即每棵树上,该样本的叶子节点深度的平均值。h(x)越大说明叶子节点的深度越深,公式右侧 - 2的指数就越小,则说明p(x,m)的值越趋向于0。
结论: 叶子节点的深度越深,异常点的概率越小。树平均深度越浅,说明异常值概率越大。
七、RF随机森林总结
RF的主要优点:
1、训练可以并行化,对于大规模样本的训练具有速度的优势。
2、由于进行随机选择决策树划分特征列表,这样在样本维度比较高的时候,仍然具有比较高的训练性能。
3、可以给出各个特征值的重要性列表。
4、由于存在随机抽样,训练出来的模型方差小,泛化能力强。
5、RF实现简单。
6、对于部分特征的丢失不敏感。
RF的缺点:
1、噪音过大的特征上,容易过拟合。
2、取值比较多的划分特征对RF的决策会产生更大的影响,从而有可能影响模型的效果。