Scikit-learn:如何缩小“y”预测结果的范围

56

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

# 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)
根据这个新模型 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的值应该要缩小,但是我一直在试图找出如何做到却没有成功。欢迎任何提示。非常感谢。


6
我认为你不需要对目标变量进行缩放。缩放和其他特征工程技术仅应用于特征向量。 - Abhinav Arora
2个回答

66

您可以使用inverse_transform函数并传入您的scalery对象:

y_new_inverse = scalery.inverse_transform(y_new)

5
现在还有一个元估计器可以自动处理这个问题,详见TransformedTargetRegressor - mloning

15

来晚了一点: 不要缩放你的 y。通过缩放 y,你实际上失去了计量单位。回归或损失优化实际上取决于特征之间的相对差异。顺便说一下,对于房屋价格(或任何其他货币价值),通常会使用对数。然后,显然需要进行一个 numpy.exp() 操作才能回到实际的美元/欧元/日元...


1
在某些情况下,我认为你确实需要对y值进行缩放,否则可能会导致各种问题。其中一个问题似乎是在某些情况下执行时间的增加。我在使用sklearn.neural_network.MLPRegressor时就遇到了这个问题,当我不对y进行缩放时,执行时间大大增加。然后当我重新引入y的缩放时,执行时间又大大减少了。另请参阅https://stats.stackexchange.com/questions/111467/is-it-necessary-to-scale-the-target-value-in-addition-to-scaling-features-for-re - undefined
1
对于像房价这样的一般回归案例,我说不要对其进行缩放。可能我应该使用术语“转换”,即如果没有必要,就不要进行缩放。例如,从美元转换为千美元是可以的,但通常不需要使用标准缩放器。无论如何,预测结果需要转换回原始单位...这是很多新手容易忽略的事情 :-) - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接