自动分段线性回归 (APLR)#
API 参考链接:APLRRegressor, APLRClassifier
请在此处查看 APLR 的后端仓库:here。
摘要
APLR 生成内在可解释的模型。响应变量与其解释变量之间的关系通过分段线性基函数建模。该算法自动处理变量选择、非线性关系和交互作用。实证测试表明,APLR 在预测能力上通常能够与基于树的方法竞争。由于采用分段线性基础学习器,APLR 模型的预测通常比基于树的方法更平滑。APLR 可用于回归任务和分类任务,包括多分类。此实现是 aplr
包的一个轻量级封装,添加了 explain_global
和 explain_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).