楼主: spssau
1203 0

机器学习 | 极端随机树原理及案例实操分析 [推广有奖]

  • 0关注
  • 38粉丝

教授

40%

还不是VIP/贵宾

-

威望
0
论坛币
170 个
通用积分
1039.1159
学术水平
20 点
热心指数
22 点
信用等级
20 点
经验
17372 点
帖子
588
精华
0
在线时间
660 小时
注册时间
2018-1-15
最后登录
2025-12-17

楼主
spssau 发表于 2024-8-1 16:32:49 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

Extra Trees(Extremely Randomized Trees)算法是一种集成学习方法,通过构建多棵极度随机化的决策树来提高模型的泛化能力和稳定性。主要步骤如下:

  • 第一:样本选择,从训练数据中随机选择样本;

  • 第二:特征选择,在每个节点,随机选择一部分特征;

  • 第三:分裂点选择,对每个选定的特征,随机选择一个分裂点;

  • 第四:节点分裂,使用随机选择的特征和分裂点来分裂节点,创建子节点;

  • 第五:树构建,重复上述步骤,直到达到预定的停止条件(如最大树深或最小节点样本数);

  • 第六:集成结果,对所有树的预测结果进行集成(分类问题使用投票,回归问题取平均值)。

  • 这种随机性使得Extra Trees算法在处理高维数据和防止过拟合方面具有优势。



极端随机树模型案例
  • 1、背景

    当前有一项关于‘信用卡交易欺诈’的数据科学研究,已整理好数据共为1000条,其包括六项,分别是换设备次数,支付失败次数,换IP次数,换IP国家次数,交易金额和欺诈标签,欺诈标签时,数字1表示欺诈,数字0表示没有欺诈行为,现希望通过极端随机树进行模型构建,并且做一些预测工作,部分数据如下图所示:



  • 2、理论

    在进行极端随机树模型时,其涉及参数如下表所述:

    参数

    说明

    参数值设置

    节点分裂标准

    用于在构建决策树时产生分枝的依赖标准。

    分类任务时:
    gini: 衡量节点的不纯度,gini值越小,节点越纯,默认分裂标准项。
    entrop: 基于信息增益,Entropy 越小,节点越纯。
    回归任务时:
    squared_error: 均方误差(MSE),即目标值与预测值之间的平方误差的均值。
    absolute_error: 绝对误差(MAE),即目标值与预测值之间的绝对误差的均值。
    poisson: 泊松误差,基于泊松分布的误差标准,适用于计数数据的回归问题。

    最大特征数目限制

    极端随机树在构建每棵决策树时,能使用的最大特征数目。

    auto:系统自动判断(默认值);
    sqrt:特征总数的开平方;
    log2:特征总数取2为底的对数。

    节点分裂最小样本数

    限定一个节点必须包含至少多少个训练样本,否则就不允许分枝。

    默认是2。

    叶节点最小样本数

    限定一个叶子节点中包含的最小样本数目。

    默认是1。

    树最大深度

    限制决策树的最大深度,用于控制树的规模。

    默认为-1表示不限制。

    决策树数量

    极端随机树采用多棵决策树进行投票来判断所属类别,适当增加决策树的数量可提高准确定和稳定性。

    默认是100。

    是否有放回采样

    抽样选取用于构造每棵决策树的样本时,是否有放回。

    默认为有放回采样。

    袋外数据测试

    对于有放回采样,总会有一部分数据抽不到,称为袋外数据。可以测试模型在这部分数据上的准确性。

    默认为僀数据测试。

    任务类型

    包括自动判断,分类和回归任务。

    系统会结合Y的不同数字个数自动判断分类或回归任务,当然可自行选择分类或回归任务。


    除此之外,与其它的机器学习算法类似,SPSSAU提供训练集比例参数(默认是训练集占0.8,测试集占0.2),数据归一化参数(默认不进行),以及保存预测值(极端随机树时会生成预测类别,但不会生成预测概率),保存训练测试标识(生成一个标题来标识训练集和测试集数据的标识)。


  • 3、操作

    本例子操作截图如下:


    将欺诈标签放入Y框中,其余5个特征项作为自变量X。与此同时,训练集比例默认为0.8,暂不进行数据归一化,当然当前数据也可考虑做标准化处理,因为涉及数据的量纲不同。更多参数设置暂保持为默认值。


  • 4、SPSSAU输出结果

    SPSSAU共输出5项结果,依次为基本信息汇总,特征权重值,训练集或测试集模型评估结果,测试集结果混淆矩阵,模型汇总表和模型代码,如下说明:

    说明

    基本信息汇总

    因变量Y(标签项)的数据分布情况等。

    特征权重值

    展示各个X(特征)对于模型的贡献力度。

    训练集或测试集模型评估结果

    分析训练集和测试集数据的模型效果评估,非常重要。

    测试集结果混淆矩阵

    测试集数据的进一步效果评估,非常重要。分类任务时提供,如果是回归任务则没有该矩阵。

    模型汇总表

    模型参数及评估汇总表格。

    模型代码

    模型构建的核心python代码。


    上述表格中,基本信息汇总展示出因变量Y(标签项)的分类分布情况,模型评估结果(包括训练集或测试集)用于模型的拟合效果判断,尤其是测试集的拟合效果,以及提供测试集数据的混淆矩阵结果(如果是分类任务则提供,如果是回归任务则无该表格);模型汇总表格将各类参数值进行汇总,并且在最后附录模型构建的核心代码。


  • 5、文字分析

    首先针对特征的权重即重要性情况进行说明,如下图:


    上图可以看到:换设备次数,或者换IP国次数这两项对于预测是否欺诈有着较高的帮助,而且支付失败次数也起着重要的作用。但是换IP次数或者交易金额这两项并不能很好地证明是否存在着欺诈行为。接下来针对最重要的模型拟合情况进行说明,如下表格:


    上表格中分别针对训练集和测试集,提供四个评估指标,分别是精确率、召回率、f1-scrore、准确率,以及平均指标和样本量指标等,整体来看,训练集时各指标均为1意味着完美,但是测试集时各指标值均在0.9左右,意味着可能存在过拟合问题,但整体上模型拟合良好。

    接着进一步查看测试数据的‘混淆矩阵’,即模型预测和事实情况的交叉集合,如下图:


    ‘混淆矩阵’时,右下三角对角线的值越大越好,其表示预测值和真实值完全一致。上图中显示测试集时,真实值为1(即欺诈)但预测为0(即不欺诈)的数量为20,与此同时,真实值为0(即不欺诈)但预测为1(即欺诈)的数量为2,其余均预测正确,仅测试集共有200条,但预测出错为22条,出错率为11%。最后SPSSAU输出模型参数信息值,如下表格:


    模型汇总表展示模型各项参数设置情况,最后SPSSAU输出使用python中slearn包构建本次极端随机树模型的核心代码如下:

    model = ExtraTreesClassifier(criterion='gini', max_depth=None, min_samples_leaf=1, min_samples_split=2, n_estimators=100, bootstrap=True, oob_score=True, max_features='auto')

    model.fit(x_train, y_train)





二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:机器学习 Estimators classifier Randomized randomize 机器学习
相关内容:机器学习案例分析

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
扫码
拉您进交流群
GMT+8, 2026-1-28 18:45