特征工程中的数据标准化

数据标准化

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

示例数据:
在这里插入图片描述

Min-Max 标准化

       Min-Max标准化是对原始数据进行线性转换,它需要求出特征的最小值和最大值,然后通过以下公式求出标准化值:
标 准 化 值 = 原 数 据 − 最 小 值 最 大 值 − 最 小 值 标准化值 = \frac{原数据 - 最小值}{最大值 - 最小值} =
       由这个公式可以知道,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标准化基于特征的均值和标准差进行数据的标准化,计算公式如下:
标 准 化 数 据 = 原 数 据 − 均 值 标 准 差 标准化数据 = \frac{原数据 - 均值}{标准差} =
       经过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),计算公式如下:
x ˉ = x ∑ i = 1 n x i 2 \bar{x} = \frac{x}{\sum_{i =1}^{n} x_i^2} xˉ=i=1nxi2x
在sklearn模块中,使用Normalizer函数进行Normalizer归一化:

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

执行代码,得到归一化的数据:
在这里插入图片描述
并非所有的特征工程的手段都可以对模型产生正向的提升。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值