scikit-learn: comment à l'échelle de retour le 'y' résultat prévu

J'essaie d'apprendre à scikit-learn et d'Apprentissage de la Machine à l'aide de la Boston Logement de l'Ensemble de Données.

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

Basé sur ce nouveau modèle clf_sgd, je suis en train d'essayer de prédire la y basé sur la première instance de X_train.

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

Cependant, le résultat est assez étrange pour moi (1.34032174, au lieu de 20-30, la gamme de prix des maisons)

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

Je suppose que ce 1.34032174 valeur doit être revu à la baisse, mais je suis à essayer de comprendre comment le faire, sans succès. Tout conseil est le bienvenu. Je vous remercie beaucoup.

Je ne pense pas que vous devez appliquer la mise à l'échelle sur votre variable cible. Mise à l'échelle et d'autres disposent de techniques de génie sont appliqués uniquement sur les fonction de vecteurs.

OriginalL'auteur Hookstark | 2016-06-27