我有一个DataFrame X
,其中有一个名为target
的列,具有10个不同的标签:[0,1,2,3,4,5,6,7,8,9]
。我有一个机器学习model
,比方说:model=AdaBoostClassifier()
我想通过执行交叉验证过程来训练模型来拟合数据并再次预测标签。我使用两个指标进行交叉验证:accuracy
和neg_mean_squared_error
,以评估性能并计算比率:neg_mean_squared_error/accuracy
。这些行就像:
model.seed = 42
outer_cv = StratifiedKFold(n_splits=10, shuffle=True, random_state=1)
scoring=('accuracy', 'neg_mean_squared_error')
scores = cross_validate(model, X.drop(target,axis=1), X[target], cv=outer_cv, n_jobs=-1, scoring=scoring)
scores = abs(np.sqrt(np.mean(scores['test_neg_mean_squared_error'])*-1))/np.mean(scores['test_accuracy'])
score_description = [model,'{model}'.format(model=model.__class__.__name__),"%0.5f" % scores]
但是,每当我开始运行时,都会收到以下错误消息:
ValueError: Samplewise metrics are not available outside of multilabel classification.
我该如何解决指标问题并执行相应的分类?在多标签案例中,我可以使用哪些指标来评估模型的性能?