自动分段线性回归 (APLR)#

API 参考链接:APLRRegressor, APLRClassifier

请在此处查看 APLR 的后端仓库:here

摘要

APLR 生成内在可解释的模型。响应变量与其解释变量之间的关系通过分段线性基函数建模。该算法自动处理变量选择、非线性关系和交互作用。实证测试表明,APLR 在预测能力上通常能够与基于树的方法竞争。由于采用分段线性基础学习器,APLR 模型的预测通常比基于树的方法更平滑。APLR 可用于回归任务和分类任务,包括多分类。此实现是 aplr 包的一个轻量级封装,添加了 explain_globalexplain_local 方法,以便 APLR 模型可以在与 EBM 等模型相同的框架中进行解释。

工作原理

APLR 的简要介绍以及如何调优 APLR 模型可以在这里找到。文章“Automatic piecewise linear regression” [1] 详细描述了 APLR,可在这里找到。

代码示例

以下代码将对乳腺癌数据集训练一个逻辑回归模型。提供的可视化将包含全局解释和局部解释。

from interpret import set_visualize_provider
from interpret.provider import InlineProvider

set_visualize_provider(InlineProvider())
import numpy as np
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.metrics import roc_auc_score

from interpret.glassbox import APLRClassifier
from interpret import show

seed = 42
np.random.seed(seed)
X, y = load_breast_cancer(return_X_y=True, as_frame=True)
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.20, random_state=seed
)

aplr = APLRClassifier(random_state=seed)
aplr.fit(X_train, y_train, X_names=X_train.columns)

auc = roc_auc_score(y_test, aplr.predict_class_probabilities(X_test)[:, 1])
print("AUC: {:.3f}".format(auc))
AUC: 0.996
show(aplr.explain_global())
show(aplr.explain_local(X_test.values[:5], y_test.values[:5]))

更多资源

以下是来自 APLR 后端仓库的更详细的代码示例。如果您将 from aplr import 更改为 from interpret.glassbox import,这些示例在使用 InterpretML 的 APLR 时同样有效。

参考文献

[1] von Ottenbreit, M., De Bin, R. Automatic piecewise linear regression. Comput Stat 39, 1867–1907 (2024).