Возможно ли создать графики частичной зависимости (PDP) из модели Catboost? - PullRequest
0 голосов
/ 05 марта 2020

Я успешно сгенерировал графики 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?

...