提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一、scikit-learn是什么?
scikit-learn 是一个流行的 Python 机器学习库,它提供了大量的工具用于数据挖掘和数据分析。这个库是建立在 NumPy、SciPy 和 Matplotlib 等库的基础上,为数据预处理、模型训练、模型评估等提供了丰富的功能。
二、使用步骤
1.引入库
pip install scikit-learn
2.原始数据
可见四个特征值由于量纲不同,如果同时作用于训练模型,必然导致特征1和特征4影响力很大,而特征2几乎没有影响。所以应用训练之前必须进行归一化或标准化操作。
3.归一化操作
为什么要进行归一化操作?主要是为了简化计算,将数据映射到一个统一的范围内,消除数据之间的量纲差异,使得不同特征之间具有可比性。这里只介绍Min-Max归一化:也称为离差标准化,是将数据缩放到[0,1]区间。具体方法是用原始数据减去最小值,再除以极差(最大值与最小值的差)。公式为:x’ = (x - min) / (max - min)。上述90,60,75归一化后分别是1, 0,0.5
4.scikit-learn中的操作
直接上代码
from sklearn.preprocessing import MinMaxScaler
import numpy as np
# 创建一个示例数据集
data = np.array([[90,2,10,40], [60, 4, 15,45], [75, 3,13,46]])
# 初始化 MinMaxScaler
scaler = MinMaxScaler()
# 对数据进行归一化
normalized_data = scaler.fit_transform(data)
print(normalized_data)
运行结果如下
总结
不过初步的归一化操作还存在问题,例如异常数据的出现会扩大数据上下限的范围,导致归一化结果的偏差。