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;未添加任何外部假設。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案