保存StandardScaler()模型以用于新数据集

时间:2018-11-05 10:33:24

标签: python-3.x scikit-learn

如何在Sklearn中保存StandardScaler()模型?我需要使模型可操作,并且不想一次又一次地加载训练数据,以便StandardScaler学习然后将其应用于要进行预测的新数据。

import airflow
from airflow import models, settings
from airflow.contrib.auth.backends.password_auth import PasswordUser
user = PasswordUser(models.User())
user.username = 'new_user'
user.email = 'newuser@example.com'
user._set_password = 'mypassword'.encode('utf8')
session = settings.Session()
session.add(user)
session.commit()
session.close()

2 个答案:

答案 0 :(得分:1)

您可以使用joblib dump 功能保存标准缩放器模型。这是一个完整的示例供参考。

from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris

data, target = load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(data, target)

sc = StandardScaler()
X_train_std = sc.fit_transform(X_train)

如果要保存 sc 标准呼叫者,请使用以下

from sklearn.externals.joblib import dump, load
dump(sc, 'std_scaler.bin', compress=True)

这将创建文件std_scaler.bin并保存sklearn模型。

要稍后阅读模型,请使用 load

sc=load('std_scaler.bin')

答案 1 :(得分:0)

或者,如果您想泡菜:

import pickle
pickle.dump(sc, open('file/path/scaler.pkl','wb'))

sc = pickle.load(open('file/path/scaler.pkl','rb'))