我在名为“training_net.py”的脚本上创建并保存了一个神经网络。 根据sklearn网站(http://scikit-learn.org/stable/modules/neural_networks_supervised.html#tips-on-practical-use)的建议,我缩放了训练集,并使用相同的缩放器进行测试集。
现在我有一个名为“prediction.py”的脚本,它将参数矢量和在“training_net.py”中创建的神经网络作为输入,并将分类作为输出。
我怀疑是在“prediction.py”中缩放输入。我想我应该使用我在“training_net.py”中使用的相同转换来缩放输入,但我不明白如何从使用的缩放器获取转换参数。
当我做scaler.get_params()时,我只是得到以下信息: {'copy':True,'with_mean':True,'with_std':True}
这是一个小代码提取,以更好地展示我的意思。
training_net.py
#scale training and test data
scaler = StandardScaler()
scaler.fit(training_data)
training_data = scaler.transform(training_data)
test_data = scaler.transform(test_data)
clf.fit(training_data, training_label)
nn_name = "NN.pkl"
joblib.dump(clf, nn_name)
clf = joblib.load(nn_name)
print clf.score(test_data, test_label)
prediction.py
model_name = "NN.pkl"
clf = joblib.load(model_name)
#need to scale input_parameters before predicting!
#?
print clf.predict(input_parameters)
答案 0 :(得分:0)
正如Vivek Kumar在评论中回答的那样,足以腌制标准缩放器。
joblib.dump(scaler, "scaler.pkl")
在这里您还可以找到我在第一次搜索时找不到的类似问题(和答案): How to store scaling parameters for later use