2016-03-11 29 views
5

Chcę zastosować moduł skalowania sklearn.preprocessing.scale, który oferuje scikit-learn do centrowania zbioru danych, którego użyję do szkolenia klasyfikatora svm.Jak zapisać parametry skalowania do późniejszego wykorzystania?

Jak mogę zapisać parametry standaryzacyjne, aby móc je zastosować do danych, które chcę sklasyfikować?

Wiem, że mogę korzystać z standarScaler, ale czy mogę jakoś serializować go do pliku, tak że nie będę musiał dopasować go do moich danych za każdym razem, gdy chcę uruchomić klasyfikator?

Odpowiedz

2

Myślę, że najlepszym sposobem jest ogłosić go po fit, ponieważ jest to najbardziej ogólna opcja. Być może później utworzysz potok złożony z ekstraktora funkcji i skalera. Poprzez wytrawianie (prawdopodobnie złożonego) etapu, robisz rzeczy bardziej ogólne. The sklearn documentation on model persistence omawia, jak to zrobić.

Mimo, że można wyszukać sklearn.preprocessing.StandardScaler dla dopasowania parametrów:

scale_: ndarray, kształt (n_features,) Per funkcji względnej skalowanie danych. Nowość w wersji 0.17: zalecana jest metoda scale_ zamiast przestarzałej std_. mean_: tablica pływaków o kształcie [n_features] Średnia wartość dla każdej cechy w zbiorze treningowym.

Poniżej krótki fragment przedstawiono poniżej:

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]))