一起规范化所有数据

Normalize all data together

下面是简单的代码。我想像一列一样规范化所有数据。但是我有:

from sklearn.preprocessing import MinMaxScaler

data = [[-1, 2], [-0.5, 6], [0, 10], [1, 18]]
scaler = MinMaxScaler()
print(data)
print(scaler.fit_transform(data))

[[-1, 2],
 [-0.5, 6],
 [0, 10],
 [1, 18]]

[[0.   0.  ]
 [0.25 0.25]
 [0.5  0.5 ]
 [1.   1.  ]]

Python 分隔列并分别对其进行归一化。所以我们在两列中有相同的值。原则上,我可以将第一列和第二列合并为一个,然后拆分。但我不认为那个想法是最好的。

欢迎任何想法...

更新:

我不想要每列的规范化数据。 我要了

from sklearn.preprocessing import MinMaxScaler

data = [[-1], [-0.5], [0], [1], [2], [6], [10], [18]]
scaler = MinMaxScaler()
print(data)
print(scaler.fit_transform(data))

[[-1], [-0.5], [0], [1], [2], [6], [10], [18]]

[[0.        ]
 [0.02631579]
 [0.05263158]
 [0.10526316]
 [0.15789474]
 [0.36842105]
 [0.57894737]
 [1.        ]]

但我还是希望它有两列。

像这样:

[[0.        , 0.15789474]
 [0.02631579, 0.36842105]
 [0.05263158, 0.57894737]
 [0.10526316, 1.        ]]

在您的情况下,您应该简单地应用最小-最大缩放器转换公式,而不是使用 sklearn 模块:

import numpy as np

data = [[-1, 2], [-0.5, 6], [0, 10], [1, 18]]
print(data)
print((data-np.min(data))/(np.max(data)-np.min(data))) 

[[-1, 2], [-0.5, 6], [0, 10], [1, 18]]

[[0.         0.15789474]
 [0.02631579 0.36842105]
 [0.05263158 0.57894737]
 [0.10526316 1.        ]]