在sklearn中保存MinMaxScaler模型
我正在MinMaxScaler
sklearn中使用模型来规范模型的功能。
training_set = np.random.rand(4,4)*10
training_set
[[ 6.01144787, 0.59753007, 2.0014852 , 3.45433657],
[ 6.03041646, 5.15589559, 6.64992437, 2.63440202],
[ 2.27733136, 9.29927394, 0.03718093, 7.7679183 ],
[ 9.86934288, 7.59003904, 6.02363739, 2.78294206]]
scaler = MinMaxScaler()
scaler.fit(training_set)
scaler.transform(training_set)
[[ 0.49184811, 0. , 0.29704831, 0.15972182],
[ 0.4943466 , 0.52384506, 1. , 0. ],
[ 0. , 1. , 0. , 1. ],
[ 1. , 0.80357559, 0.9052909 , 0.02893534]]
现在,我想使用相同的缩放器来标准化测试集:
[[ 8.31263467, 7.99782295, 0.02031658, 9.43249727],
[ 1.03761228, 9.53173021, 5.99539478, 4.81456067],
[ 0.19715961, 5.97702519, 0.53347403, 5.58747666],
[ 9.67505429, 2.76225253, 7.39944931, 8.46746594]]
但我不想一直scaler.fit()
将训练数据与结合使用。有没有一种方法可以保存缩放器并稍后从其他文件中加载它?
-
所以我实际上不是这方面的专家,但是通过一些研究和一些有用的链接,我认为
pickle
并将sklearn.externals.joblib
成为您的朋友。该软件包
pickle
使您可以将模型或“转储”模型保存到文件中。我认为此链接也有帮助。它讨论了创建持久性模型。您将要尝试的是:
# could use: import pickle... however let's do something else from sklearn.externals import joblib # this is more efficient than pickle for things like large numpy arrays # ... which sklearn models often have. # then just 'dump' your file joblib.dump(clf, 'my_dope_model.pkl')
在这里,您可以了解有关sklearn外部组件的更多信息。
让我知道这是否无济于事,或者我对您的模型不了解。
注意:
sklearn.externals.joblib
已弃用。安装并使用纯joblib
代替