4.3 数据转换很重要——数据转换

  数据转换是将数据从一种表现形式转换为另一种表现形式的过程。不同的数据挖掘方法对于数据格式都有相应的要求,而同一份原始数据集并不能适用于所有的挖掘方法,因此我们需要对原始数据进行转换。但数据转换一定要把握力度,一味的追求数据转换后的结果可能会严重扭曲原始数据本身的内涵 。本节将介绍如何用MySQL进行数据转换,主要包括数据标准化和数据离散化。

4.3.1 数据标准化

  由于原始数据中常常会具有不同的量纲和变异程度,因此在进行数据分析之前,我们需要先将数据进行标准化。数据标准化一方面能够消除量纲的影响,解决数据可比性的问题,另一方面能够弱化数据本身的变异程度,使得数据分布状态更加均匀。关于数据标准化常用处理方法包括:min-max标准化、z-score标准化、按小数定标标准化。
本节使用样例表order_inf1,表结构及创建语句如下:

字段名称 数据类型 备注
ordercode varchar(20) 订单编号
username varchar(20) 用户名
consignee varchar(20) 收货人
pay_date varchar(20) 支付日期
province varchar(20) 收货省份
city varchar(20) 收货城市
total_amount float(20) 订单金额
carriage float(20) 运费
remark varchar(20) 备注

MySQL输入语句如下:

这时我们查看order_inf1表中所有的字段。MySQL输入及输出如下:

接下来将数据插入order_inf1表中,再执行查询语句。MySQL输入及输出如下:

接下来,让我们对上述数据进行标准化。
(1)min-max标准化
  min-max标准化是借助最小值和最大值对原始数据进行线性变化,其计算公式为:
min-max标准化 =(原数据-最小值)/(最大值-最小值)
MySQL中使用select语句处理min-max标准化的问题,MySQL输入及输出如下:

(2)z-score标准化
  z-score标准化是基于原始数据的均值和标准差进行数据标准化,其计算公式为:
z-score标准化 =(原数据-均值)/ 标准差
MySQL中使用select语句处理z-score标准化的问题。
【例】用z-score标准化方法处理total_amount订单金额,MySQL输入及输出如下:

(3)小数定标标准化
  小数定标标准化是通过移动数据小数点的位置来进行标准化。MySQL中使用select语句处理小数定标标准化的问题。
【例】将total_amount订单金额向左移动3个小数点,MySQL输入及输出如下:

4.3.2 数据离散化

  数据离散化是指将连续型数据进行分段,使数据分布在不同的离散化区间中。由于实际数据库中存在较多的连续型数据,而很多数据挖掘算法只能处理离散型的数据,因此数据离散化是应用这些算法的前提。
  有效的数据离散化能够减少算法时间和空间的开销、提高系统对样本的聚类能力、增强系统抗数据噪音的能力并提高算法学习的精确度。MySQL中使用条件判断函数处理数据离散化的问题。
【例】以均值为标准将total_amount订单金额离散化,大于等于均值为大额订单,记为“1”,小于均值为小额订单,记为“0”,MySQL输入及输出如下:

分类: 数据库技术