cyb*_*ric 2 python scikit-learn
我根据其列缩放矩阵,如下所示:
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)
Run Code Online (Sandbox Code Playgroud)
在data_scaled
给我的情况如下:
array([[-1. , -1. ],
[-0.5, -0.5],
[ 0. , 0. ],
[ 1. , 1. ]])
Run Code Online (Sandbox Code Playgroud)
这是所需的输出。但是,我试图逆转此矩阵第一列的缩放比例,所以我尝试了以下操作(错误显示在每行代码下方):
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)
Run Code Online (Sandbox Code Playgroud)
另外,我尝试了:
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)
Run Code Online (Sandbox Code Playgroud)
那么,如何重新缩放该矩阵的第一列呢?
小智 14
sklearn.preprocessing.MinMaxScaler 具有 min_ 和 scale_ 等属性
您可以将该特定列的这些属性转移到一个新的空 minmaxscaler 来解决您的问题。
属性转移
scaler
请记住,您将其传递给具有两列的2D输入,并假设传递给它的所有后续数据将具有相同数量的要素/列。
如果仅是您想要的第一列,则仍然需要传递inverse_transform
具有相同列数的输入。从结果中获取第一列,并丢弃其余的列。
scaler.inverse_transform(data_scaled)[:, [0]]
array([[-1. ],
[-0.5],
[ 0. ],
[ 1. ]])
Run Code Online (Sandbox Code Playgroud)
这有点浪费,但这是sklearn API的局限性。
归档时间: |
|
查看次数: |
8846 次 |
最近记录: |