Permutation Importance重要性

2023-12-28 19:28

本文主要是介绍Permutation Importance重要性,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • <font color=blue size=4 face="楷体">算法解构
  • <font color=blue size=4 face="楷体">代码

算法解构

Permutation Importance适用于表格型数据,其对于特征重要性的评判取决于该特征被随机重排后,模型表现评分的下降程度。其数学表达式可以表示为:

  • 输入:训练后的模型m,训练集(或验证集,或测试集)D
  • 模型m在数据集D上的性能评分s
  • 对于数据集D的每一个特征j
    • 对于K次重复实验中的每一次迭代k,随机重排列特征j,构造一个被污染的数据集 D c k , j D c_{k, j} Dck,j
    • 计算模型m在数据集 D c k , j D c_{k, j} Dck,j上的性能评分 s k , j s_{k, j} sk,j
    • 特征j的重要性分数 i j i_{j} ij则可以记作 i j = s − 1 / K ∑ k = 1 K s k , j i_j=s-1 / K \sum_{k=1}^K s_{k, j} ij=s1/Kk=1Ksk,j

L. Breiman, “Random Forests”, Machine Learning, 45(1), 5-32, 2001.

代码

from sklearn.datasets import load_diabetes
from sklearn.model_selection import train_test_split
from sklearn.linear_model import Ridge
diabetes = load_diabetes()
X_train, X_val, y_train, y_val = train_test_split(diabetes.data, diabetes.target, random_state=0)model = Ridge(alpha=1e-2).fit(X_train, y_train)
model.score(X_val, y_val)scoring = ['r2', 'neg_mean_absolute_percentage_error', 'neg_mean_squared_error']
# scoring参数可以同时加入多个计算指标,这样比重复使用permutation_importance更有效率,因为预测值能被用来计算不同的指标
r_multi = permutation_importance(model, X_val, y_val, n_repeats=30, random_state=0, scoring=scoring)for metric in r_multi:print(f"{metric}")r = r_multi[metric]for i in r.importances_mean.argsort()[::-1]:if r.importances_mean[i] - 2 * r.importances_std[i] > 0:print(f"    {diabetes.feature_names[i]:<8}"f"{r.importances_mean[i]:.3f}"f" +/- {r.importances_std[i]:.3f}")

输出为:

r2s5      0.204 +/- 0.050bmi     0.176 +/- 0.048bp      0.088 +/- 0.033sex     0.056 +/- 0.023
neg_mean_absolute_percentage_errors5      0.081 +/- 0.020bmi     0.064 +/- 0.015bp      0.029 +/- 0.010
neg_mean_squared_errors5      1013.903 +/- 246.460bmi     872.694 +/- 240.296bp      438.681 +/- 163.025sex     277.382 +/- 115.126

相比而言,树模型通常基于不纯净度的下降来判断特征重要性,该重要性通常是基于训练集的,当模型过拟合时,特征的重要性则具有误导性。在此情况下,看似重要的特征可能对于模型上线后的遇到的新数据并没有令人满意的预测能力。

同时,基于不纯净度的特征重要性容易受到高数量类别属性的影响(High Cardinality Features),所以那些数值型变量往往排名靠前。而Permutation Importance 对模型的特征没有偏见,也不局限于特定的模型类别,适用性较广。请注意。如果特征有较强的多重共线性,建议只取一个重要的特征,方法可查看官方示例。

这篇关于Permutation Importance重要性的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/547025

相关文章

数据分析:置换检验Permutation Test

欢迎大家关注全网生信学习者系列: WX公zhong号:生信学习者Xiao hong书:生信学习者知hu:生信学习者CDSN:生信学习者2 介绍 置换检验是一种非参数统计方法,它不依赖于数据的分布形态,因此特别适用于小样本数据集,尤其是当样本总体分布未知或不符合传统参数检验的假设条件时。置换检验的基本思想是通过随机置换样本来评估观察到的统计量是否显著不同于随机情况下的预期值。最初真正认识置换检

Adaboost集成学习 | Adaboost集成学习特征重要性分析(Python)

目录 效果一览基本介绍模型设计程序设计参考资料 效果一览 基本介绍 Adaboost集成学习特征重要性分析(Python)Adaboost(自适应增强)是一种常用的集成学习方法,用于提高机器学习算法的准确性。它通过组合多个弱分类器来构建一个强分类器。在Adaboost中,每个弱分类器都被赋予一个权重,这些权重根据其在训练过程中的表现进行调整。因此,Adaboost可以通

博弈论+递推+调和级数枚举,CF 1033C - Permutation Game

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1033C - Permutation Game 二、解题报告 1、思路分析 我们考虑一个位置符合什么条件可以必胜? 如果可以跳到一个必败的位置 考虑最大的格子一定是必败 而每个格子只能跳到比自己大的格子 于是我们就可以倒序处理状态 对于每个格子枚举比自己大

Python统计实战:一题搞定多元线性回归、共线性、相对重要性分析

为了解决特定问题而进行的学习是提高效率的最佳途径。这种方法能够使我们专注于最相关的知识和技能,从而更快地掌握解决问题所需的能力。 (以下练习题来源于《统计学—基于Python》。联系获取完整数据和Python源代码文件。) 练习题 为了分析影响不良贷款的因素,一家商业银行在所属的多家分行中随机抽取25家,得到的不良贷款、贷款余额、应收贷款、贷款项目个数、固定资产投资等有关数据如下(前3行

484. Find Permutation

https://leetcode.com/problems/find-permutation/description/ 题目大意:给一串DDII…D代表下降趋势,I代表上升.根据这一串DDII的序列构建出一个整数vector,且若有多个vector符合要求,返回字典序最小的. 解题思路:根据讨论的思路,首先构建出完全增序(IIII….)的序列1,2,3,4,…n,然后找序列中所有的D,将对应位

振弦式渗压计在土木工程安全监测中的重要性解析

在土木工程领域中,特别是涉及到坝体、隧道、路基等复杂结构的监测与安全管理时,渗压计作为一种关键的测量工具,发挥着举足轻重的作用。其中,振弦式渗压计以其独特的优点,得到了广泛的应用和认可。本文将对振弦式渗压计的重要性进行深入的解析。   振弦式渗压计在实时监测方面展现出了较高的性能。无论是大坝内部的渗流情况,还是隧道、路基等工程中的水位变化,振弦式渗压计都能进行实时、连续的监测。这种实

认识流量的重要性

前言 在互联网的浪潮中,流量始终是商业领域的核心话题,随着网络经济的蓬勃发展,流量已成为企业和个人竞相争夺的宝贵资源。那么,流量究竟为何如此重要呢?让我们一同浅探其背后的原因。 流量的商业价值 在互联网时代,流量代表着用户的关注度和参与度。无论是网站、应用、视频还是文章,其流量都直接反映了其受欢迎程度和影响力。因此,拥有大量流量就意味着拥有了潜在的商业价值和转化能力。 以早期的四大门户网站

视频监控管理平台的日志功能的重要性

日志功能的重要性       视频监控平台在日常工作生活中越来越重要,具有完备的平台日志,不仅可以增强视频监控系统的自身安全性,还能在更大程度上保障社会的安全与稳定。 (一)安全保障         视频监控平台作为安全防护的重要组成部分,需要确保其自身的安全稳定运行。平台日志能够记录视频监控平台运行过程中的所有活动,包括用户操作、系统错误、配置更改等,这样有助于及时发现并应对潜在的安全威胁,

情商的重要性

//************************************   情商的重要性 //************************************          我的大学四年,没有考上一所好的研究生学校,没有学到能够立足的技术,甚至我的圈子比较窄...     但是我这四年下来只学会了一件事,就是情商很重要。     情商是一个人溶于社会,与人为伍的利器。学不会情商

【Nginx系列】反向代理在现代网络架构中的重要性

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 java 核心技术,jvm,并发编程 redis,kafka,Spring,微服务等常用开发工具系列:常用的开发工具,IDEA,M