2016-06-27 12 views
8

Boston Housing Data Set'i kullanarak scikit-learn ve Machine Learning öğrenmeye çalışıyorum. Bu yeni model clf_sgd dayanarak scikit-learn: 'y' öngörülen sonucu geri ölçekleme

# I splitted the initial dataset ('housing_X' and 'housing_y') 
from sklearn.cross_validation import train_test_split 
X_train, X_test, y_train, y_test = train_test_split(housing_X, housing_y, test_size=0.25, random_state=33) 

# I scaled those two datasets 
from sklearn.preprocessing import StandardScaler 
scalerX = StandardScaler().fit(X_train) 
scalery = StandardScaler().fit(y_train) 
X_train = scalerX.transform(X_train) 
y_train = scalery.transform(y_train) 
X_test = scalerX.transform(X_test) 
y_test = scalery.transform(y_test) 

# I created the model 
from sklearn import linear_model 
clf_sgd = linear_model.SGDRegressor(loss='squared_loss', penalty=None, random_state=42) 
train_and_evaluate(clf_sgd,X_train,y_train) 

, ben X_train ilk örneği dayalı y tahmin etmeye çalışıyorum.

X_new_scaled = X_train[0] 
print (X_new_scaled) 
y_new = clf_sgd.predict(X_new_scaled) 
print (y_new) 

Ancak, sonuç benim için oldukça garip (yerine 20-30 arasında 1.34032174, evlerin fiyatının aralık)

[-0.32076092 0.35553428 -1.00966618 -0.28784917 0.87716097 1.28834383 
    0.4759489 -0.83034371 -0.47659648 -0.81061061 -2.49222645 0.35062335 
-0.39859013] 
[ 1.34032174] 

Bu 1.34032174 değeri düşürüp gerektiğini tahmin olduğunu, ama başarmaksızın bunu nasıl yapacağımı anlamaya çalışıyorum. Herhangi bir ipucu açığız. Çok teşekkür ederim.

+0

Ben hedef değişkeni ölçekleme uygulamak gerekir sanmıyorum. Ölçekleme ve diğer özellik mühendisliği teknikleri sadece özellik vektörlerinde uygulanır. –

cevap

11

Sen scalery nesnesi kullanılarak inverse_transform kullanabilirsiniz:

y_new_inverse = scalery.inverse_transform(y_new) 
+0

Teşekkür ederim. İşe yarıyor. Aslında (ve açıkça), sonuç 'y_train' değerine oldukça benzerdir. – Hookstark