csinva/imodels

Interpretable ML package 🔍 for concise, transparent, and accurate predictive modeling (sklearn-compatible).

imodels – Python 用的可解释机器学习模型

功能简介imodels 是一个 Python 库,它打包了大量可解释的监督学习算法(基于规则、基于树和稀疏线性模型),并通过熟悉的 scikit-learn estimator API (fit, predict, predict_proba 等) 使其可用。该软件包面向需要模型既准确易于理解的从业人员,例如在临床决策支持、金融或任何受监管的领域。

核心特性 (详见 README)

  • 广泛的模型库 – 规则集学习器 (RuleFit, SkopeRules, BoostedRules, SLIPPER, Bayesian rule set/list)、规则列表学习器 (Greedy, OneR, Fast-and-Frugal trees)、树学习器 (CART, C4.5, TAO, hierarchical-shrinkage wrappers) 以及代数模型 (SLIM integer-coefficient linear models, Tree-GAM, FIGS – greedy tree sums, BART, marginal-shrinkage linear models)。每个模型都可以直接导入,例如 from imodels import RuleFitClassifier
  • Scikit-learn 兼容性 – 所有 estimator 都实现了标准的 estimator 方法,可以在 pipeline 中工作,支持超参数搜索,并返回正确的 feature_names_in_ 属性。
  • 事后处理工具 – 用于蒸馏 (训练黑盒模型然后将其压缩为可解释模型) 和 AutoML (为给定数据集自动选择最佳的可解释模型) 的封装器。
  • 特定模型的技巧 – 分层收缩 (HSTree*) 为任何基于树的模型添加超快速正则化;RF+ (MDI+) 提供更灵活的随机森林特征重要性指标。
  • 安装pip install imodels (Python 3.10-3.13, NumPy ≥ 2.0)。徽章显示了 MIT 许可证、PyPI 版本、下载次数、CI 状态和 JOSS 论文。
  • 文档与演示 – 在线文档、JOSS 研究论文以及多个 Jupyter notebooks (快速入门、临床决策规则示例、事后分析、不确定性估计、Autogluon AutoML 演示)。

典型用法 (详见 README)

from imodels import get_clean_dataset, HSTreeClassifierCV
from sklearn.model_selection import train_test_split

X, y, feature_names = get_clean_dataset('csi_pecarn_pred')
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)

model = HSTreeClassifierCV(max_leaf_nodes=4)   # 带有收缩正则化的决策树
model.fit(X_train, y_train, feature_names=feature_names)

preds = model.predict(X_test)
preds_proba = model.predict_proba(X_test)
print(model)   # 打印决策树的紧凑文本表示

输出显示了一个只有四个叶节点的微型决策树,说明了该库专注于简洁的模型。

重要意义 – 现代集成模型 (随机森林、梯度提升树、深度网络) 通常能达到很高的准确率,但具有不透明性。imodels 让用户可以用基于规则或稀疏线性的替代方案来替换许多此类黑盒模型,这些替代方案在保持预测性能的同时具有透明性易于审计评估速度快

后续步骤 – README 指向了两个配套项目:

  • 用于文本可解释性的 imodelsX
  • 用于表格数据代理驱动可解释性的 agentic-imodels

以上所有信息均直接取自仓库的 README;未添加任何外部假设。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目