13 数据变换

在数据变换前,我们需要先对字段进行筛选,然后对数据进行探索和相关性分析,然后是选择算法模型,然后针对算法模型对数据的需求进行数据转换,从而完成数据挖掘前的准备工作。

 

 数据变换是数据准备的重要环节,它通过数据平滑、数据聚集、数据概化和规范化方法等方式将数据转化为适用于数据挖掘的形式。

常用数据变换方法:

(1)数据平滑:去除数据中的噪声,将连续数据离散化。可以采用分箱、聚类和回归方式进行数据平滑。

(2)数据聚集:对数据进行汇总,在SQL中有一些聚集函数可以选择,如Max(),Sum()等。

(3)数据概化:将数据从较低的概念抽象为较高的概念,减少数据复杂度,即用更高的概念替代更低的概念,如用中国概化上海、北京。

(4)数据规范化:使属性数据按比例缩放,从而将原来的数值映射到一个新的特定区域中,常用方法有最小-最大规范化、Z-score规范化、按小数定标规范化。

(5)属性构造:构造一个新的属性添加到属性集中。

数据规范化的几种方法:

(1)Min-Max规范化

将原始数据变化到[0,1]空间中,公式为:

新数值=(原数值-极小值)/(极大值-极小值)

(2)Z-Score规范化

新数值=(原数值-均值)/标准差

简单,不受数据量级影响,结果易于比较,但是结果没有实际意义,只能用于比较。

(3)小数定标规范话

通过移动小数点的位置来进行规范化,小数点移动多少位取决于属性A的取值中的最大绝对值。

Min-max规范化

# coding:utf-8
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

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

小数定标规范化

# coding:utf-8
from sklearn import preprocessing
import numpy as np
# 初始化数据
x = np.array([[ 0., -3.,  1.],
              [ 3.,  1.,  2.],
              [ 0.,  1., -1.]])
# 小数定标规范化
j = np.ceil(np.log10(np.max(abs(x))))
scaled_x = x/(10**j)
print scaled_x

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值