深度学习

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

2019-03-21  本文已影响0人  庵下桃花仙

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

绘制验证分数(删除前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个),避免出现过拟合。

上一篇下一篇

猜你喜欢

热点阅读