Próbuję się nauczyć scikit-learn
i uczenia maszynowego przy użyciu zestawu danych Boston Housing.scikit-learn: jak zmniejszyć poprzedni wynik "y"
# 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)
Na podstawie tego nowego modelu clf_sgd
, staram się przewidzieć y
na podstawie pierwszej instancji X_train
.
X_new_scaled = X_train[0]
print (X_new_scaled)
y_new = clf_sgd.predict(X_new_scaled)
print (y_new)
Jednak wynik jest dość dziwne dla mnie (1.34032174
zamiast 20-30
, zakres cen domów)
[-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]
myślę, że ta wartość 1.34032174
powinna być zmniejszona, ale próbuję dowiedzieć się, jak to zrobić bez powodzenia. Każda wskazówka jest mile widziany. Dziękuję Ci bardzo.
Nie sądzę, trzeba zastosować skalowanie na zmiennej docelowej. Skalowanie i inne techniki inżynierii cech są stosowane tylko w wektorach cech. –