新しいデータセットで使用するために StandardScaler() モデルを保存する 質問する

新しいデータセットで使用するために StandardScaler() モデルを保存する 質問する

StandardScaler() モデルを Sklearn に保存するにはどうすればよいですか? モデルを操作可能にする必要があり、StandardScaler が学習して予測を行う新しいデータに適用するために、トレーニング データを再度ロードしたくありません。

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

#standardizing after splitting
X_train, X_test, y_train, y_test = train_test_split(data, target)
sc = StandardScaler()
X_train_std = sc.fit_transform(X_train)
X_test_std = sc.transform(X_test)

ベストアンサー1

joblibを使うこともできますごみ標準スケーラー モデルを保存する関数。参考までに完全な例を示します。

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 さんstandardscallerは以下を使用します

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

これにより、std_scaler.bin ファイルが作成され、sklearn モデルが保存されます。

後でモデルを読むには負荷

sc=load('std_scaler.bin')

注意:は非推奨です。代わりにsklearn.externals.joblib純粋なものをインストールして使用してください。joblib

おすすめ記事