数据特征处理之数值型数据(归一化)

首页 » 数据分析 » 正文

数据特征处理之数值型数据(归一化)


什么是特征处理?

 

通过特定的统计方法(数学方法)将待处理数据转换为算法要求的数据的这个过程称为特征处理。

 

数据特征处理之数值型数据(归一化)

 

数值型数据归一化方案:

 

数据特征处理之数值型数据(归一化)

 

归一化的特点

 

对原始数据进行归一化处理后使其映射到指定范围内(通常默认是[0,1]之间)

降低数据附带的量纲影响,使不同的特征具有相同的尺度(Scale),进而具有可比性(公平性)

【注】 归一化也被称为最大最小标准化(min-max Normalization)、调节比例(Rescaling)

 

我们常用的归一化特征处理的统计(数学)方法便是线性转换的方式,

 

数据特征处理之数值型数据(归一化)

 

上述公式中, xmin 表示源数据中特征的最小值,xmax 表示特征的最大值,x则表示源数据中的具体值

 

数据特征处理之数值型数据(归一化)

 

我们平时所见的归一化都是将数据映射到[0,1]之间,若是将数据映射到自定义范围内呢?显然上述公式不具有通用性。具备通用性的其实是下面这个

 

数据特征处理之数值型数据(归一化)

 

其中,a表示将数据缩放到指定区间内的上限,b表示将数据缩放到指定区间的下线。归一化整体流程如下图

[注] 上述公式的效果作用于每一列(特征)

 

数据特征处理之数值型数据(归一化)

 

 

上述缩放结果是借助机器学习中的sklearn模块来完成的,完整的代码如下

 

默认缩放到[0, 1]时

 

# -*- coding:utf-8 -*-

# @Author: 数据与编程之美
# @File: min_max_normalization.py
# @Time: 2020/12/07 23:15

from sklearn.preprocessing import MinMaxScaler


def min_max_handle():   # 归一化

    mms = MinMaxScaler()
    data = mms.fit_transform([[425, 42, 0.16],
                              [544, 66, 1.28],
                              [509, 75, 0.87],
                              [496, 60, 0.99],
                              [580, 23, 1.15]])

    print(data)


if __name__ == "__main__":
    min_max_handle()

 

缩放到任意区间内时,只需加入参数并指定区间范围既可,如指定到[5, 8]之间时

 

数据特征处理之数值型数据(归一化)

 

# -*- coding:utf-8 -*-

# @Author: 数据与编程之美
# @File: min_max_normalization.py
# @Time: 2020/12/07 23:15

from sklearn.preprocessing import MinMaxScaler


def min_max_handle():   # 归一化

    mms = MinMaxScaler(feature_range=(5, 8))
    data = mms.fit_transform([[425, 42, 0.16],
                              [544, 66, 1.28],
                              [509, 75, 0.87],
                              [496, 60, 0.99],
                              [580, 23, 1.15]])

    print(data)


if __name__ == "__main__":
    min_max_handle()

 

上述内容便是数据特征处理中的数据归一化理论、操作流程。然而归一化只是众多特征处理方案中的一种手段,其最终服务的成熟算法还是有局限性的。

 

归一化的不足之处

 

对于常见的归一化处理手段(基于线性转换的方式) ,丛其理论表达式可以看出,归一化后的结果与xmin (最小)、xmax(最大)值相关,也就是由极值决定。当增加样本量数据时,有可能导致某特征的极值发生变化,从而导致归一化结果不稳定(不具备鲁棒性),实际使用时可以使用经验常量来代替xmin (最小)、xmax(最大)值;在工程规模方面来考虑时,归一化适用于数据量少的工程。


更多精彩内容请关注公众号:

 

数据特征处理之数值型数据(归一化)

 

作者:bear, 转载或复制请以 超链接形式 并注明出处 数据与编程之美
原文地址:《数据特征处理之数值型数据(归一化)》 发布于2020-12-20

分享到:
赞(2) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

一碗牛肉面
鼓励站长分享更多学习经验、教程、学习资源。
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册