我正在处理catboost模型的校准曲线。
cat = CatBoostClassifier()
calib = CalibratedClassifierCV(base_estimator = cat,method ='Sigmoid',cv = 2)
calib.fit(XX,yy,cat_features = ??)
如何在校准的分类器中处理分类变量?
谢谢:)
答案 0 :(得分:0)
您需要在模型构造函数期间传递分类索引。 在您的情况下:
cat=CatBoostClassifier(cat_features=categorical_positions)
,然后按照您的书写继续。
categorical_positions是分类特征索引的列表。
答案 1 :(得分:0)
问题是sklearn CalibratedClassifierCV不支持字符串值。 要解决此问题,您需要将分类特征的字符串值更改为整数值(例如,枚举它们)。由于您在CatBoostClassifier的cat_features参数中提到了CatBoost,因此CatBoost仍将它们视为类别,因此指标将相同。