2016-03-11 18 views
5

Bir svm sınıflandırıcıyı eğitmek için kullanacağım veri kümesini ortalamak için scikit-learn ölçekleme sklearn.preprocessing.scale modülünü uygulamak istiyorum.Daha sonra kullanmak için ölçeklendirme parametreleri nasıl depolanır

Standartlaştırma parametrelerini, sınıflandırmak istediğim verilere uygulayabilmem için nasıl saklayabilirim?

standarScaler'u kullanabileceğimi biliyorum, ancak bir şekilde onu bir dosyaya serileştirebilirim, böylece sınıflandırıcıyı çalıştırmak istediğim her seferinde verilere uymak zorunda kalmam.

cevap

2

En iyi yolun, bu en genel seçenek olduğundan, fit numaralı gönderiyi almak olduğunu düşünüyorum. Belki daha sonra hem bir özellik çıkarıcıdan hem de ölçekleyiciden oluşan bir boru hattı oluşturacaksınız. Bir (muhtemelen bileşik) aşamada bir şeyler hazırlayarak, işleri daha genel hale getiriyorsunuz. sklearn documentation on model persistence, bunun nasıl yapılacağını anlatıyor.

size uygun parametreler için sklearn.preprocessing.StandardScaler sorgulayabilir, söyledikten:

scale_: Verilerin ndarray, şekli (n_features,) özelliği Başına nispi ölçekleme. Yeni sürüm 0.17: kullanımdan kaldırıldı std_ yerine scale_ önerilir. mean_: şekilli şamandıralar dizisi [n_features] Eğitim setindeki her özellik için ortalama değer.

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

Aşağıdaki kısa pasajı bunu göstermektedir