scikit-learn:如何缩放回预测结果中的 'y'

9 浏览
0 Comments

scikit-learn:如何缩放回预测结果中的 'y'

我正在尝试使用波士顿房屋数据集学习scikit-learn和机器学习。

我将初始数据集('housing_X'和'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)

我对这两个数据集进行了缩放:

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)

我创建了模型:

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)

基于这个新的模型clf_sgd,我正在尝试根据X_train的第一个实例预测y。

X_new_scaled = X_train[0]

print (X_new_scaled)

y_new = clf_sgd.predict(X_new_scaled)

print (y_new)

然而,对我来说结果相当奇怪(1.34032174,而不是房屋价格的范围20-30)。

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

我猜这个值1.34032174应该被还原,但我一直在尝试找出如何做到这一点,但没有成功。欢迎任何提示。非常感谢。

0