这是我的代码
scaler = MinMaxScaler() #default set 0~1
dataset= scaler.fit_transform(dataset)
...
make model
...
predicted = model.predict(X_test) #shape : (5, 1)
当我运行predict = scaler.inverse_transform(predicted)
ValueError
发生ValueError: non-broadcastable output operand with shape (5,1) doesn't match the broadcast shape (5,2)
我的模型有2个功能作为输入
我在多个方向上尝试了scaler.inverse_transform(predict)[:, [0]]
和reshape
但发生相同的ValueError
我该如何解决这个问题?请给我一些建议
我需要您的宝贵意见,将不胜感激。
答案 0 :(得分:0)
您以错误的方式使用inverse_transform
:将fit_transform
用于您的功能,而您将inverse_transform
用于您的预测,它们的形状不同,因此会出现错误。
这不是inverse_transform
的预期用法;进一步了解docs:
inverse_transform (自己,X)
根据feature_range撤消X的缩放比例。
参数:X:类似数组的形状[n_samples,n_features]
将要转换的输入数据。不能稀疏。
从您的帖子中还不清楚为什么您试图“转换回”您的预测;仅当您已经转换了标签时才有意义(如果您这样做,则尚无法从您的帖子中得知),并且例如要在标签的原始比例中缩减MSE之类的度量。在这种情况下,您应该为标签使用单独的缩放器-有关详细信息,请参见How to interpret MSE in Keras Regressor中的答案(示例与StandardScaler
相同,但原理相同)。