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

GridSearchCV设置多评分参数时传入集合报错,求助解决

解决GridSearchCV多评分指标传入报错问题

问题出在你传入的scoring参数是**集合(set)**类型({'precision', 'recall', 'accuracy', 'f1'}),而GridSearchCV的scoring参数不支持集合,仅接受列表、元组、字典、单个字符串、可调用对象或None。

解决步骤

直接把集合替换成列表或元组即可,若需要自定义各指标的计算方式,也可以用字典形式:

1. 列表/元组形式(最直接)

将原集合的大括号{}改成方括号[](列表)或圆括号()(元组):

# 列表示例
grid_search = GridSearchCV(
    estimator=你的模型实例,
    param_grid=你的参数网格,
    scoring=['precision', 'recall', 'accuracy', 'f1'],  # 用列表包裹
    cv=5
)

# 元组示例(效果和列表一致)
grid_search = GridSearchCV(
    estimator=你的模型实例,
    param_grid=你的参数网格,
    scoring=('precision', 'recall', 'accuracy', 'f1'),  # 用元组包裹
    cv=5
)

2. 字典形式(自定义指标计算规则)

如果需要指定每个指标的具体计算方式(比如分类任务中的平均策略),可以用字典映射:

scoring = {
    'precision': 'precision_macro',  # 宏平均精确率
    'recall': 'recall_micro',        # 微平均召回率
    'accuracy': 'accuracy',
    'f1': 'f1_weighted'              # 加权F1
}

grid_search = GridSearchCV(
    estimator=你的模型实例,
    param_grid=你的参数网格,
    scoring=scoring,
    cv=5,
    refit='accuracy'  # 必须指定用哪个指标选择最优模型
)

补充说明

当传入多个评分指标时,GridSearchCV会为每个参数组合计算所有指标的得分。如果需要基于某个指标选择最优模型,记得在GridSearchCV中设置refit参数(比如上面示例的refit='accuracy'),否则无法直接通过best_estimator_获取最优模型。

内容的提问来源于stack exchange,提问作者JoaHT

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 16:55:05