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

调用cross_val_score传入return_train_score参数报错的原因咨询

问题解决:cross_val_score不支持return_train_score参数

错误原因

cross_val_score函数本身不支持return_train_score参数,这个参数是cross_validate函数的专属参数。cross_val_score仅返回交叉验证的测试集得分,若要同时获取训练集与测试集的交叉验证得分,必须使用cross_validate。

修正后的完整代码

from sklearn.model_selection import cross_validate
from sklearn.neighbors import KNeighborsClassifier

results_dict = {
    "n_neighbors": [],
    "mean_train_score": [],
    "mean_cv_score": []
}

for k in range(2, 20, 2):
    knn = KNeighborsClassifier(n_neighbors=k)
    # 用cross_validate替代cross_val_score,指定返回训练集得分
    cv_results = cross_validate(knn, X_train, y_train, cv=5, return_train_score=True)
    results_dict['n_neighbors'].append(k)
    # 计算训练得分的均值并存入字典
    results_dict['mean_train_score'].append(cv_results['train_score'].mean())
    # 计算交叉验证测试得分的均值并存入字典
    results_dict['mean_cv_score'].append(cv_results['test_score'].mean())

print(results_dict)

额外修正说明

原代码中append(['train_score'])属于错误写法,会将字符串存入字典而非实际得分值。修正后的代码通过cv_results['train_score'].mean()和cv_results['test_score'].mean()提取每轮交叉验证得分的均值,确保字典存储有效数值结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 16:55:18