美文网首页深度学习
绘制验证分数(删除前10个数据点)

绘制验证分数(删除前10个数据点)

作者: 庵下桃花仙 | 来源:发表于2019-03-21 22:43 被阅读0次

    上张图很难看出规律,需要重新绘制。

    • 删除前10个数据点,因为它们的取值范围与曲线上其他点不同;
    • 将每个数据点替换为前面数据点的指数移动平均值,以便得到光滑的曲线。

    绘制验证分数(删除前10个数据点)

    def smooth_curve(points, factor=0.9):
        smoothed_points = []
        for point in points:
            if smoothed_points:
                previous = smoothed_points[-1]
                smoothed_points.append(previous * factor + point * (1 - factor))
            else:
                smoothed_points.append(point)
        return smoothed_points
    
    smooth_mae_history = smooth_curve(average_mae_history[10:])
    
    plt.plot(range(1, len(smooth_mae_history) + 1), smooth_mae_history)
    plt.xlabel('Epochs')
    plt.ylabel('Validation MAE')
    plt.show()
    
    每轮验证MAE(删除前10个数据点).png

    80轮后开始过拟合。

    训练最终模型

    model = build_model() # 一个全新的编译好的模型
    model.fit(train_data, train_targets,
              epochs=80, batch_size=16, verbose=0) # 在所有训练数据上训练模型
    test_mse_score, test_mae_score = model.evaluate(test_data, test_targets)
    print(test_mae_score)
    
    32/102 [========>.....................] - ETA: 0s
    102/102 [==============================] - 0s 127us/step
    2.5407708579418706
    

    预测的房价和实际价格相差约2500美元。

    小结

    1、回归问题使用的损失函数与分类问题不同。回归问题常用的损失函数为均方误差(MSE);
    2、回归问题使用的评估指标与分类问题不同。常用平均绝对误差(MAE);
    3、输入数据特征取值范围不同,要对数据进行预处理,进行归一化;
    4、若可用数据过少,使用K折验证可以很好评估模型;
    5、如果训练数据少,则使用较少的隐藏层(1到2个),避免出现过拟合。

    相关文章

      网友评论

        本文标题:绘制验证分数(删除前10个数据点)

        本文链接:https://www.haomeiwen.com/subject/wibhvqtx.html