数据规范化处理方法-Min-max 规范化和 Z-Score 规范化

数据规范化处理

在拿到数据进行建模之前,我们需要将数据进行初步处理,例如通过据平滑、数据聚集、数据概化和规范化等方式将数据转换成适用于数据挖掘的形式。本文只介绍min-max标准化、Z-score标准化方法。

1. Min-max 规范化

定义:

Min-max 也叫离差标准化,是对原始数据的线性变换,使结果落到[0,1]区间。
用公式表示就是:

1、其中max为样本数据的最大值,min为样本数据的最小值。
2、这种方法有一个缺陷就是当有新数据加入时,可能导致max和min的变化,需要重新定义。

在这里插入图片描述

代码:

Python中在 SciKit-Learn 里有个函数 MinMaxScaler 是专门做这个的

#引入库
from sklearn import preprocessing
import numpy as np
# 初始化数据,每一行表示一个样本,每一列表示一个特征
x = np.array([[ 0., -3.,  1.],
              [ 3.,  1.,  2.],
              [ 0.,  1., -1.]])
# 将数据进行[0,1]规范化
min_max_scaler = preprocessing.MinMaxScaler()
minmax_x = min_max_scaler.fit_transform(x)
print minmax_x

2、Z-Score 规范化

定义:

最常见的标准化方法就是Z标准化;也是SPSS中最为常用的标准化方法,也叫标准差标准化。
Z-Score 的优点是算法简单,不受数据量级影响,结果易于比较。不足在于,它需要数据整体的平均值和方差,而且结果没有实际意义,只是用于比较。
在这里插入图片描述

步骤如下:
1、求出各变量(指标)的算术平均值(数学期望)xi和标准差si ;
2、进行标准化处理:
zij=(xij-xi)/si
其中:zij为标准化后的变量值;xij为实际变量值。
3.将逆指标前的正负号对调。准化后的变量值围绕0上下波动,大于0说明高于平均水平,小于0说明低于平均水平。
如何改变文本的样式

代码:

在 SciKit-Learn 库中使用 preprocessing.scale() 函数,可以直接将给定数据进行 Z-Score 规范化。

from sklearn import preprocessing
import numpy as np
# 初始化数据
x = np.array([[ 0., -3.,  1.],
              [ 3.,  1.,  2.],
              [ 0.,  1., -1.]])
# 将数据进行Z-Score规范化
scaled_x = preprocessing.scale(x)
print scaled_x
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值