2016-03-11 26 views
5

Ich möchte das Skalierungsmodul sklearn.preprocessing.scale anwenden, das scikit-learn bietet, um einen Datensatz zu zentrieren, den ich zum Trainieren eines SVM-Klassifikators verwenden werde.So speichern Sie Skalierungsparameter für die spätere Verwendung

Wie kann ich dann die Standardisierungsparameter speichern, damit ich sie auch auf die Daten anwenden kann, die ich klassifizieren möchte?

Ich weiß, dass ich die standarScaler verwenden kann, aber kann ich es irgendwie zu einer Datei serialisieren, so dass ich es nicht jedes Mal an meine Daten anpassen muss, wenn ich den Klassifikator ausführen möchte?

Antwort

2

Ich denke, dass der beste Weg ist es nach fit pickle, wie dies die allgemeinste Option ist. Vielleicht erstellen Sie später eine Pipeline, die aus einem Feature Extractor und einem Scaler besteht. Indem Sie eine (möglicherweise zusammengesetzte) Stufe in Essig einlegen, machen Sie die Dinge generischer. Die sklearn documentation on model persistence erläutert, wie dies zu tun ist.

auch sagen, dass Sie sklearn.preprocessing.StandardScaler für die Anpassungsparameter abfragen können:

scale_: ndarray, Form (n_features,) pro Merkmal relative Skalierung der Daten. Neu in Version 0.17: scale_ wird anstelle von deprected std_ empfohlen. mean_: Array von Schwimmern mit Form [n_features] Der Mittelwert für jedes Merkmal im Trainingssatz.

Der folgende kurze Schnipsel verdeutlicht dies:

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