在sklearn中保存MinMaxScaler模型

发布于 2021-01-29 15:09:01

我正在MinMaxScalersklearn中使用模型来规范模型的功能。

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()将训练数据与结合使用。有没有一种方法可以保存缩放器并稍后从其他文件中加载它?

关注者
0
被浏览
216
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    所以我实际上不是这方面的专家,但是通过一些研究和一些有用的链接,我认为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代替



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看