ExtraTrees分类
# 1、作用
extra-trees (极其随机的森林)和随机森林非常类似,这里的“及其随机”表现在决策树的结点划分上,它干脆直接使用随机的特征和随机的阈值划分,这样我们每一棵决策树形状、差异就会更大、更随机。
# 2、输入输出描述
输入:自变量X为1个或1个以上的定类或定量变量,因变量Y为一个定类变量。
输出: 模型的分类结果和模型的分类评价情况。
# 3、案例示例
根据红酒的颜色强度,脯氨酸,类黄酮等变量,生成一个能够区分琴酒,雪莉,贝尔摩德三种品种的红酒的Extra-Trees。
# 4、案例数据

Extra-Trees分类案例数据
# 5、案例操作

Step1:新建分析;
Step2:上传数据;
Step3:选择对应数据打开后进行预览,确认无误后点击开始分析;
step4:选择【Extra-Trees分类】;
step5:查看对应的数据数据格式,按要求输入【Extra-Trees分类】数据;
step6:进行参数设置(“更多设置”里的参数在客户端可进行设定)
step6:点击【开始分析】,完成全部操作。
# 6、输出结果分析
输出结果1:模型参数 
图表说明: 上表展示了训练该模型的时候,输入的参数以及训练所耗的时间。
输出结果2:特征重要性

图表说明:上柱形图或表格展示了各特征(自变量)的重要性比例。(附:有时候可以利用特征重要性反推该变量在实际生活中的价值,因为该重要性往往决定分类结果。)
分析:Extra Trees模型中决定分类结果的重要因素是酒精量、脯氨酸和颜色强度。
输出结果3:混淆矩阵热力图

图表说明: 上表以热力图的形式展示了混淆矩阵,可以通过右上角切换在测试数据集和训练数据集中的情况。
分析:
上图是训练集的分类结果,全部样本分类正确,没有分错的样本,说明分类效果极好。
下图是测试集的分类结果,全部样本分类正确,没有分错的样本,说明分类效果极好,训练集训练出来的模型结果是有效实用的。
输出结果4:模型评估结果
图表说明: 上表中展示了训练集和测试集的分类评价指标,通过量化指标来衡量Extra Trees对训练、测试数据的分类效果。
● 准确率:预测正确样本占总样本的比例,准确率越大越好。
● 召回率:实际为正样本的结果中,预测为正样本的比例,召回率越大越好。
● 精确率:预测出来为正样本的结果中,实际为正样本的比例,精确率越大越好。
● F1:精确率和召回率的调和平均,精确率和召回率是互相影响的,虽然两者都高是一种期望的理想情况,然而实际中常常是精确率高、召回率就低,或者召回率低、但精确率高。若需要兼顾两者,那么就可以用F1指标。
●oob_score:对于分类问题,oob_score是袋外数据的准确率。若在建立树过程中选择有放回抽样时,大约1/3的记录没有被抽取。没有被抽取的自然形成一个对照数据集,可用于模型的验证。所以随机森林不需要另外预留部分数据做交叉验证,其本身的算法类似交叉验证,而且袋外误差是对预测误差的无偏估计。
分析:
训练集的各分类评价指标都等于1,说明模型在训练集的分类完全正确,没有分类错误的样本。
测试集的各分类评价指标都大于0.9,说明模型在测试集的分类效果极好,模型具有实用性。
输出结果5:测试数据预测评估结果
图表说明: 上表格为预览结果,只显示部分数据,全部数据请点击下载按钮导出。
上表展示了Extra Trees模型对测试数据的分类结果,第一列是预测结果,第二列是因变量真实值,第三、四、五列分别是对所属每一个分类水平概率的预测结果。
输出结果6:模型预测与应用(此功能只在客户端支持使用)
注:当无法进行预测功能时,可检查数据集中是否存在定类变量或者缺失值:
●当存在定类变量时,请在用于训练模型的数据集和用于预测的数据集中将变量编码,再进行操作。
(SPSSPRO:数据处理->数据编码->将定类变量编码为定量)
●当用于预测数据的数据集中存在缺失值时,请删去缺失值再进行操作。
情况1:在上面模型评估后,模型分类结果较好,具有实用性,这时我们将该模型进行应用。点击【模型预测】上传文件可以直接得到预测结果。

情况2:若是上传的数据包括因变量真实值,不仅仅可以得到预测结果,还可以得到当前数据分类混淆矩阵和分类评价效果。



# 7、注意事项
- 由于Extra Trees具有随机性,每次运算的结果不一样。若需要保存本次训练模型,需要使用SPSSPRO客户端进行。
- 随机森林的参数修改需要使用SPSSPRO客户端进行。
# 8、模型理论
极其随机的森林(Extra Trees)算法是由传统的决策树(Decision Trees)算法衍生而来。传统的决策树算法根据数据对象在不同特征上的值将其分配到不同的集合(Branches)中,应用该算法的关键在于选择最优的用于决策的数据特征及其拆分点。而Pierre等创造性地通过在传统决策树算法中加入如下步骤,在增加决策树的随机性的同时,还提高了对次优解的准确性和求解计算的灵活性,这种改良的效果在处理分类问题时尤为突出:
停止条件:
随机拆分:
最终拆分步骤:
其中,对于回归问题
=
, var{yS}为样本S中输出的y的方差,r和l分别表示结点在右边和左边的分叉。
# 9、手推步骤
现有一个微型数据集,根据天气状况决定是否进行户外跑步。

根据数据集可得特征包含:天气(晴天、阴天、下雨)、温度(冷、中、热)、湿度(高、正常)、有风(有、无);目标:跑步(是、否)
Extra Trees分类过程如下:
step1:设置参数
树的数量=3
每个节点随机选择的特征数=2
节点分裂的最小样本数=1
step2:构建第一棵树的根节点
随机选择两个特征,假设选择天气和湿度。
特征1:天气
可能取值:晴天、阴天、下雨
随机选择天气==下雨为划分条件
左节点:天气=下雨(D4,D5,D6,D10,D14,共5天);标签分布:是(3),否(2)
右节点:天气≠下雨(D1,D2,D3,D7,D8,D9,D11,D12,D13,共9天);标签分布:是(6),否(3)
基尼公式:
计算基尼系数:
左节点:
右节点:
加权:
特征2:湿度
可能取值:高、正常
随机选择湿度==高为划分条件
左节点:湿度=高(D1,D2,D3,D4,D8,D12,D14,共7条);标签分布:是(3),否(4)
右节点:湿度=正常(D5,D6,D7,D9,D10,D11,D13,共7条);标签分布:是(6),否(1)
计算基尼系数:
左节点:
右节点:
加权:
湿度划分的加权基尼系数更小,所以选择“湿度=高”作为根节点。
step3:根节点的左节点
左节点(湿度=高):
随机选 2 个特征:假设选到天气和有风。
特征1:天气
可能取值:晴天、阴天、下雨
随机选择天气==晴天为划分条件
左节点:天气=晴天(D1,D2,D8,共3天);标签分布:是(0),否(3)
右节点:天气≠晴天(D3,D4,D12,D14,共4天);标签分布:是(3),否(1)
计算基尼系数:
左节点:
右节点:
加权:
特征2:有风
可能取值:有、无
随机选择有风==有为划分条件
左节点:有风=有(D2,D12,D14,共3天);标签分布:是(1),否(2),
右节点:有风=无(D1,D3,D4,D8,共4天);标签分布:是(2),否(2),
加权:
天气划分的加权基尼系数更小,所以选择“天气=晴天”作为分裂节点。
左子节点(天气=晴天)已经是纯的(全否),不再分裂。
右子节点(天气≠晴天且湿度=高):4 条样本,是(3),否(1),还可以继续分裂。
随机选特征,假设选择温度和有风。
特征1:温度
可能取值:冷、中、热
随机选择温度==热为划分条件
左节点:温度=热(D3,共1天);标签分布:是(1),否(0),
右节点:温度≠热(D4,D12,D14,共3天);标签分布:是(2),否(1),
加权:
特征2:有风
可能取值:有、无
随机选择有风==有为划分条件
左节点:有风=有(D12,D14,共2天);标签分布:是(1),否(1),
右节点:有风=无(D3,D4,共2天);标签分布:是(2),否(0),
加权:
有风划分的加权基尼系数更小,所以选择“有风=有”作为分裂节点。
右子节点(有风=无)已经是纯的(全是),不再分裂。
左子结点继续分裂,由于只剩两个样本,根据数据集只能选择天气特征。
假设选择天气==阴天为划分条件。
左节点:天气=阴天(D12,共1个);标签分布:是(1),否(0)
右节点:天气≠阴天(D14,共1个);标签分布:是(0),否(1)
此时,左节点(湿度=高)分裂完成。
step4:根节点的右节点
与根节点的左节点步骤相同,分裂得到根节点的右节点。
step5:构建第2、3棵树
重复step2-step4,构建第2棵树和第3棵树。
step5:预测
对新样本,每棵树投票,多数决定最终类别。
新的样本:天气=晴天,温度=冷,湿度=高,有风=否
例如:
● 树1 预测:否
● 树2 预测:否
● 树3 预测:是
最终投票结果:是(1票) vs 否(2票)
Extra Trees的最终预测结果是:不跑步。
# 10、参考文献
[1]Scientific Platform Serving for Statistics Professional 2021. SPSSPRO. (Version 1.0.11)[Online Application Software]. Retrieved from https://www.spsspro.com.
[2]PIERRE G,DAMIEN E,LOUIS W. Extremely randomized trees[J].Machine Learning,2006,63(1):3-42.
[3]彭敦诚,王开团,孙学利,安江峰,吴军,张三平.基于Extra-Trees算法的大气环境因素对聚酯涂层老化失光影响的研究[J].材料保护,2020,53(04):84-88+92.DOI:10.16577/j.cnki.42-1215/tb.2020.04.014.
