当前位置:   article > 正文

MinMaxScaler归一化,对每列数据进行归一化_minmax归一化

minmax归一化

先说结果!之前一直用MinMaxScaler 进行归一化,最近才发现之前理解错了MinMaxScaler 的作用,MinMaxScaler只能对每一列分别进行归一化,即使将全部数据集的所有列都输入给MinMaxScaler,其归一化的结果也是对每列进行归一化。要想对整个数据集进行归一化可以将所有数据展平为一维输入给MinMaxScaler ,最后再重构形状。

MinMaxScaler 是一种数据预处理工具,用于将数据缩放到一个指定的范围内,通常是 [0, 1] 或者 [-1, 1]。它的工作原理是通过对每个特征进行线性变换,将其映射到指定的范围内。

具体来说,MinMaxScaler 的操作步骤如下:

1.对于每个特征,找到最小值(min)和最大值(max)。
2.对于每个特征,将它们的值进行线性变换,使得最小值变成了指定范围的最小值,最大值变成了指定范围的最大值。
具体的变换公式为:

X s c a l e d = X − X m i n X m a x − X m i n {X_{scaled}=\frac{X-X_{min}}{X_{max}-X_{min}} } Xscaled=XmaxXminXXmin

X m i n {X_{min}} Xmin X m a x {X_{max}} Xmax分别是特征的最小值和最大值, X {X} X 是特征的原始值, X s c a l e d {X_{scaled}} Xscaled是缩放后的值。

1. 对每列数据分别进行归一化

from sklearn.preprocessing import MinMaxScaler
import numpy as np

# 假设有两列数据
data = np.array([[1, 2],
                 [3, 4],
                 [5, 6]])

# 创建一个 MinMaxScaler 对象
scaler = MinMaxScaler()

# 将所有数据输入给MinMaxScaler进行归一化
normalized_data = scaler.fit_transform(data)

print("原始数据:")
print(data)
print("\n归一化后的数据:")
print(normalized_data)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

输出的结果如下:(显而易见,这是对每列数据分别进行了归一化)

原始数据:
[[1 2]
 [3 4]
 [5 6]]

归一化后的数据:
[[0.  0. ]
 [0.5 0.5]
 [1.  1. ]]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

2. 对整个数据集进行归一化

from sklearn.preprocessing import MinMaxScaler
import numpy as np

# 假设有两列数据
data = np.array([[1, 2],
                 [3, 4],
                 [5, 6]])

# 将多列数据合并成一个列
flattened_data = data.flatten()

# 创建一个 MinMaxScaler 对象
scaler = MinMaxScaler()

# 对整个数据集进行归一化
normalized_data = scaler.fit_transform(flattened_data.reshape(-1, 1))

# 将归一化后的数据重新转换成原来的形状
normalized_data = normalized_data.reshape(data.shape)

print("原始数据:")
print(data)
print("\n归一化后的数据:")
print(normalized_data)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

输出的结果如下:(显而易见,这是对整个数据集进行了归一化)

原始数据:
[[1 2]
 [3 4]
 [5 6]]

归一化后的数据:
[[0.  0.2]
 [0.4 0.6]
 [0.8 1. ]]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/670892
推荐阅读
相关标签
  

闽ICP备14008679号