在数据挖掘中,海量的原始数据存在着大量不完整(有缺失)、不一致、又异常的数据,影响数据挖掘建模的执行效率,甚至导致数据挖掘失败,所以数据的预处理尤为重要。

一、数据清洗

主要是删除原始数据中的无关数据、重复数据、噪声数据等,处理缺失值、异常值。

处理缺失值的方法分为三类;删除数据、数据插补、不处理。

其中插补方法包括:均值、中位数、众数、使用固定值、最近邻插值、回归方法、插值法等等

异常值处理:在处理异常值时,有可能有些异常值蕴含着有用的信息。

常见的异常值处理方法包括:删除异常值的记录、视为缺失值、平均值修正、不处理。

二、数据集成

数据挖掘的数据来源往往来之不同的数据源,数据集成就是将多个数据源合并存放在一个一致的数据存储中的过程。

实体识别:从不同数据源识别出现实世界的实体,统一不同源数据的矛盾之处

(1)同名异义 相同属性名描述的不同实体

  (2) 异名同义  不同属性名描述的同一实体

(3)单位统一  例如同一实体的长度有用cm'的有用m的

冗余属性识别:数据集成往往导致数据冗余,仔细整合不同源数据能减少甚至避免数据冗余和不一致,从而提高数据挖掘的速度和质量,对于冗余数据要先分析,再删除

三、数据交换

数据交换主要是对数据进行规范化处理,将数据转换成适当的形式,以适用于挖掘任务及算法的需要。

简单函数变换:对原始数据进行某些数字函数的变换,常见的例如平方、开方、取对数等。

规范化:为了消除指标之间的量纲和取值范围差异的影响,需要标准化处理,将数据进行按照比例进行缩放,使之落在一个指定的区间内,便于综合分析。

最小-最大规范化:

数据挖掘和数据开发区别 数据挖掘和数据处理_小波变换

零均值规范化:

数据挖掘和数据开发区别 数据挖掘和数据处理_python_02

  小数定标规范化:

数据挖掘和数据开发区别 数据挖掘和数据处理_数据_03

连续属性离散化 

离散化过程:在数据的取值范围内设定若干个离散的划分点,将取值范围划分为一些离散化的区间,最后用不同符号或整数值表示每个子区间的数据值。

常用的离散化方法:

(1)等宽法

(2)等频法

(3)基于聚类分析的方法

属性构造

在数据挖掘过程中,为了更好的提取有用的信息,挖掘更深层次的模式,提高挖掘结果的精度,需要利用已有的属性集构造出新的属性,并进入现有的属性集中。可以根据具体的业务场景进行构造。

小波变换

小波变换是一种新型的数据分析工具,小波变换具有多分辨率的特点,在时域和频域都具有表征信号局部特征的能力,通过伸缩平移等运算对信号进行多次都的聚焦分析,提供了一种非平稳信号的时频分析手段,可以由粗及细逐步观察信号,从中提取有用信息。

(1)基于小波变换的特征提取方法

数据挖掘和数据开发区别 数据挖掘和数据处理_数据_04

数据挖掘和数据开发区别 数据挖掘和数据处理_小波变换_05

(2)小波基函数

小波基函数是一种具有局部支集的函数,并且小波基函数满足

数据挖掘和数据开发区别 数据挖掘和数据处理_python_06

.常见的有;Harr小波基、db系列小波基等。

(3)小波变换

对小波基函数进行伸缩和平移变换:

数据挖掘和数据开发区别 数据挖掘和数据处理_python_07

任意函数的连续小波变换(CWT):

数据挖掘和数据开发区别 数据挖掘和数据处理_数据_08

(4)基于小波变换的多尺度空间能量分布特征提取方法

四、数据规约

降低无效、错误数据对建模的影响、提高建模的准确性

少量且具代表下的数据减肥大幅度缩减数据挖掘的时间

降低存储数据的成本

属性规约

通过属性合并来创建新属性维数、或者直接通过删除不相干的属性来减少数据维度、从而提高数据挖掘的效率、减低计算成本。属性规约的目标是寻找最小的属性子集并确保新数据子集的概率分布尽可能的接近原来的数据集的概率分布。

数据挖掘和数据开发区别 数据挖掘和数据处理_小波变换_09

数值规约

数值规约指通过选择替代的、较小的、数据来减少数据量,包括有参数的方法和无参数的方法两类

包括的方法有:直方图、聚类、抽样、参数回归。

python主要的预处理函数:

数据挖掘和数据开发区别 数据挖掘和数据处理_数据_10

参考书籍:Python数据分析与数据挖掘实战