我有一个数据框,其中没有空值,且仅包含数值(我已经做了必要的转换)
CATBOOST实现
from catboost import CatBoostRegressorfrom sklearn.model_selection import cross_val_scoreCatBoost_clf=CatBoostRegressor()CatBoost_clf.fit(X, y)print('Train Accuracy',cross_val_score(CatBoost_clf, X_train, y_train, cv=3, scoring='accuracy'))print('Test Accuracy',cross_val_score(CatBoost_clf, X_test, y_test, cv=3, scoring='accuracy'))
错误
> ----> 5 print('Accuracy:',cross_val_score(CatBoost_clf, X, y, cv=3, scoring='accuracy'))> ValueError: 分类指标无法处理二元和连续目标的混合
如何在CATBOOST上计算交叉验证准确率(cv=3或3次验证集迭代)?(输出y的值为0和1)
回答:
你应该使用的是CatBoostClassifier
。
你正在使用CatBoostRegressor
,它是设计用于基于连续值(例如,0.43823)最小化误差的。一个分类器,例如CatBoostClassifier
,接受分类输入值(例如,0或1),这正是你所拥有的。在你的例子中,y
是:
0 11 02 03 04 05 06 1
这显然是分类数据,而不是连续数据。