使用Sklearn和Tensorflow反转预测

2024-05-21 06:36:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Python中使用Tensorflow。我成功地进行了预测,现在我在预测的反转方面遇到了问题。也就是说,我使用了Sklearn中的MinMaxScaler,并使用以下代码行规范化数据:

from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler(feature_range = (0,1))
dataset = scaler.fit_transform(df)

模型拟合成功后,我想在数据中进行反演

# make predictions
trainPredict = model.predict(trainX)
testPredict = model.predict(testX)

# Shape of data
trainPredict.shape
(390, 7, 1)

testPredict.shape
(56, 7, 1)

# invert predictions
trainPredict = scaler.inverse_transform(testPredict)
trainY= scaler.inverse_transform([trainY])
testPredict_ = scaler.inverse_transform(testPredict)
testY = scaler.inverse_transform([testY])

执行最后一段代码后,我收到以下消息:

ValueError: Found array with dim 3. Estimator expected <= 2.

有谁能帮我解决这个问题,修复最后一段代码吗


Tags: 数据代码modeltensorflowtrainytransformpredictshape
1条回答
网友
1楼 · 发布于 2024-05-21 06:36:22

MinMaxScaler处理二维数据,其中行对应于样本,列是特征。它们根据每个特征的统计信息进行缩放:最小值、最大值。在预测3d阵列时,模型输出的形状[-1]=1,因此您可以使用np.squeeze来解决该问题

此外,我不认为有任何理由对模型的输出进行逆变换。如果需要将训练数据恢复到其原始未缩放形式,则对其进行逆变换可能很有用。那就是:

trainX_inv = scaler.inverse_transform(trainX)
testX_inv = scaler.inverse_transform(testX)

相关问题 更多 >