本人初学一段时间,因为模型只包含一层输入层和LSTM,所以采用了
min_max_scaler = preprocessing.MinMaxScaler()
data_array = min_max_scaler.fit_transform(data_array)
这样的预先归一化的方法,训练数据的最大最小范围在8000~10000,训练完毕后该如何对测试和真实预测数据进行归一化呢,两个疑惑:
1.测试与预测数据范围与训练数据不同,出现了6000或者更低更高的情况,这种情况下sklearn的函数训练MAX,MIN与真实情况不一样,该如何处理?
2.训练数据batch较大为128,预测数据只有1size,这种在代码上如何处理?
另外,能否给出完整的代码区分训练,测试,预测呢,BN的处理也行,非常感谢,使用的是tensorflow
1个回答
我觉得你不能分别对train和test做标准化,不然就会有问题。你应该对train做标准化,然后用标准化的结果作用在test上。
比如
# 对整个训练集标准化
min_max_scaler = preprocessing.MinMaxScaler()
train_scaled = min_max_scaler.fit_transform(train)
# 利用上面的min_max_scaler对某一个测试样本进行标准化
test_sample_scaled = min_max_scaler.transform(test_sample)
至于第二个问题,本来predict的时候就是一个个进行预测的,没有所谓的batch吧
SofaSofa数据科学社区DS面试题库 DS面经