将预测缩放回原始形式

Unscale predictions back to original form

这是一个回归问题。

我训练的形状是:(417, 5),测试数据的形状是:(105, 5)。我使用以下代码对两者进行缩放:

from sklearn import preprocessing
import sklearn
from sklearn.preprocessing import MinMaxScaler
#Scale train
scaler = preprocessing.MinMaxScaler()
train_df = scaler.fit_transform(train_df)
train_df = pd.DataFrame(train_df)

#Scale test
test_df = scaler.fit_transform(test_df)
test_df = pd.DataFrame(test_df)

缩放后的前四行训练数据如下所示:

而'4'是因变量,其余是自变量。

使用深度神经网络训练后,我得到了按比例缩放的预测。我尝试使用以下代码取消缩放预测:

scaler.inverse_transform(y_pred_dnn)

而预测存储在 y_pred_dnn

但是我得到以下错误:

ValueError:形状为 (105,1) 的不可广播输出操作数与广播形状 (105,5) 不匹配

如何调试问题?

谢谢

你可以通过在缩放之前分离出 y 来解决这个问题。您不需要缩放 y 来进行预测。所以尝试:

y_train, y_test = train_df.iloc[:, 4], test_df.iloc[:, 4]
X_train, X_test = train_df.iloc[:, 1:4], test_df.iloc[:, 1:4]

在此之后,您只对 X 部分进行缩放,您将不需要任何反向缩放