我想将交叉验证与catboost
. 由于我不仅想使用catboost
而且还采样,所以我正在使用管道,因此不能使用catboost's
自己的交叉验证(如果我只使用catboost
而不是管道,则可以使用)。所以我想使用sklearn's
交叉验证,如果我只使用数字变量,它就可以正常工作,但只要我还包括分类变量(cat_features
)并使用catboost's
编码,cross_validate
就不再工作了。即使我不使用管道,而只是catboost
单独使用,我也会收到一条KeyError: 0
带有cross_validate
. 但我不明白为什么。这是我不起作用的代码的一部分:
from sklearn.model_selection import cross_validate
model = cb.CatBoostClassifier(**params, cat_features=cat_features)
cv_score = cross_validate(model, X_train, y_train, scoring='roc_auc', cv=5, return_train_score=True)