机器学习(十七)Microsoft的InterpretM可解释性 机器学习模型

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: 机器学习(十七)Microsoft的InterpretM可解释性 机器学习模型

InterpretML 简介


  • 适合可解释的模型
  • 解释blackbox机器学习,可视化的展示“黑箱"机器学习

InterpretML是一个开源软件包,用于训练可解释的模型并解释黑盒系统。可解释性主要表现在以下几点:

  • 模型调试 - 模型哪里出现了错误?
  • 检测偏差 - 模型表现出哪些区分能力?
  • 策略学习 - 模型是否满足某些规则要求?
  • 高风险的应用 - 医疗保健,金融,司法等

从历史上看,最容易理解的模型不是很准确,最准确的模型是不可理解的。 Microsoft Research开发了一种称为可解释增强机Explainable Boosting Machine(EBM)的算法,该算法具有高精度和可懂度。 EBM使用现代机器学习技术,如装袋和助推,为传统GAM(Generalized Additive Models)注入新的活力。 这使它们像随机森林和梯度提升树一样准确,并且还增强了它们的可懂度和可编辑性。


78.png

image


除了EBM之外,InterpretML还支持LIME,SHAP,线性模型,部分依赖,决策树和规则列表等方法。该软件包可以轻松比较和对比模型,以找到最适合您需求的模型。


安装



Python 3.5+ | Linux, Mac OS X, Windows


pip install numpy scipy pyscaffold
pip install -U interpret


实例1 回归任务-波士顿房价预测



import pandas as pd
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
boston = load_boston()
feature_names = list(boston.feature_names)
X, y = pd.DataFrame(boston.data, columns=feature_names), boston.target
seed = 1
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20, random_state=seed)


探索数据集


from interpret import show
from interpret.data import Marginal
marginal = Marginal().explain_data(X_train, y_train, name = 'Train Data')
show(marginal)


79.png


很强大,比以前自己在做的繁琐EDA的时候便捷多了,marginal可以识别出变量的类型,比如连续变量或者类别型变量,可以计算出与Y的相关性系数等。


训练 Explainable Boosting Machine (EBM)


from interpret.glassbox import ExplainableBoostingRegressor, LinearRegression, RegressionTree
ebm = ExplainableBoostingRegressor(random_state=seed)
ebm.fit(X_train, y_train)   #Works on dataframes and numpy arrays


ExplainableBoostingRegressor(data_n_episodes=2000,

early_stopping_run_length=50,

early_stopping_tolerance=1e-05,

feature_names=['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD', 'TAX', 'PTRATIO', 'B', 'LSTAT'],

feature_step_n_inner_bags=0,

feature_types=['continuous', 'continuous', 'continuous', 'categorical', 'continuous', 'continuous', 'continuous', 'continuous', 'continuous', 'continuous', 'continuous', 'continuous', 'continuous'],

holdout_size=0.15, holdout_split=0.15, interactions=0,

learning_rate=0.01, max_tree_splits=2,

min_cases_for_splits=2, n_estimators=16, n_jobs=-2,

random_state=1, schema=None, scoring=None,

training_step_episodes=1)


模型全局概览:模型总体上学到了什么


ebm_global = ebm.explain_global(name='EBM')
show(ebm_global)


80.png


可以学习到每个特征在不同密度下的贡献分数


局部解释:每个特征与预测的关系


ebm.explain_local(X_test[:5], y_test[:5], name='EBM')
show(ebm_local)


81.png


预测值与真实值比较下的不同特征重要性


评估EBM的性能


82.png


回归任务评估指标为RMSE=3.82,R2=0.85(越接近1性能越好),已经很不错


测试一些其他的可解释模型


LinearRegression, RegressionTree


from interpret.glassbox import LinearRegression, RegressionTree
lr = LinearRegression(random_state=seed)
lr.fit(X_train, y_train)
rt = RegressionTree(random_state=seed)
rt.fit(X_train, y_train)


使用DashBoard展现不同模型的性能


lr_perf = RegressionPerf(lr.predict).explain_perf(X_test, y_test, name='Linear Regression')
rt_perf = RegressionPerf(rt.predict).explain_perf(X_test, y_test, name='Regression Tree')
show(lr_perf)
show(rt_perf)
show(ebm_perf)


83.png


84.png


85.png


与线性回归、决策树模型作比较,还是EBM的性能强大


Glassbox:展示所有的模型都有全局和局部


lr_global = lr.explain_global(name='Linear Regression')
rt_global = rt.explain_global(name='Regression Tree')
show(lr_global)
show(rt_global)
show(ebm_global)


86.png


87.png


88.png

image.png


DashBoard仪表板:一次查看所有内容


show([marginal, lr_global, lr_perf, rt_global, rt_perf, ebm_global, ebm_perf])


89.png


完整代码请见:https://github.com/yanqiangmiffy/quincy-python-v2

相关文章
|
10月前
|
人工智能 自然语言处理 IDE
模型微调不再被代码难住!PAI和Qwen3-Coder加速AI开发新体验
通义千问 AI 编程大模型 Qwen3-Coder 正式开源,阿里云人工智能平台 PAI 支持云上一键部署 Qwen3-Coder 模型,并可在交互式建模环境中使用 Qwen3-Coder 模型。
1467 109
|
11月前
|
人工智能 自然语言处理 运维
【新模型速递】PAI-Model Gallery云上一键部署Kimi K2模型
月之暗面发布开源模型Kimi K2,采用MoE架构,参数达1T,激活参数32B,具备强代码能力及Agent任务处理优势。在编程、工具调用、数学推理测试中表现优异。阿里云PAI-Model Gallery已支持云端部署,提供企业级方案。
609 0
【新模型速递】PAI-Model Gallery云上一键部署Kimi K2模型
|
人工智能 JSON 算法
【解决方案】DistilQwen2.5-DS3-0324蒸馏小模型在PAI-ModelGallery的训练、评测、压缩及部署实践
DistilQwen 系列是阿里云人工智能平台 PAI 推出的蒸馏语言模型系列,包括 DistilQwen2、DistilQwen2.5、DistilQwen2.5-R1 等。本文详细介绍DistilQwen2.5-DS3-0324蒸馏小模型在PAI-ModelGallery的训练、评测、压缩及部署实践。
|
人工智能 运维 API
PAI-Model Gallery云上一键部署阶跃星辰新模型Step1X-Edit
4月27日,阶跃星辰正式发布并开源图像编辑大模型 Step1X-Edit,性能达到开源 SOTA。Step1X-Edit模型总参数量为19B,实现 MLLM 与 DiT 的深度融合,在编辑精度与图像保真度上实现大幅提升,具备语义精准解析、身份一致性保持、高精度区域级控制三项关键能力;支持文字替换、风格迁移等11 类高频图像编辑任务类型。在最新发布的图像编辑基准 GEdit-Bench 中,Step1X-Edit 在语义一致性、图像质量与综合得分三项指标上全面领先现有开源模型,比肩 GPT-4o 与 Gemin。PAI-ModelGallery 支持Step1X-Edit一键部署方案。
|
12月前
|
机器学习/深度学习 算法 安全
差分隐私机器学习:通过添加噪声让模型更安全,也更智能
本文探讨在敏感数据上应用差分隐私(DP)进行机器学习的挑战与实践。通过模拟DP-SGD算法,在模型训练中注入噪声以保护个人隐私。实验表明,该方法在保持71%准确率和0.79 AUC的同时,具备良好泛化能力,但也带来少数类预测精度下降的问题。研究强调差分隐私应作为模型设计的核心考量,而非事后补救,并提出在参数调优、扰动策略选择和隐私预算管理等方面的优化路径。
759 3
差分隐私机器学习:通过添加噪声让模型更安全,也更智能
|
11月前
|
人工智能 自然语言处理 运维
【新模型速递】PAI-Model Gallery云上一键部署gpt-oss系列模型
阿里云 PAI-Model Gallery 已同步接入 gpt-oss 系列模型,提供企业级部署方案。
|
12月前
|
机器学习/深度学习 人工智能 算法
Post-Training on PAI (4):模型微调SFT、DPO、GRPO
阿里云人工智能平台 PAI 提供了完整的模型微调产品能力,支持 监督微调(SFT)、偏好对齐(DPO)、强化学习微调(GRPO) 等业界常用模型微调训练方式。根据客户需求及代码能力层级,分别提供了 PAI-Model Gallery 一键微调、PAI-DSW Notebook 编程微调、PAI-DLC 容器化任务微调的全套产品功能。
|
存储 人工智能 运维
企业级MLOps落地:基于PAI-Studio构建自动化模型迭代流水线
本文深入解析MLOps落地的核心挑战与解决方案,涵盖技术断层分析、PAI-Studio平台选型、自动化流水线设计及实战构建,全面提升模型迭代效率与稳定性。
636 6
|
存储 机器学习/深度学习 自然语言处理
避坑指南:PAI-DLC分布式训练BERT模型的3大性能优化策略
本文基于电商搜索场景下的BERT-Large模型训练优化实践,针对数据供给、通信效率与计算资源利用率三大瓶颈,提出异步IO流水线、梯度压缩+拓扑感知、算子融合+混合精度等策略。实测在128卡V100集群上训练速度提升3.2倍,GPU利用率提升至89.3%,训练成本降低70%。适用于大规模分布式深度学习任务的性能调优。
616 3

热门文章

最新文章