快速解决:
首先在顶层使用
from sklearn.preprocessing import MinMaxScaler
alter = MinMaxScaler() # 首先在顶层使用
我们只要在之后的使用中,只使用这个alter,例如:
a = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
_a = alter.fit_transform(a)
b = alter.inverse_transform(_a)
这样就可以了,因为我们当时计算归一化的时候使用的是一个实例化过后的alter,所以我们要在逆归一化的时候,也要使用这个alter,另外这里会碰到另外一个问题:
ValueError: operands could not be broadcast together with shapes
这是因为逆归一化时,需要和原来归一化时所用的数据有相同的shape。
我们要做的是拼接和原来的维度保持一致,因为我们当时是使用一个3行3列计算的,我们不可以单独使用一行一列,这种的。
假设我们通过某种计算,类似神经网络得到了最后一列的输出,[3.3], [6.6], [9.9]我们是不可以单独将这一列放进去逆归一化,我们可以
y_ceshi = [3.3], [6.6], [9.9]
rec = [[0]*3 + i for i in y_ceshi]
这样就完成了扩充,可以愉快的计算了
如果在这里代码有问题,可以私聊我,我看到之后可以帮你解决