数据标准化(数据预处理)

(一)在不同的问题中,标准化的意义不同:
(1)在回归预测中,标准化是为了让特征值有均等的权重;
(2)在训练神经网络的过程中,通过将数据标准化,能够加速权重参数的收敛;
(3)主成分分析中,需要对数据进行标准化处理;默认指标间权重相等,不考虑指标间差异和相互影响。

(二)数据标准化最常用的是这两种:极差标准化法、Z-score标准化法:
1.min-max标准化(归一化)
也叫极差标准化法,是消除变量量纲和变异范围影响最简单的方法。
具体方法:找出每个属性的最小值和最大值,将其一个原始值x通过min-max标准化映射成在区间[0,1]中的值x’。
公式:X’ = (X-Xmin) / (Xmax-Xmin)
无论原始数据是正值还是负值,经过处理后,该变量各个观察值的数值变化范围都满足0≤X’≤1,并且正指标、逆指标均可转化为正向指标,作用方向一致。
代码:

def Normalization(data): 
    data = [(float(i)-min(x))/float(max(x)-min(x)) for i in data]
    return data

2.Z-score标准化
当遇到某个指标的最大值和最小值未知的情况,或有超出取值范围的离群数值时,上面的方法就不再适用了,可以采用另一种数据标准化最常用的方法,即Z-score标准化,也叫标准差标准化法。
它基于原始数据的均值(mean)和标准差(standarddeviation)进行数据的标准化,将A的原始值x使用z-score标准化到x’。
新数据=(原数据- 均值)/ 标准差
代码:

def Z_Score(data):
    lenth = len(data)
    total = sum(data)
    ave = float(total)/lenth
    tempsum = sum([pow(data[i] - ave,2) for i in range(lenth)])
    tempsum = pow(float(tempsum)/lenth,0.5)
    for i in range(lenth):
        data[i] = (data[i] - ave)/tempsum
    return date

注:估算Z-Score需要总体的平均值与方差,但是这一值在真实的分析与挖掘中很难得到,大多数情况下是用样本的均值与标准差替代。
(三)标准化、归一化的区别:
归一化是标准化的一种,它的缩放仅与最大、最小值的差别有关;输出范围在0—1间;
标准化缩放和每个值都有关系,通过方差体现出来。当数据更集中时,数据标准化后更分散;数据分布很广时,数据标准化后会更集中。输出范围是一个特定的区间,在-∞—+∞。
如果对输出结果范围有要求,用归一化;如果数据较稳定,不存在极端的最大最小值,用归一化;如果数据有异常值和较多噪音,用标准化,可间接通过中心化避免异常值、极端值的影响。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值