当前位置: 首页 > news >正文

绘制列线图并解释线性模型的Python包-nomogram-explainer(记我的第一个pypi项目)

可以绘制列线图并解释线性模型的Python包-nomogram-explainer上线(记我的第一个pypi项目)

SHAP分析是目前可以对预测模型同时进行全局性和局部性两种解释唯一的包,其它的包要么仅能进行局部解释,比如LIME,要么只能进行全局性解释,比如xgboost的变量重要性。

列线图(算法)是展示线性模型的一种算法,目前在了解该算法的基础上,我用python的pyplot包绘制了列线图,过程中发现该算法可以发展成为解释线性模型的工具,且可以进行全局性和局部性解释。撰写相关代码期间,也曾分享过代码,但是总觉得不够方便,最后,在AI的辅助下,也终于把相关的代码上传到pypi来发布。

包功能

  1. 绘制列线图,使用plotly包构建,目前提供了三种绘图风格,实现了使用python绘制列线图,也算是填补了一项Python包的空白。
    在这里插入图片描述

  2. 全局解释,采用横向bar图,可以使用meta数据或者score数据,展示各个预测变量对结局变量的贡献的排名和方向,与OR值配合,更加全面说明变量的重要性。
    在这里插入图片描述

  3. 局部解释,采用瀑布图,使用个案数据,说明个案数据对模型预测值的贡献,使用meta数据则可以包括方向和大小,如果使用score数据(如下图)则只能表达大小。
    在这里插入图片描述

  4. 单个变量的依赖图,也可以绘图观察单个变量原始值和评分之间的关系,意料之中全部都呈线性关系,只是斜率和方向的不同。
    在这里插入图片描述

使用心得

  1. 列线图算法仅能对线性模型进行解释,包括逻辑回归和Cox;
  2. 线性模型预设的前提是变量之间的关系是线性的,是对变量间关系的一种简化,如果线性模型在特定的数据上表现良好,说明变量间关系是线性的,就可以使用列线图(算法)来进行全局性解释和局部性解释。
  3. 模型解释可以使用meta数据或score数据来进行(取其中一种即可),使用meta数据可以展示大小和方向,如果使用score数据,仅能表达大小。这些数据可以配合OR值、或者列线图来使用,以充份说明变量对结局的贡献。
  4. 当然也可以使用SHAP分析来对线性模型进行解释,那就是另外一个故事了。

开发体会

  1. 列线图算法的拆解是之前的工作,在此基础上,前后花了一个月时间,在AI的辅助下补全了代码,上线到pypi摸索了两天时间,AI的作用是完善代码、纠错和撰写代码说明等文字工作。
  2. 工作虽说一般,借此机会学习了一下Python包从编写到发布的过程,感觉也有不小的收获。

最后

测试项目(逻辑回归):https://www.heywhale.com/mw/project/67caf46b5f2f47898ed696a5
测试项目(Cox):
https://www.heywhale.com/mw/project/67c142b8bc2e1697195987c9
项目地址:
https://gitcode.com/skyskytotop/pynomogram_explainer

感谢关注,希望能对您有所帮助。

相关文章:

  • 配置多区域OSPF,配置OSPF手动汇总,配置OSPF特殊区域
  • IO多路复用实现并发服务器
  • 电路研究10——MPU6050电路搭建
  • InDraw6.2.3 | 甾体、核苷、黄酮类化合物实现简称命名
  • 模板注入Smarty
  • 《C++ primer》第六章
  • Linux基本操作指令3
  • 用K8S部署Milvus服务
  • 设备树的概念
  • 【网络编程】简单的网络服务器设计
  • 编程题-计算器(中等)
  • 耘锄、铧式犁、畦作
  • 实现静态网络爬虫(入门篇)
  • openwrt路由系统------Linux 驱动开发的核心步骤
  • 传输层协议
  • 信息系统运行管理员教程9--大型网站运维
  • 两种免费防御DDoS攻击的实战攻略,详细教程演示
  • 力扣-股票买入问题
  • 骑砍Ⅱ霸主MOD开发(27)-定制化GameEntity-MissionWeapon
  • 【Manus】AI 代理人正式上岗-附Manus邀请码限时通道
  • 网站上传图片大小限制/全球最大的磁力搜索引擎
  • 做平台交易网站怎么收款/线下实体店如何推广引流
  • 网站搭建功能需求/个人主页网页设计
  • 专业企业网站设计/上海seo推广方法
  • 建设网站证书/怎么让自己上百度
  • 台湾网站建设公司/哪家网络公司比较好