18

svm 分類子のトレーニングに使用するデータセットの中心化を提供するスケーリングsklearn.preprocessing.scaleモジュールを適用したいと考えています。scikit-learn

次に、標準化パラメータを保存して、分類したいデータにも適用できるようにするにはどうすればよいですか?

を使用できることはわかってstandarScalerいますが、分類器を実行するたびにデータに合わせる必要がないように、何らかの方法でファイルにシリアル化できますか?

4

4 に答える 4

11

fitこれは最も一般的なオプションであるため、最善の方法は post をピクルすることだと思います。おそらく、後で特徴抽出器とスケーラーの両方で構成されるパイプラインを作成することになるでしょう。(おそらく複合) ステージをピクルすることで、物事をより一般的にしています。モデルの永続性に関する sklearn のドキュメントでは、これを行う方法について説明しています。

そうは言ってもsklearn.preprocessing.StandardScaler、適合パラメーターを照会できます。

scale_ : ndarray, shape (n_features,) フィーチャごとのデータの相対スケーリング。バージョン 0.17 の新機能: 非推奨の std_ の代わりに scale_ が推奨されます。 mean_ : 形状を持つ float の配列 [n_features] トレーニング セット内の各特徴の平均値。

次の短いスニペットはこれを示しています。

from sklearn import preprocessing
import numpy as np

s = preprocessing.StandardScaler()
s.fit(np.array([[1., 2, 3, 4]]).T)
>>> s.mean_, s.scale_
(array([ 2.5]), array([ 1.11803399]))
于 2016-03-11T16:22:57.787 に答える
3

joblib モジュールを使用して、スケーラーのパラメーターを保存できます。

from joblib import dump
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
scaler.fit(data)
dump(scaler, 'scaler_filename.joblib')

後でスケーラーをロードできます。

from joblib import load
scaler = load('scaler_filename.joblib')
transformed_data = scaler.transform(new_data)
于 2020-09-24T17:09:35.480 に答える