大数据预处理之数据转换
数据转换就是将数据进行转换或归并,从而构成一个适合数据处理的描述形式。数据转换包含以下处理内容。
例如,街道属性可以泛化到更高层次的概念,如城市、国家,数值型的属性,如年龄属性,可以映射到更高层次的概念,如年轻、中年和老年。
下面将着重介绍规格化处理和属性构造处理。
规格化处理就是将一个属性取值范围投射到一个特定范围之内,以消除数值型属性因大小不一而造成挖掘结果的偏差,常常用于神经网络、基于距离计算的最近邻分类和聚类挖掘的数据预处理。
对于神经网络,采用规格化后的数据不仅有助于确保学习结果的正确性,而且也会帮助提高学习的效率。对于基于距离计算的挖掘,规格化方法可以帮助消除因属性取值范围不同而影响挖掘结果的公正性。
下面介绍常用的3种规格化方法。
例如,假设属性的最大值和最小值分别是 98 000 元和 12 000 元,利用最大最小规格化方法将“顾客收入”属性的值映射到 0~1 的范围内,则“顾客收入”属性的值为 73 600 元时,对应的转换结果如下。
假定属性“顾客收入”的均值和方差分别为 54 000 元和 16 000 元,则“顾客收入”属性的值为 73 600 元时,对应的转换结果如下。
属性构造方法可以利用已有属性集构造出新的属性,并将其加入到现有属性集合中以挖掘更深层次的模式知识,提高挖掘结果准确性。
例如,根据宽、高属性,可以构造一个新属性(面积)。构造合适的属性能够减少学习构造决策树时出现的碎块情况。此外,属性结合可以帮助发现所遗漏的属性间的相互联系,而这在数据挖掘过程中是十分重要的。
1)平滑处理
帮助除去数据中的噪声,主要技术方法有 Bin 方法、聚类方法和回归方法。2)合计处理
对数据进行总结或合计操作。例如,每天的数据经过合计操作可以获得每月或每年的总额。这一操作常用于构造数据立方或对数据进行多粒度的分析。3)数据泛化处理
用更抽象(更高层次)的概念来取代低层次或数据层的数据对象。例如,街道属性可以泛化到更高层次的概念,如城市、国家,数值型的属性,如年龄属性,可以映射到更高层次的概念,如年轻、中年和老年。
4)规格化处理
将有关属性数据按比例投射到特定的小范围之中。例如,将工资收入属性值映射到 0 到 1 范围内。5)属性构造处理
根据已有属性集构造新的属性,以帮助数据处理过程。下面将着重介绍规格化处理和属性构造处理。
规格化处理就是将一个属性取值范围投射到一个特定范围之内,以消除数值型属性因大小不一而造成挖掘结果的偏差,常常用于神经网络、基于距离计算的最近邻分类和聚类挖掘的数据预处理。
对于神经网络,采用规格化后的数据不仅有助于确保学习结果的正确性,而且也会帮助提高学习的效率。对于基于距离计算的挖掘,规格化方法可以帮助消除因属性取值范围不同而影响挖掘结果的公正性。
下面介绍常用的3种规格化方法。
1. 最大最小规格化方法
该方法对被初始数据进行一种线性转换。例如,假设属性的最大值和最小值分别是 98 000 元和 12 000 元,利用最大最小规格化方法将“顾客收入”属性的值映射到 0~1 的范围内,则“顾客收入”属性的值为 73 600 元时,对应的转换结果如下。
(73 600-12 000)/(98 000-12 000)*(1.0-0.0) + 0 = 0.716
计算公式的含义为“(待转换属性值-属性最小值)/(属性最大值-属性最小值)*(映射区间最大值-映射区间最小值)+映射区间最小值”。2. 零均值规格化方法
该方法是指根据一个属性的均值和方差来对该属性的值进行规格化。假定属性“顾客收入”的均值和方差分别为 54 000 元和 16 000 元,则“顾客收入”属性的值为 73 600 元时,对应的转换结果如下。
(73 600-54 000)/16000 = 1.225
计算公式的含义为“(待转换属性值-属性平均值)/属性方差”。3. 十基数变换规格化方法
该方法通过移动属性值的小数位置来达到规格化的目的。所移动的小数位数取决于属性绝对值的最大值。假设属性的取值范围是 -986~917,则该属性绝对值的最大值为 986。属性的值为 435 时,对应的转换结果如下。435/10^3 = 0.435
计算公式的含义为“待转换属性值/10”,其中,j 为能够使该属性绝对值的最大值(986)小于 1 的最小值。属性构造方法可以利用已有属性集构造出新的属性,并将其加入到现有属性集合中以挖掘更深层次的模式知识,提高挖掘结果准确性。
例如,根据宽、高属性,可以构造一个新属性(面积)。构造合适的属性能够减少学习构造决策树时出现的碎块情况。此外,属性结合可以帮助发现所遗漏的属性间的相互联系,而这在数据挖掘过程中是十分重要的。
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算