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的值应该被重新缩放,但我尝试找出如何做却没有成功。欢迎任何建议。非常感谢。


回答:

你可以使用scalery对象的inverse_transform方法:

y_new_inverse = scalery.inverse_transform(y_new)

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注