特征工程中的数据规范化

数据归一化

数据标准化主要用来消除不同特征之间的量纲的影响,量纲指的是特征的计量单位,如果特征的单位不一致,那么不同的特征不能放在一起去比较。例如在日常生活中,身高的单位时cm,体重的单位时kg,二者不能直接比较。所以可以通过数据标准化的方法,来消除不同特征之间量纲的影响。

样本数据:
特征工程中的数据规范化

Min-Max 标准化

Min-Max标准化是对原始数据进行线性转换,它需要求出特征的最小值和最大值,然后通过以下公式求出标准化值:
特征工程中的数据规范化
由这个公式可以知道,Min-Max标准化会把特征值映射到区间为 [0,1] 的标准化值。其中,最小的标准化值为0,最大的标准化值为1。

在sklearn模块中,使用MinMaxScaler 函数进行Min-Max标准化:

import pandas as pd 
from sklearn.preprocessing import MinMaxScaler
data = pd.read_csv('../form/数据标准化.csv',encoding = 'gbk')
#特征变量
x = data[['注册时长','营收收入','成本']]
#目标变量
y = data['是否续约']
#生成标准化对象
scaler = MinMaxScaler()
#训练标准化对象
scaler.fit(x)
#将数据转换为标准化数据
scalerX = scaler.transform(x)

执行代码获取标准化数据:
特征工程中的数据规范化
Min-Max标准化能够使基于距离的计算模型的效果有一定量的提升。

Z-Score标准化

Z-Score标准化基于特征的均值和标准差进行数据的标准化,计算公式如下:
特征工程中的数据规范化
经过Z-Score标准化的数据,均值为0,标准差为1。因此标准化后的数据值围绕着0上下波动,大于0说明高于均值,小于0说明低于均值。

根据标准化均值为0,标准差为1的性质,如果一个特征符合正态分布,那么:
68.26%的数据,会分布在 [-1,+1] 区间
95.44%的数据,会分布在 [-2,+2] 区间
99.74%的数据,会分布在 [-3,+3] 区间

在sklearn模块中,使用scale函数进行Z-Score标准化:

from sklearn.preprocessing import scale
#将数据转换为标准化数据
scaleX = scale(x)

执行代码以获取规范化数据:
特征工程中的数据规范化
进行Z-Score标准化能够使基于距离的计算模型的效果有一定量的提升。

Normalizer归一化

Normalizer归一化是将每个样本缩放到单位范数(每个样本的范数为1),计算公式如下:
特征工程中的数据规范化
在sklearn模块中,使用Normalizer函数进行Normalizer归一化:

from sklearn.preprocessing import Normalizer
#生成标准化对象
normalizer = Normalizer()
#训练标准化对象
normalizer.fit(x)
#把数据转化成标准化数据
x = normalizer.transform(x)

执行代码以获取规范化数据:
特征工程中的数据规范化
并不是所有的特征工程手段都能积极地改进模型。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2022年4月7日 下午5:05
下一篇 2022年4月7日

相关推荐