gpt4 book ai didi

python - 如何在 MinMaxScaler 中对矩阵中的列使用 inverse_transform

转载 作者:行者123 更新时间:2023-11-28 20:59:36 26 4
gpt4 key购买 nike

我根据它的列缩放了一个矩阵,如下所示:

scaler = MinMaxScaler(feature_range=(-1, 1))
data = np.array([[-1, 2], [-0.5, 6], [0, 10], [1, 18]])
scaler = scaler.fit(data)
data_scaled = scaler.transform(data)

data_scaled 给了我以下内容:

array([[-1. , -1. ],
[-0.5, -0.5],
[ 0. , 0. ],
[ 1. , 1. ]])

这是期望的输出。但是,我试图反转该矩阵第一列的缩放比例,所以我尝试了以下操作(错误显示在每行代码下方):

scaler.inverse_transform(data_scaled[:,1].reshape(1,-1))
Traceback (most recent call last):
File "c:\anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2862, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-38-6316f51586e7>", line 1, in <module>
scaler.inverse_transform(data_scaled[:,1].reshape(1,-1))
File "c:\anaconda3\lib\site-packages\sklearn\preprocessing\data.py", line 385, in inverse_transform
X -= self.min_
ValueError: operands could not be broadcast together with shapes (1,4) (2,) (1,4)

另外,我试过:

scaler.inverse_transform(data_scaled[:,1].reshape(-1,1))
Traceback (most recent call last):
File "c:\anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2862, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-39-397382ddb3fd>", line 1, in <module>
scaler.inverse_transform(data_scaled[:,1].reshape(-1,1))
File "c:\anaconda3\lib\site-packages\sklearn\preprocessing\data.py", line 385, in inverse_transform
X -= self.min_
ValueError: non-broadcastable output operand with shape (4,1) doesn't match the broadcast shape (4,2)

那么,如何重新缩放该矩阵的第一列?

最佳答案

scaler 记住您向它传递了一个包含两列的 2D 输入,并假设传递给它的所有后续数据都将具有相同数量的特征/列。

如果它只是您想要的第一列,您仍然需要向inverse_transform 传递一个具有相同列数 的输入。从结果中取出第一列并丢弃其余列。

scaler.inverse_transform(data_scaled)[:, [0]]

array([[-1. ],
[-0.5],
[ 0. ],
[ 1. ]])

这有点浪费,但也是 sklearn API 的限制。

关于python - 如何在 MinMaxScaler 中对矩阵中的列使用 inverse_transform,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49330195/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com