我正在尝试使用带有以下代码的 iris 数据集的Catboost包:
from sklearn.datasets import load_iris
iris = load_iris()
from catboost import CatBoostClassifier
model = CatBoostClassifier(iterations=50,
learning_rate=0.1, depth=4,
loss_function='MultiClass')
from sklearn.model_selection import cross_val_score
scores = cross_val_score(model, iris.data, iris.target)
print(scores)
输出是:
[0. 0. 0.]
为什么分数只有0?我预计它们会接近 1。我尝试调整参数,但结果仍然相同。这些是错误而不是分类准确度吗?感谢您的洞察力。
编辑:似乎 with CatBoostClassifier,cross_val_score()使用KFold()而不是StratifiedKFold(), 因为添加功能解决了这个问题cv=StratifiedKFold()。cross_val_score
使用 sklearn 的分类器,例如LogisticRegressionor SVC,默认cross_val_score使用StratifiedKFold(见这里)。