CatBoost 中的错误? CatBoostClassifier 不适用于 sklearn 的 CalibratedClassifierCV

Posted

技术标签:

【中文标题】CatBoost 中的错误? CatBoostClassifier 不适用于 sklearn 的 CalibratedClassifierCV【英文标题】:Bug in CatBoost? CatBoostClassifier doesn't work well with sklearn's CalibratedClassifierCV 【发布时间】:2019-10-25 08:52:55 【问题描述】:

catboost 版本:0.16

当尝试使用 scikit-learn 的 CalibratedClassifierCV 校准类概率估计时,在二进制分类问题中,我得到的只是负目标的 1 和正目标的 0。如果我单独使用CatBoostClassifier,我会得到正常的概率。这让我相信这个分类器与校准技术不兼容。有没有办法解决这个问题? 重现:

from catboost import CatBoostClassifier
from sklearn.calibration import CalibratedClassifierCV
from sklearn.datasets import make_classification

X, y = make_classification(100, 10)

cat = CatBoostClassifier(verbose=0)
calib = CalibratedClassifierCV(base_estimator=cat, method='sigmoid', cv=2)
cat.fit(X, y)
calib.fit(X, y)
print(cat.predict_proba(X))
print(calib.predict_proba(X))

【问题讨论】:

【参考方案1】:

这是 CatBoost 的一个未解决问题。请检查 open issue here.

【讨论】:

以上是关于CatBoost 中的错误? CatBoostClassifier 不适用于 sklearn 的 CalibratedClassifierCV的主要内容,如果未能解决你的问题,请参考以下文章

BaggingClassifier 和具有分类特征的 CatBoost 无法正常工作

CatBoost 是如何自动高级处理类别特征的?

_catboost.CatBoostError: C:/Program Files (x86)/Go Agent/pipelines/BuildMaster/catboost.git/catboost

R语言安装catboost包:catboost-R-Windows-1.0.0.tgz

R语言构建catboost模型:构建catboost模型并基于网格搜索获取最优模型参数(Select hyperparameters)计算特征重要度

30 分钟看懂 CatBoost(Python代码)