逻辑回归模型训练过程中,准确率曲线很奇怪

请问逻辑回归模型训练过程中,损失曲线正常,但是准确率曲线很奇怪,测试集保持为一个数不变,可能是什么原因呢?(样本集很小 训练集70 测试集30 服从简单的正态分布)
如图

img

将数据先用 sklearn 打乱下,再划分训练和测试集,再训练

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7424133
  • 你也可以参考下这篇文章:机器学习中训练和验证指标曲线图能告诉我们什么?
  • 除此之外, 这篇博客: 深度学习100例 | 第33天:迁移学习-实战案例教程中的 学习曲线 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 我们看一下使用 MobileNet V2 基础模型作为固定特征提取程序时训练和验证准确率/损失的学习曲线。

    acc = history.history['accuracy']
    val_acc = history.history['val_accuracy']
    
    loss = history.history['loss']
    val_loss = history.history['val_loss']
    
    plt.figure(figsize=(8, 8))
    plt.subplot(2, 1, 1)
    plt.plot(acc, label='Training Accuracy')
    plt.plot(val_acc, label='Validation Accuracy')
    plt.legend(loc='lower right')
    plt.ylabel('Accuracy')
    plt.ylim([min(plt.ylim()),1])
    plt.title('Training and Validation Accuracy')
    
    plt.subplot(2, 1, 2)
    plt.plot(loss, label='Training Loss')
    plt.plot(val_loss, label='Validation Loss')
    plt.legend(loc='upper right')
    plt.ylabel('Cross Entropy')
    plt.ylim([0,1.0])
    plt.title('Training and Validation Loss')
    plt.xlabel('epoch')
    plt.show()
    

    注:如果您想知道为什么验证指标明显优于训练指标,主要原因是 tf.keras.layers.BatchNormalizationtf.keras.layers.Dropout 等层会影响训练期间的准确率。在计算验证损失时,它们处于关闭状态。

    在较小程度上,这也是因为训练指标报告的是某个周期的平均值,而验证指标则在经过该周期后才进行评估,因此验证指标会看到训练时间略长一些的模型。

  • 您还可以看一下 阿勒拉哈老师的深度学习快速入门课程中的 可视化学习曲线小节, 巩固相关知识点