You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为MultiOutput Classifier计算评估矩阵并解决交叉验证问题

解决MultiOutputClassifier交叉验证失败问题

核心问题分析

  1. cross_val_score仅支持单一评估指标,无法处理多指标的scoring字典,这是代码运行失败的主要原因。
  2. precision_score在多输出场景下必须指定average参数,默认的binary模式不适配多列预测的维度,会引发计算错误。

修正后的代码

from sklearn.model_selection import cross_validate

# 定义多评估指标,明确precision的average参数
scoring = {
    'accuracy': make_scorer(accuracy_score), 
    # 根据任务需求选择average类型:macro/micro/weighted
    'precision': make_scorer(precision_score, average='macro')
}

# 使用cross_validate替代cross_val_score支持多指标评估
results = cross_validate(estimator=linear_svc,
                         X=X_train_,
                         y=y_train_,
                         cv=kfold,
                         scoring=scoring)

关键说明

  • 替换cross_val_score为cross_validate:该函数支持多指标输出,返回的results字典会包含各折交叉验证的得分,例如results['test_accuracy']、results['test_precision']可分别提取对应指标的结果。
  • 关于average参数选择:
    • 'micro':计算全局的真阳性、假阳性、假阴性后求精度
    • 'macro':对每个输出列单独计算精度再取算术平均
    • 'weighted':按各列样本数量加权平均精度
      根据你的业务场景选择合适的参数即可。

内容的提问来源于stack exchange,提问作者Mahmudul Hasan Munna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 16:32:31