如何获得逻辑回归特征对于特定预测的相对重要性?

2023-12-19

我正在使用逻辑回归(在 scikit 中)来解决二元分类问题,并且有兴趣能够解释每个单独的预测。更准确地说,我感兴趣的是预测正类的概率,并衡量每个特征对于该预测的重要性。

使用系数(Beta)作为重要性衡量标准通常是一个坏主意正如这里所回答的 https://stats.stackexchange.com/questions/47058/importance-of-variables-in-logistic-regression,但我还没有找到一个好的替代方案。

到目前为止,我发现最好的是以下 3 个选项:

  1. 蒙特卡罗选项:修复所有其他特征,重新运行预测,用训练集中的随机样本替换我们想要评估的特征。多次执行此操作。这将建立一个正类的基线概率。然后与正类的概率原始运行的。差异是功能重要性的衡量标准。
  2. “留一”分类器:要评估某个特征的重要性,首先创建一个使用所有特征的模型,然后创建另一个使用除正在测试的特征之外的所有特征的模型。使用这两个模型预测新的观察结果。两者之间的区别在于该功能的重要性。
  3. 调整后的贝塔值:基于这个答案 https://stackoverflow.com/questions/34052115/how-to-find-the-importance-of-the-features-for-a-logistic-regression-model,对特征的重要性进行排序“其系数的大小乘以数据中相应参数的标准差。”

所有选项(使用测试版、蒙特卡罗和“留一法”)对我来说似乎都是糟糕的解决方案。

  1. 蒙特卡洛依赖于训练集的分布,我找不到任何文献支持它。
  2. “留一”很容易被两个相关特征所欺骗(当一个特征缺失时,另一个特征会介入进行补偿,并且两者的重要性都将被赋予 0)。
  3. 调整后的贝塔值听起来似乎合理,但我找不到任何文献来支持它。

实际问题:在做出决策时,使用线性分类器解释每个特征的重要性的最佳方法是什么?

快速说明#1:对于随机森林来说,这是微不足道的,我们可以简单地使用prediction + bias分解,正如在这篇博文 http://blog.datadive.net/interpreting-random-forests/。这里的问题是如何使用线性分类器(例如逻辑回归)做类似的事情。

快速说明#2:stackoverflow 上有许多相关问题(1 https://stackoverflow.com/questions/34052115/how-to-find-the-importance-of-the-features-for-a-logistic-regression-model 2 https://stackoverflow.com/questions/15796247/find-important-features-for-classification?rq=1 3 https://stats.stackexchange.com/questions/47058/importance-of-variables-in-logistic-regression 4 https://stats.stackexchange.com/questions/158434/can-i-interpret-the-impact-of-variables-like-positive-or-negative-on-the-model-b/158452#158452 5 https://stats.stackexchange.com/questions/976279/logistic-regression-and-how-to-judge-model-fit-and-parameter-influence)。我无法找到这个具体问题的答案。


如果您想了解功能对于特定决策的重要性,为什么不模拟decision_function(这是scikit-learn提供的,所以你可以测试是否得到相同的值)一步一步?线性分类器的决策函数很简单:

intercept_ + coef_[0]*feature[0] + coef_[1]*feature[1] + ...

功能的重要性i那么就只是coef_[i]*feature[i]。当然,这类似于查看系数的大小,但由于它与实际特征相乘,而且它也是在幕后发生的事情,因此它可能是您最好的选择。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获得逻辑回归特征对于特定预测的相对重要性? 的相关文章

  • Antlr 解析器运算符优先级

    考虑以下语法 我对运算符优先级有疑问 例如 res 2 a b有一个类似的解析树res 2 a b 我知道问题出在哪里 但我没有想到没有相互左递归的 漂亮 解决方案 你能帮我一点忙吗 该语法与自定义访问者一起使用 grammar Math
  • 仅当显式选择行时才关闭 ui-bootstrap typeahead

    我创建了这个jsBin http jsbin com livuqafe 2 edit来证明我遇到的问题 如果您转到此处 请尝试输入 五 并继续 你的自然反应是输入 五 然后按 Tab 如果你想要 五百 你可以向下箭头一次 但是 在这种情况下
  • 如何通过索引访问 JSON 对象中的字段

    我知道这不是最好的方法 但我别无选择 我必须通过索引访问 JSONObject 中的项目 访问对象的标准方法是只写this objectName or this objectName 我还找到了一种获取 json 对象内所有字段的方法 fo
  • 带有 Maven Wrapper 的 Java 17 导致无法识别的 VM 选项“MaxPermSize=512m”

    I use OpenJDK 17 https jdk java net 17 使用 Maven Wrapper 3 8 2 从春季初始化 https start spring io Maven项目 JAR打包 Java 17 Spring
  • 测量窗口偏移

    有没有一种方法可以测量 jQuery 中窗口的偏移量 以便我可以比较 固定 元素和相对定位元素的位置 我需要能够知道窗口滚动了多远 以便我可以使用该图来计算固定元素的高度 相对于视口顶部 和相对对象的高度 相对于顶部 之间的差异文件的内容
  • MySQL 查询计算上个月

    我想计算上个月的订单总额 我收到了从当前日期获取当月数据的查询 SELECT SUM goods total AS Total Amount FROM orders WHERE order placed date gt date sub c
  • 没有输入的 jQuery 日期选择器

    我有一个相当复杂的网络应用程序 我想向其中添加一些日期选择 UI 我遇到的问题是我无法从文档中弄清楚如何真正控制日期选择器的出现方式和时间 不涉及任何表单元素 不 我不会添加秘密表单字段 因此简单的开箱即用方法根本行不通 我希望有人可以提供
  • PrimeFaces 对话框参考父级

    我有一个 xhtml 页面 显示带有条目的数据表 我还有一个用于插入新条目的按钮 该按钮显示一个包含表单的对话框 插入表格用作
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么
  • Mono 应用程序在非阻塞套接字发送时冻结

    我在 debian 9 上的 mono 下运行一个服务器应用程序 大约有 1000 2000 个客户端连接 并且应用程序经常冻结 CPU 使用率达到 100 我执行 kill QUIT pid 来获取线程堆栈转储 但它总是卡在这个位置
  • php 数组中出现意外的 json 输出结构

    我正在尝试转换动态数据 如何从 PHP 获取此 JSON JSON 122240cb 253c 4046 adcd ae81266709a6 item 0 3 这就是我所做的 但它不起作用 PHP json array 122240cb 2
  • 将第三个表链接到多对多关联中的桥接表

    设计这个数据库的正确方法是什么 这是我设置表格的方式 我在名为 教师 的表和名为 仪器 的表之间存在多对多关系 然后我有一个连接两者的桥接表 我想将另一个表与 BRIDGE 表关联起来 意思是乐器 老师的组合 该表有 3 行 指定老师可以教
  • Amazon RDS for SQL Server 是否支持 SSIS?

    从谷歌搜索中读到一些相互矛盾的答案 不确定答案是是 否还是可能 我觉得读的时候已经很清楚了this http docs aws amazon com AmazonRDS latest UserGuide CHAP SQLServer htm
  • GUI Java 程序 - 绘图程序

    我一直试图找出我的代码有什么问题 这个想法是创建一个小的 Paint 程序并具有红色 绿色 蓝色和透明按钮 我拥有我能想到的让它工作的一切 但无法弄清楚代码有什么问题 该程序打开 然后立即关闭 import java awt import
  • 使用velocity.js制作可拖动元素的动画

    我正在使用velocity js 为用户拖动的可拖动 SVG 元素设置动画 然而 velocity js 将先前的 mousemove 坐标排队并通过所有后续的 mousemove 坐标进行动画处理 我想要的是velocity js 不要对
  • 如何在 JFreeChart 中设置多个系列的线条粗细?

    我创建了很多图表 在他们每个人中我都需要打电话 renderer setSeriesStroke i new BasicStroke 2 0f 对于每个系列 renderer is chart getXYPlot getRenderer 我
  • 使用 WGL 创建现代 OpenGL 上下文?

    我正在尝试使用 Windows 函数创建 OpenGL 上下文 现代版本 基本上代码就是 创建窗口类 注册班级 创建一个窗口 choose PIXELFORMATDESCRIPTOR并设置它 创建旧版 OpenGL 上下文 使上下文成为当前
  • 禁用允许文本选择的

    残疾人可以吗
  • PyAudio ErrNo 输入溢出 -9981

    我遇到了与用户相同的错误 Python 使用 Pyaudio 以 16000Hz 录制音频时出错 https stackoverflow com questions 12994981 python error audio recording
  • 探查器模板可以迁移到较新版本的 SQL Profiler 吗?

    是否可以将 Profiler 模板迁移到较新版本的 SQL Server 就我而言 我想将 SQL 2008 模板带到 2012 年 我尝试过 1 直接文件复制和 2 导出 导入 在这两种情况下 旧模板都会运行 但无法修改 修改后会出现以下

随机推荐

  • Rails 有内置的分页解决方案吗?

    我注意到分页宝石就像mislav will paginate很受欢迎 这是因为Rails没有内置的分页解决方案还是因为内置的解决方案不是很好 在 Rails 2 0 中 ActionController 的分页功能被删除 并变成了一个名为
  • C 中的原子读取

    根据C 对 int 的读写是原子的吗 https stackoverflow com questions 54188 are c reads and writes of an int atomic 由于处理器缓存的问题 整数的读取 因此指针
  • 为什么 Python 脚本可以在 CLI 中运行,但在 cron 作业调用时却不能运行?

    我创建了一个 Python 脚本 我想通过 Ubuntu 服务器上的 cronjob 每天运行它 这是从命令行运行该脚本的方式 python home username public html IDM app manage py clean
  • 增强多索引容器的模板参数

    我需要创建一个包含多索引容器作为存储的通用类 当我编译时 它给出如下错误 其中我定义了第 n 个索引视图 错误 非模板 nth index 用作模板 connection manager 模板 类 conn mgr boost noncop
  • 实体框架从 6.1.x 升级到 6.2.0 会破坏某些查询,除非我启用 MARS

    我最近在我们的一个大型项目中将 EF 6 1 3 升级到 6 2 0 它破坏了我们大量的 LINQ 查询 启用 MultipleActiveResultSets 会使一切再次正常工作 但我很难理解这种变化 我们已经使用 EF 多年 并且经历
  • Three.js 中的剪辑是自动完成的吗?

    所以 我正在阅读有关剪辑的内容this http en wikipedia org wiki Clipping 28computer graphics 29维基百科文章 这似乎对所有游戏都非常重要 所以 我是否必须这样做 还是由 Three
  • GDB:在每一步后禁用当前行的打印

    GNU gdb 命令行调试器在每次执行后打印当前所在的行step and next命令 考虑以下 gdb 会话 我在其中单步执行一些代码 Temporary breakpoint 1 main argc 1 argv 0x7fffffffd
  • 如何在 Haskell 中将小数解析为有理数?

    我一直在参加编程竞赛 http codeforces com contest 105 and 问题之一 http codeforces com contest 105 problem A 输入数据包括十进制格式的小数 0 75就是一个例子
  • PDFkit Rails3.1和开发环境

    我的 Rails 3 1 应用程序正在使用 PDFkit 来渲染特定页面 并且我遇到了 看起来像是 一个常见问题 尝试生成 pdf 导致进程挂起 我在 stackoverflow 上找到了这个解决方案 Rails 3 和 PDFkit ht
  • 如何在 jQuery 的 SELECT 元素中选择特定选项?

    如果您知道索引 值或文本 如果您没有可直接参考的 ID 也同样如此 This https stackoverflow com questions 149573 check if option is selected with jquery
  • asp.net mvc4 jquery 不工作

    我正在尝试运行放入我的 jquery 代码 布局 cshtml如下 Scripts Render bundles jquery RenderSection Scripts required false 上面的代码没有被触发 当我用 Chro
  • Dart 初始化最终变量

    我在dart中编写构造函数时遇到了问题 我有一个类有两个final变量 在构造函数中初始化它们 以下是错误的 因为final变量没有setter方法 class Person final String name final int age
  • 鼠标右键映射为用于在 Jelly Bean 中向后移动

    我们更改了 framework base services input inputreader cpp 中的部分代码 使鼠标右键可以向后遍历 case BTN RIGHT mBtnRight rawEvent gt value break
  • PHP 和 Laravel 的特征

    我正在使用 Laravel 5 1 当模型之前的模型使用appends array 如果我的特征中存在某些项目 我想将其添加到附加数组中 我不想编辑模型来实现这一目标 在这种情况下 特征实际上可用吗 或者我应该使用继承 array push
  • Laravel 4:如何将 WHERE 条件应用于 Eloquent 类的所有查询?

    我正在尝试为我拥有的表实现 已批准 状态 这非常简单 基本上 如果该行的批准列等于 1 则应该检索该行 否则不应检索 问题是 现在我必须遍历整个代码库并添加 WHERE 语句 即函数调用 这不仅耗时而且效率低下 如果我想删除该功能等 我怎样
  • 如何在 DynamoDB 中实现按项目的任意属性排序

    我的 DynamoDB 结构如下 我有患者 其患者信息存储在其文档中 我有索赔 索赔信息存储在其文档中 我的付款信息存储在其文档中 每项索赔都属于患者 患者可以提出一项或多项索赔 每一笔付款都属于患者 患者可以有一次或多次付款 I crea
  • 为什么马赛克::衍生因子比基函数慢两倍?

    我正在尝试使用derivedFactor来自mosaic在 R 中打包来创建因子变量 但速度慢得惊人 当我使用一系列代码编写相同的函数时if声明并运行 它的运行速度似乎几乎快了一倍 这是一个可重现的示例 抱歉长度太长 library mic
  • 在 Firestore 中查询 GeoHashes 不会返回任何内容

    Firebase 网站上给出了从 Firestore 检索给定点 50 公里位置内所有位置的代码 这里是 Find cities within 50km of London let center CLLocationCoordinate2D
  • 在 IE 8/9 中使用“use strict”是否安全

    根据这个http caniuse com use strict http caniuse com use strict use strict IE 8 9 版本不支持 我的问题是 在 IE 8 9 或不兼容的浏览器中使用 use stric
  • 如何获得逻辑回归特征对于特定预测的相对重要性?

    我正在使用逻辑回归 在 scikit 中 来解决二元分类问题 并且有兴趣能够解释每个单独的预测 更准确地说 我感兴趣的是预测正类的概率 并衡量每个特征对于该预测的重要性 使用系数 Beta 作为重要性衡量标准通常是一个坏主意正如这里所回答的