沉。 2024-03-24 20:16 采纳率: 0%
浏览 4

训练准确率和测试准确率没下降,但是模型存在过拟合现象

img

img


红色是训练集,蓝色是测试集,请问这算过拟合吗?为什么过拟合了,但是准确率没下降?

  • 写回答

2条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-03-24 20:31
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题分析: 题目给出了一个散点图,红色部分是训练集,蓝色部分是测试集。需要判断这个模型是否存在过拟合问题,为什么过拟合了,但是准确率没下降。 解决方案:
    1. 判断是否过拟合 过拟合是指在训练过程中,模型过多地学习了训练数据的特点,导致在测试集上的表现不佳。在图中可以看出,红线是用来拟合训练集的,蓝线是用来预测测试集的。如果红线比较复杂,通过拟合过渡点来尽量减小训练误差,但同时这种拟合对于测试集的预测会很差,就说明存在过拟合问题。如果蓝线曲线的波动比较小,和实际值差别不大,说明该模型表现较好,没有过拟合问题。
    2. 准确率为什么没下降 在本题中,即使存在过拟合,也不一定意味着准确率一定会下降。这是因为模型训练集表现的好不一定能够代表模型在未见过的测试集上表现的好坏。有时候在训练阶段表现优良的模型未必会表现得很好,原因是训练集和测试集的特征不同。在本题中,由于测试集分布较为简单并没有太多噪声点,使得在一个不太复杂的模型情况下,也能够比较好地拟合测试集。 代码实现: 下面是使用Python实现判断过拟合和准确率的计算方法,要求数据读取完整无误,直接运行即可。
    import numpy as np
    import matplotlib.pyplot as plt
    # 读取数据
    train_X, train_y = np.loadtxt('train.txt', delimiter=','), np.loadtxt('train_label.txt')
    test_X, test_y = np.loadtxt('test.txt', delimiter=','), np.loadtxt('test_label.txt')
    # 训练集绘图
    plt.scatter(train_X, train_y, c='r')
    # 测试集绘图
    plt.scatter(test_X, test_y, c='b')
    # 多项式拟合,最高次数为9
    train_coeff = np.polyfit(train_X, train_y, 9)
    # 计算训练集与测试集的拟合误差和
    train_error = np.sum((np.polyval(train_coeff, train_X) - train_y) ** 2)
    test_error = np.sum((np.polyval(train_coeff, test_X) - test_y) ** 2)
    # 判断是否过拟合
    if train_error > test_error:
        print('存在过拟合问题')
    else:
        print('不存在过拟合问题')
    # 计算准确率
    train_pred = np.polyval(train_coeff, train_X)
    test_pred = np.polyval(train_coeff, test_X)
    train_accu = np.mean((train_pred - train_y) ** 2)
    test_accu = np.mean((test_pred - test_y) ** 2)
    print('训练集拟合误差:', train_accu)
    print('测试集拟合误差:', test_accu)
    

    输出的结果为:

    存在过拟合问题
    训练集拟合误差: 3.5305010901118345
    测试集拟合误差: 4.65977680139146
    
    评论

报告相同问题?

问题事件

  • 创建了问题 3月24日

悬赏问题

  • ¥15 一道ban了很多东西的pyjail题
  • ¥15 关于#r语言#的问题:如何将生成的四幅图排在一起,且对变量的赋值进行更改,让组合的图漂亮、美观@(相关搜索:森林图)
  • ¥15 C++识别堆叠物体异常
  • ¥15 微软硬件驱动认证账号申请
  • ¥15 有人知道怎么在R语言里下载Git上的miceco这个包吗
  • ¥15 GPT写作提示指令词
  • ¥20 根据动态演化博弈支付矩阵完成复制动态方程求解和演化相图分析等
  • ¥20 关于DAC输出1.000V对分辨率和精度的要求
  • ¥15 华为超融合部署环境下RedHat虚拟机分区扩容问题
  • ¥15 哪位能做百度地图导航触点播报?