python - 使用 catboost 作为估计器时 RFECV 抛出错误
问题描述
我想利用 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'
我似乎找不到任何解决此问题的文档。有什么解决办法吗?
解决方案
推荐阅读
- python - 不确定如何开始使用 NLP 分析用户反馈
- python - Python macOS 构建从终端运行,但在 Finder 启动时崩溃
- asp.net - 如何在 asp.net core mvc 中配置密码重置 tokenlifespan
- javascript - React Js 中的月份选择器问题
- javascript - v-autocomplete "搜索" 以获取数据槽中的更多信息
- python - 匹配停用词组并替换为 Pyspark 中的空格
- typescript - 将 Angular 项目更新为 10 后出现 jsPDF 错误
- android - 在 Android 上使用 React Native 进行电话身份验证
- vue.js - Vue.js 延迟加载两次加载块文件
- python - 查找两个方向梯度直方图特征之间的距离