Я успешно сгенерировал графики PDP из модели (sklearn) LogisticRegression
с использованием pdpbox (см. Ниже):
from pdpbox import pdp
# load model
model = pickle.load(open('logistic_model.sav', 'rb'))
# pdp_plot (https://pdpbox.readthedocs.io/en/latest/pdp_plot.html)
for i, feat in enumerate(list_features):
# increase i by 1 to help with name formatting
n_feat = i + 1
# pdp_isolate (https://pdpbox.readthedocs.io/en/latest/pdp_isolate.html)
pdp_dove = pdp.pdp_isolate(model=model,
dataset=df_train,
model_features=list_features,
feature=feat)
# generate plot
fig, axes = pdp.pdp_plot(pdp_isolate_out=pdp_dove,
feature_name=feat,
plot_pts_dist=True)
# save figure
if n_feat < 10:
n_feat = '0{0}'.format(n_feat)
# save figure
plt.savefig('{0}_pdp_{1}.png'.format(n_feat, feat))
Однако я хотел бы создать аналогичные графики с использованием модели Catboost. Возможно ли это с моделью, содержащей категориальные признаки? Я пробовал функцию get_feature_importance()
с type='PredictionDiff'
из документации Catboost , но безуспешно. Кто-нибудь смог успешно сгенерировать PDP-графики из модели Catboost?