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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值