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

基于GridSearchCV优化召回率的RBF SVC模型:如何获取精确率?

解决GridSearchCV最优模型精确率获取问题

嗨,我来帮你搞定这个精确率的获取问题!其实有两种简单的方法可以拿到最优模型的精确率,下面给你一步步拆解:


方法一:从已有的GridSearchCV结果中提取(如果提前配置了多评分指标)

如果你在初始化GridSearchCV的时候,除了指定召回率作为优化目标,还同时设置了追踪精确率,那直接从cv_results_里取就行:

# 假设你的GridSearchCV对象叫grid_search
# 获取最优参数对应的索引
best_idx = grid_search.best_index_
# 提取该索引对应的交叉验证精确率均值
best_precision = grid_search.cv_results_['mean_test_precision'][best_idx]

不过要注意,只有当初始化GridSearchCV时用了多评分参数才会有这个字段,比如:

from sklearn.model_selection import GridSearchCV
from sklearn.svm import SVC

# 定义参数网格
param_grid = {'gamma': [0.001, 0.01, 0.1, 1]}
# 初始化GridSearchCV,同时追踪召回率和精确率
grid_search = GridSearchCV(estimator=m, 
                           param_grid=param_grid, 
                           scoring={'recall': 'recall', 'precision': 'precision'},
                           refit='recall',  # 按召回率选择最优模型
                           cv=5)
grid_search.fit(X_train, y_train)

方法二:用最优模型重新计算精确率(如果没配置多评分指标)

如果已经跑完了GridSearchCV,没设置多评分指标也没关系,直接用它给出的最优模型来计算:

from sklearn.metrics import precision_score

# 获取最优模型
best_model = grid_search.best_estimator_
# 用最优模型对测试集(或验证集)做预测
y_pred = best_model.predict(X_test)
# 计算精确率
best_precision = precision_score(y_test, y_pred)

最后计算差值

现在你已经有了召回率(1)和精确率,直接算差值就行:

difference = 1 - best_precision

简单来说,GridSearchCV默认只会保存你指定的优化指标结果,所以如果只盯召回率跑的,就得手动用最优模型算精确率。要是想下次直接拿到所有需要的指标,记得初始化时设置多评分参数哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:39:18