数据归一化和数据标准化

归一化(Normalization):

一般是将数据映射到指定的范围,用于去除不同维度数据的量纲以及量纲单位,常见的映射范围有[0,1]和[-1,1]。
最常见的归一化方法就是Min-Max归一化,也称为离差标准化,是对原始数据的线性变换,使结果值映射到[0,-1]之间。
在这里插入图片描述

X是样本数据,Xmax为样本数据的最大值,Xmin为样本数据的最小值。这种归一化方法比较适用在数值比较集中的情况。但是,如果max和min不稳定,很容易使得归一化结果不稳定,使得后续使用效果也不稳定。

若要转换到[-1,1]的范围,可以使用以下的公式:
在这里插入图片描述
实质上,归一化的一般规范函数是:y = (ymax-ymin)*(x-xmin)/(xmax-xmin) + ymin

标准化(Normalization; Standardization):

标准化是依照特征矩阵的列处理数据。数据标准化方法有多种,如:直线型方法(如极值法、标准差法)、折线型方法(如三折线法)、曲线型方法(如半正态性分布)。不同的标准化方法,对系统的评价结果会产生不同的影响。
其中,最常用的是Z-Score 标准化。这种方法给予原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。经过处理的数据符合标准正态分布,即均值为0,标准差为1,具体的转换函数如下:
在这里插入图片描述
其中x是样本数据,μ是样本数据均值,σ是样本数据标准差。
经过标准化后的数据能保持异常值中的有用信息,使得算法对异常值不太敏感,这一点是归一化无法做到的。

选择归一化或者标准化的场景:

(1)数据的分布本身就服从正态分布,使用Z-Score。
(2)有离群值的情况:使用Z-Score。
这里不是说有离群值时使用Z-Score不受影响,而是,Min-Max对于离群值十分敏感,因为离群值的出现,会影响数据中max或min值,从而使Min-Max的效果很差。相比之下,虽然使用Z-Score计算方差和均值的时候仍然会受到离群值的影响,但是相比于Min-Max法,影响会小一点。
(3)如果对输出结果范围有要求,用归一化。
(4)如果数据较为稳定,不存在极端的最大最小值,用归一化。
(5)如果数据存在异常值和较多噪音,用标准化,可以间接通过中心化避免异常值和极端值的影响。

Matlab内实现方法:

归一化的函数为mapminmax,mapminmax 函数默认是对每一行进行操作的,所以进行归一化之前要确保数据的特征都是以行的方式进行存放,因此,大部分时候需要将列存放的特征转置过来。

进行标准化的函数为zscore,可以直接对矩阵进行操作。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值