4.3 数据转换很重要——数据转换
31 Oct 2019数据转换是将数据从一种表现形式转换为另一种表现形式的过程。不同的数据挖掘方法对于数据格式都有相应的要求,而同一份原始数据集并不能适用于所有的挖掘方法,因此我们需要对原始数据进行转换。但数据转换一定要把握力度,一味的追求数据转换后的结果可能会严重扭曲原始数据本身的内涵 。本节将介绍如何用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输入及输出如下:
分类: 数据库技术