首页 > 其他分享 >回归任务和分类任务,重要性度量的计算方式

回归任务和分类任务,重要性度量的计算方式

时间:2023-11-23 09:13:48浏览次数:35  
标签:MeanDecreaseAccuracy 变量 预测 基尼 任务 重要性 节点 度量

在随机森林中,对于回归任务和分类任务,重要性度量的计算方式是不同的。

  • 回归任务:使用的是 %IncMSE 和 IncNodePurity

    • %IncMSE:这是一个基于均方误差(Mean Squared Error,MSE)的度量。当我们对某个变量进行排列时,预测误差的增加程度被用作该变量的重要性度量。如果对预测结果影响较大的变量被排列,那么模型的MSE将会显著增加,因此%IncMSE值也会较大。
    • IncNodePurity:这是一个基于节点纯度(Node Purity)的度量。在构建随机森林的每棵树时,每次分裂都会增加节点的纯度。一个变量如果在分裂中更常被用到,那么它对增加节点纯度的贡献就更大,因此被认为更重要。
  • 分类任务:使用的是 MeanDecreaseAccuracy 和 MeanDecreaseGini

    • MeanDecreaseAccuracy:这是一个基于准确率(Accuracy)的度量。当我们对某个变量进行排列时,模型准确率的降低程度被用作该变量的重要性度量。如果对预测结果影响较大的变量被排列,那么模型的准确率将会显著降低,因此MeanDecreaseAccuracy值也会较大。
    • MeanDecreaseGini:这是一个基于基尼指数(Gini Index)的度量。在构建随机森林的每棵树时,每次分裂都会降低基尼指数。一个变量如果在分裂中更常被用到,那么它对降低基尼指数的贡献就更大,因此被认为更重要。

 

  • %IncMSE:假设你正在预测一个城市的房价,你有很多变量,比如房屋的面积、房屋的年龄、是否靠近公园等。如果我们随机改变"房屋面积"这个变量的值,然后用这个被改变的数据去预测房价,你会发现预测的房价与实际的房价之间的均方误差(MSE)会显著增加。这是因为"房屋面积"对房价有很大的影响,所以当它被改变时,预测的准确性就会下降。这就是%IncMSE的含义。

  • IncNodePurity:在构建决策树时,我们的目标是使得每个节点尽可能"纯净",也就是说,我们希望一个节点内的所有样本尽可能地属于同一类。比如,如果我们正在根据一些症状来预测一个人是否患有某种疾病,那么一个"纯净"的节点就是指该节点内的所有人都是病人,或者都是健康人。IncNodePurity就是衡量一个变量在增加节点纯度方面的贡献。

  • MeanDecreaseAccuracy:还是以预测房价为例,如果我们随机改变"房屋面积"这个变量的值,然后用这个被改变的数据去预测房价,你会发现预测的准确率会显著下降。这是因为"房屋面积"对房价有很大的影响,所以当它被改变时,预测的准确性就会下降。这就是MeanDecreaseAccuracy的含义。

  • MeanDecreaseGini:基尼指数是一种衡量不纯度的指标,值越小表示不纯度越低,也就是节点越"纯净"。在构建决策树时,我们的目标是选择能最大程度降低基尼指数的变量来进行分裂。MeanDecreaseGini就是衡量一个变量在降低基尼指数方面的贡献。

标签:MeanDecreaseAccuracy,变量,预测,基尼,任务,重要性,节点,度量
From: https://www.cnblogs.com/wzbzk/p/17850768.html

相关文章

  • 【题目-任务安排2】斜率优化dp
    题解首先,递推关系如下:\(dp[i]=min(dp[i],dp[j]+sumt[i]*(sumc[i]-sumc[j])+s*(sumc[n]-sumc[j]));\)显然N太大,无法\(O(n^2)\)算法解决问题。考虑如何优化掉第二个j的循环,发现这个循环是找最优的j位置假设\(j\)就是最优位置,那么可以先初步消掉min,接着如下分析:......
  • 常用度量函数/距离
    常用的距离变换闵可夫斯基距离/明氏距离(MinkowskiDistance)\[\left(\sum_{i=1}^n|x_i-y_i|^p\right)^{1/p}\]曼哈顿距离/城市街区距离(ManhattanDistance)\[d(x,y)=\sum_{i=1}^n|x_i-y_i|\]欧式距离(EuclideanDistance)\[d(x,y)=\sqrt{\sum_n^{i=1}(x_i-y_j)^2}\]切比......
  • 第一次任务笔记
    python注释语法:单行注释:使用#开头多行注释:使用"""或'''包裹代码养成写注释的好习惯print("helloworld")#print("nihao")"""print("helloworld")print("nihao")"""代码常见错误:逻辑错误......
  • linux 每隔多少秒执行定时任务
    Linux中的定时任务通常使用crontab来实现,但crontab的最小时间单位是分钟,因此默认情况下无法实现一分钟内多次执行的定时任务。不过,你可以使用以下方法之一来实现一分钟内多次执行的效果:编写一个无限循环的脚本:你可以编写一个无限循环的脚本,并在其中添加需要重复执行的命令......
  • 科学计算时如何正确的使用超线程CPU——使用超线程CPU进行计算密集型任务时的注意事项
    现在这个AI火热的时代科学计算任务占比越来越大,但是平时使用时也有一些不为人注意的地方需要知道,本文就讨论一下使用超线程CPU时的注意事项。 超线程CPU就是现在的多线程CPU,以Intel和AMD的X86CPU为例,一个10个物理核心的CPU则有20个逻辑核心,其中多出来的10个核心就是超线程架构......
  • Scrum敏捷开发培训团队和组织来说的重要性
    ​Scrum敏捷开发培训对于团队和组织来说是至关重要的,有以下几点,大家可以参考下:理解敏捷价值观和原则: 培训有助于团队理解敏捷方法背后的核心理念和价值观,包括个体和互动、工作软件、客户合作和响应变化。这有助于建立共同的敏捷文化和心态。熟悉Scrum框架和流程: Scrum培......
  • AWS Fargate 更新通知:任务修补与退役
    随着AWSFargate的不断演进,为确保安全性和性能,AWS宣布将自动对部分ECS服务中的任务进行更新。这次更新涵盖了安全补丁和其他关键的软件更新,为您的应用程序提供更稳定和安全的运行环境。更新详情更新计划于2023年12月4日星期一14:00:00GMT开始执行。下面是有关此更新的一些......
  • Webman框架使用异步任务
    首先在app目录下创建Task.php<?phpnamespaceapp;useWorkerman\Connection\TcpConnection;classTask{/***只会执行一次*@returnvoid*/publicfunctiononWorkerStart(){echo"进程启动";}publicfunctiononMessage($connection,$task_data){$connect......
  • [实验任务一]:JAVA和C++常见数据结构迭代器的使用
    信1305班共44名同学,每名同学都有姓名,学号和年龄等属性,分别使用JAVA内置迭代器和C++中标准模板库(STL)实现对同学信息的遍历,要求按照学号从小到大和从大到小两种次序输出学生信息。实验要求:1. 搜集并掌握JAVA和C++中常见的数据结构和迭代器的使用方法,例如,vector,list,map和set等......
  • 课程设计:任务理解与分工
    团队任务:1.小组讨论对课程设计任务的理解我们小组对于任务的理解为,为报文解析工具wireshark设计一个lua插件,该插件要能够协助wireshark进行加解密。2.进行任务的功能划分和分工我们将本次插件设计的任务划分成了四个部分,一是对任务整体的布置与解读,将任务中涉及到的内容进行解......