用Yellowbrick绘制CatBoostClassifier的学习曲线

时间:2020-05-23 01:44:25

标签: python machine-learning catboost yellowbrick

我正在尝试为CatBoostClassifier绘制学习曲线。 当我从yellowbrick中将CatBoostClassifier装入LearningCurve时,会发生错误。 我认为这应该可行,因为CatBoost与sklearn兼容,而Yellow brick是sklearn扩展。

代码段:

kf = RepeatedStratifiedKFold(n_splits=10, n_repeats=3, random_state=0)
sizes = np.linspace(0.2, 1.0, 10)
estimator = CatBoostClassifier(
    iterations=42, learning_rate=0.3, max_depth=10)

visualizer = LearningCurve(
    estimator, cv=kf, scoring='accuracy', train_sizes=sizes, n_jobs=-1
)

visualizer.fit(X, y)
visualizer.show()

错误:

... yellowbrick.exceptions.YellowbrickTypeError:无法为非估算器检测模型名称:

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

您可以使用第三方估算器的包装器,more details。我试过了,它奏效了。像这样:

from yellowbrick.classifier import ROCAUC
from yellowbrick.contrib.wrapper import wrap

catboost_model = CatBoostClassifier()
model = wrap(catboost_model)
visualizer = ROCAUC(model)
visualizer.fit(X_train, y_train)
visualizer.score(X_test, y_test)
visualizer.show()

答案 1 :(得分:-1)

我可以绘制XGBClassifier的学习曲线,我认为它也应适用于CatBoostClassifier。 visualizer.show()不会起作用。使用visualizer.poof()绘制图。