scordcardpy评分卡模型改动

我想把scordcardpy里面的预测模型替换为autogluon,但是显示错误

card = sc.scorecard(bins, predictor, X_train.columns)

如代码所示,我把里面的lr替换为我的预测模型predictor,但是报错
'TabularPredictor' object has no attribute 'coef_'
请问该怎么改动呢,谢谢

“Devil组”引证GPT后的撰写:

  • 'TabularPredictor'对象没有'coef_'属性,这可能是由于你替换了scikit-learn的线性回归模型(具有'coef_'属性)为autogluon模型(不具有'coef_'属性)。
  • 在使用autogluon模型的情况下,你可以考虑使用模型的特征重要性来代替线性回归模型的系数。autogluon模型可以通过调用predictor.feature_importance()方法来获取特征重要性分数。然后,你可以根据这些分数对模型中的特征进行排序并对其进行规范化,以获取与线性回归系数类似的特征权重。

例如,以下代码演示了如何使用autogluon模型的特征重要性来进行特征权重的计算:

import pandas as pd
from autogluon.tabular import TabularDataset, TabularPredictor

# 加载数据
train_data = TabularDataset('train.csv')

# 定义预测器和目标列
predictor = TabularPredictor(label='target').fit(train_data)

# 计算特征重要性分数
feature_importance = predictor.feature_importance()

# 对特征重要性进行归一化处理并排序
normalized_importance = feature_importance / feature_importance.sum()
sorted_importance = normalized_importance.sort_values(ascending=False)

# 获取特征权重
feature_weights = sorted_importance.values


然后,你可以使用feature_weights来代替线性回归系数,例如:

card = sc.scorecard(bins, feature_weights, X_train.columns)


这种方法并不是完全等同于使用线性回归模型的系数,但是它提供了一种使用autogluon模型进行分数卡构建的替代方法。