数据预处理 数据归一化之 sklearn.preprocessing

之所以要数据归一化是因为,不同评价指标往往具有不同的量纲,数值间的差距可能很大,不进行处理会影响到分析的结果,同时也不利于多个指标在同一图标内的展示。
数据规范化对于基于距离的算法尤为重要。

此处的数据归一化使用的是sklearn.preprocessing里实现的三种方案
MaxAbsScaler 将数据规约到[-1,1] 也称小数定标规范化
MinMaxScaler 将数据规约到[0,1] 也称最小最大规范化
StandardScaler 标准差归一化,也称零-均值规范化

MaxAbsScaler 的计算公式如下:
data/10**np.ceil(np.log10(data.abs().max())) 即所有数据除以最大值及其10的阶方
由于源码中将输出的负值取了绝对值,因此最后的结果值都是正数

MinMaxScaler 的计算公式如下:
( data -data.min()) / (data.max()-data.min()) 即所有数据减去最小值除以极差

StandardScaler 的计算公式如下:
(data -data.mean())/data.std() 所有数据减去均值除以方差
下面我们来看下怎么用

import sklearn.datasets as ds
iris = ds.load_iris()
x = iris.data[:, :2]  # we only take the first two features.
y = iris.target
from sklearn import preprocessing
# MaxAbsScaler
max_abs_scaler  = preprocessing.MaxAbsScaler()
max_abs_x = max_abs_scaler.fit_transform(x)
max_abs_x
# MinMaxScaler
min_max_scaler = preprocessing.MinMaxScaler()
min_max_x = min_max_scaler.fit_transform(x)
min_max_x
# StandardScaler
standard_scaler  = preprocessing.StandardScaler()
standard_x = standard_scaler.fit_transform(x)
standard_x

值得一提的是,StandardScaler标准化的方法在应用中最为广泛,对数据的处理更平滑,可以优先使用此方法。
当然对于数据预处理的方案的优劣还取决于具体数据集的数据分布特征,在使用前要加以分析,在不能判断的情况下建议多进行尝试。

posted @   feitiandamo  阅读(515)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示