Scikit-learn 的sklearn.preprocessing.MinMaxScaler 函数
在机器学习中,常常需要对数据进行归一化处理,常见的归一化方式是将数据缩放到[0, 1]的范围内。在 Scikit-learn 中,我们可以使用sklearn.preprocessing.MinMaxScaler 函数来进行数据的归一化处理。
sklearn.preprocessing.MinMaxScaler 函数是 Scikit-learn 中的一个预处理模块,它能够将原始数据缩放到指定的范围内。MinMaxScaler 函数是一种简单的线性函数方法,能够保留大部分的原始数据,同时将数据缩放到[0, 1]之间。
下面我们来介绍一下 sklearn.preprocessing.MinMaxScaler 函数的使用方法:
使用方法
首先需要导入需要使用的库:
from sklearn.preprocessing import MinMaxScaler
MinMaxScaler 函数的使用非常简单,只需要调用函数并设置需要缩放的数据范围即可。使用步骤如下:
- 创建一个 MinMaxScaler 对象
trans = MinMaxScaler(feature_range=(0, 1))
在创建对象时,可以设置需要缩放到的范围,默认范围是[0, 1]。
- 使用 MinMaxScaler 对象的 fit_transform() 方法进行归一化处理
data_scaled = trans.fit_transform(data)
在 fit_transform() 方法中传入需要进行归一化处理的数据,即可完成数据的归一化处理。
示例
下面我们提供两个具体的示例,让大家了解如何使用 MinMaxScaler 函数。
示例一
我们有一个包含5个数的数组,我们希望将这个数组进行归一化处理。
import numpy as np
from sklearn.preprocessing import MinMaxScaler
data = np.array([1, 2, 3, 4, 5]).reshape(-1, 1)
# 创建 MinMaxScaler 对象
trans = MinMaxScaler(feature_range=(0, 1))
# 使用 fit_transform() 方法进行归一化处理
data_scaled = trans.fit_transform(data)
# 打印归一化后的数据
print(data_scaled)
运行结果如下:
array([[0. ],
[0.25 ],
[0.5 ],
[0.75 ],
[1. ]])
示例二
我们有一个包含多个特征的数据集,我们希望将其中的一个特征进行归一化处理。
import numpy as np
from sklearn.preprocessing import MinMaxScaler
data = np.array([[1, 2, 3, 4],
[2, 3, 4, 5],
[3, 4, 5, 6],
[4, 5, 6, 7]])
# 创建 MinMaxScaler 对象
trans = MinMaxScaler()
# 使用 fit_transform() 方法进行归一化处理
data[:, 1] = trans.fit_transform(data[:, 1].reshape(-1, 1)).flatten()
# 打印归一化后的数据
print(data)
运行结果如下:
array([[1. , 0. , 3. , 4. ],
[2. , 0.33333333, 4. , 5. ],
[3. , 0.66666667, 5. , 6. ],
[4. , 1. , 6. , 7. ]])
以上就是 sklearn.preprocessing.MinMaxScaler 函数的用法,使用该函数可以方便地对数据进行归一化处理。