使用飞桨重写房价预测课程中的归一化疑问
收藏
课程百度架构师手把手教深度学习>使用飞桨重写房价预测模型中使用的归一化,我觉得有点问题。
源代码如下
maximums, minimums, avgs = training_data.max(axis=0), training_data.min(axis=0), \
training_data.sum(axis=0) / training_data.shape[0]
# 记录数据的归一化参数,在预测时对数据做归一化
global max_values
global min_values
global avg_values
max_values = maximums
min_values = minimums
avg_values = avgs
# 对数据进行归一化处理
for i in range(feature_num):
#print(maximums[i], minimums[i], avgs[i])
data[:, i] = (data[:, i] - avgs[i]) / (maximums[i] - minimums[i])
为什么这里要用训练数据的最大,最小,均值来对全体数据进行归一化呢?不应该用全体数据的最大,最小,均值来进行归一化吗?
0
收藏
请登录后评论
全体数据是指训练数据和测试数据么?用训练数据是OK的,因为测试数据相当于未知的,只是拿来看效果呢
楼上正解~~
多谢多谢
这里给一个建议,标准化的效果会好于归一化~~
就是,就是
嗯,确实如此,开发套件里就用标准化
就是得自己算均值和标注差。为什么不自动算呢?
可能是因为速度吧,反正也得一个batch、一个batch的算最后再加和平均,算方差。如果数据集换了这个还是得手动维护?
自动?怎么说
求均值和标准差不是直接用变量来计算的吗?变量变了结果不也能边了
我想框架如果每次载入数据算一次均值与方差,但后来想想,这会导致效率下降
因为大的数据集只能分batch读,那样就得先读一个epoch数据只用作算这两个参数了