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

如何在循环结束后正确计算训练与测试分数的平均值?

问题修正方案

问题原因

你当前代码的问题是没有保存每次迭代的分数,最后计算均值时仅调用了最后一次迭代的模型分数,因此结果只是最后一次的分数值,而非5次迭代的平均值。

修正步骤

  1. 初始化两个空列表,用于存储每次迭代的训练分数和测试分数;
  2. 每次循环计算分数后,将分数添加到对应列表中;
  3. 循环结束后,对列表计算平均值。

修正后的完整代码

from sklearn.model_selection import train_test_split
import numpy as np  # 确保导入numpy库

# 初始化存储分数的列表
train_scores = []
test_scores = []

# 进行5次迭代
for i in range(5):
    X_train, X_test, y_train, y_test = train_test_split(X_normalized, y_for_normalized, test_size=0.1)    
    clf = new_model.fit(X_train, y_train)
    
    # 计算并保存当前迭代的分数
    train_score = clf.score(X_train, y_train)
    test_score = clf.score(X_test, y_test)
    
    train_scores.append(train_score)
    test_scores.append(test_score)
    
    # 打印当前迭代的分数
    print("训练分数:", train_score)
    print("测试分数:", test_score)

# 计算并打印5次迭代的分数均值
print("训练分数的均值为:", np.mean(train_scores))
print("测试分数的均值为:", np.mean(test_scores))

关键说明

  • train_scores和test_scores列表会累计每次迭代的分数,避免了仅保留最后一次结果的问题;
  • np.mean(train_scores)会对列表中所有5个分数计算平均值,这才是你需要的5次迭代的平均结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 15:57:50