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

API参考链接: APLRRegressor, APLRClassifier

查看APLR的支持库这里

摘要

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

工作原理

关于APLR的简要介绍以及如何调整APLR模型的信息可以在这里找到here。文章“自动分段线性回归”[1]详细描述了APLR,可以在这里找到here

代码示例

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

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())