特征工程 - 数据规范化

一、基本概念

  规范化包括对数据进行标准化、区间化和归一化等等。

  标准化是让数据变为正态分布。

  区间化是让数据限定在指定区间。

  归一化是让数据限定在指定单位中。(这个描述可能有点抽象,不太准确)

  因为不同特征的量纲不同,所以不能进行直接比较,如:A标准满分为100,但B标准满分为10,A和B就不能直接进行比较。

 

二、标准化

1、Z-Score

  能够将不同量级的数据,转化为无量纲的分值进行比较。通过

xstd(i)=xiμxσx

  将两组或多组数据转化为无单位的Z-Score分值,使得数据标准统一化,提高了数据可比性,削弱了数据解释性。是一种中心化方法,会改变原有数据得分布结构。

  • μ:总体的平均值
  • σ:总体的标准差
  • x:个体的观测值

  Z-Score也有风险,估算Z-Score需要总体的平均值与方差,但是在真实的分析与挖掘中很难得到,大多数情况下,用样本的均值与标准差替代。

from sklearn.preprocessing import StandardScaler
data_std = StandardScaler().fit_transform(data)
# 使用mean和std查看,其mean为0,std为1。
import numpy as np
np.mean(data)

np.std(data)

 

二、区间化

1、Min-Max

  特征的值经过变换后,被限定在指定的区间。通常限定在0~1之间,为此使用特征值max和min,称为Min-Max标准化,也称作极差标准化。 

xscaled(i)=x(i)xminxmaxxmin

  1. 分母可能为0,导致计算过程出错。
  2. 对异常值(离群点)的存在非常敏感。
from sklearn.preprocessing import MinMaxScaler
data_mm = MinMaxScaler().fit_transform(data)

  MinMaxScaler中有一个参数feature_range,这个参数的默认值为(0,1),可以给定(a,b)来设置区间范围。

xscaled(i)=x(i)xminxmaxxmin(ba)+a

 

2、分位数

  将特征值区间化到四分位距,能最大限度地保留数据集中的离群点。

xnor(1)=x(i)Q1(x)Q3(x)Q1(x)

from sklearn.preprocessing import RobustScaler
robust = RobustScaler()
robust_scaled = robust.fit_transform(data)

  RobustScaler中有一个参数quantile_range,这个参数的默认值为(25.0,75.0),分别表示公式中的

Q1(x)=25.0(25%)

Q3(x)=75.0(75%)

 

三、归一化

 1、Normalizer

from sklearn.preprocessing import Normalizer
norma = Normalizer()
norma.fit_transform(data)

  Normalizer中有一个参数norm,这个参数的默认值为‘l2’,表示L2范数。当这个参数为‘max’时,表示依据数据中的最大值进行归一化。

2、MaxAbsScaler

# sklearn中有指定的方法,来实现根据最大值进行归一化。
from sklearn.preprocessing import MaxAbsScaler
mas = MaxAbsScaler()
mas.fit_transform(data)

 

除了上述提到的方法,还有其他方法可以将数据标准化,如:小数定标、中心化、比例法。比例法,是所有数据求和,计算每个值占总和的比值。


 

本文作者:paramotor

本文链接:https://www.cnblogs.com/paramotor/p/17898199.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   paramotor  阅读(57)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 Ahh Mantap Tik Tok Tarik Sis De Yang Gatal Bukan Pho (Remix) DJ Desa
Ahh Mantap Tik Tok Tarik Sis De Yang Gatal Bukan Pho (Remix) - DJ Desa
00:00 / 00:00
An audio error has occurred.