数据规范化处理

在拿到数据进行建模之前,我们需要将数据进行初步处理,例如通过据平滑、数据聚集、数据概化和规范化等方式将数据转换成适用于数据挖掘的形式。本文只介绍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
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐