校准分类器中如何处理分类变量?

时间:2019-12-23 15:11:52

标签: categorical-data calibration catboost

我正在处理catboost模型的校准曲线。

cat = CatBoostClassifier()

calib = CalibratedClassifierCV(base_estimator = cat,method ='Sigmoid',cv = 2)

calib.fit(XX,yy,cat_features = ??)

如何在校准的分类器中处理分类变量?

谢谢:)

2 个答案:

答案 0 :(得分:0)

您需要在模型构造函数期间传递分类索引。 在您的情况下:

cat=CatBoostClassifier(cat_features=categorical_positions)

,然后按照您的书写继续。

categorical_positions是分类特征索引的列表。

答案 1 :(得分:0)

问题是sklearn CalibratedClassifierCV不支持字符串值。 要解决此问题,您需要将分类特征的字符串值更改为整数值(例如,枚举它们)。由于您在CatBoostClassifier的cat_features参数中提到了CatBoost,因此CatBoost仍将它们视为类别,因此指标将相同。