使用catboost作为估计器时RFECV抛出错误

2024-04-29 00:36:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我想利用Catboost执行RFECV: 此处的示例代码:

from sklearn.model_selection import KFold
from sklearn.metrics import roc_auc_score
from sklearn.model_selection import StratifiedKFold
from sklearn.feature_selection import RFECV

from catboost import CatBoostClassifier

def scoring_func(cl, X, Y_true):
    Y_pred = cl.predict_proba(X)[:,1]
    return roc_auc_score(Y_true, Y_pred)

kf = StratifiedKFold(n_splits=5, shuffle=True, random_state=8888)

cl = CatBoostClassifier(
    iterations=100,
    random_seed=63,
    learning_rate=0.05,
    custom_loss='F1',
    loss_function = 'Logloss',
    class_weights = prop,
    l2_leaf_reg = 4
)
selector = RFECV(estimator=cl, cv=kf.split(X_train, y_train), scoring=scoring_func, verbose=1)

selector = selector.fit(X_train, y_train)

这会引发以下错误:

AttributeError: 'CatBoostClassifier' object has no attribute '_get_tags'

我似乎找不到任何解决这个问题的文档。有什么解决办法吗


Tags: fromimportmodelcltrainsklearnselectorscore