文章目录
- 1. 数据存在的问题
-
- 1.1 原始数据存在的问题
- 1.2 数据质量要求
- 1.3 预处理主要任务
- 2. 数据清洗
-
- 3. 数据集成
-
- 3.1 集成过程中涉及的实体识别
- 3.2 冗余问题
- 3.3 检测冗余方法
- 4. 数据归约
-
- 4.1 数据归约的标准:
- 4.2 数量归约:直方图
- 4.3 数量归约:数据立方体
- 4.4 数据归约——属性子集选择
- 4.5 数据归约——抽样
- 4.6 数量规约——聚类采样
- 4.7 数量规约——分层取样
- 5. 数据变化与数据离散化
1. 数据存在的问题
数据预处理是数据挖掘中的重要一环,而且必不可少。要更有效地挖掘出知识,就必须为其提供干净,准确,简洁的数据。
现实世界中数据常常是不完整,不一致的脏数据,无法直接进行数据挖掘,或挖掘结果差强人意。
1.1 原始数据存在的问题
- 数据的不一致(如单位)
- 噪声数据
- 缺失值
1.2 数据质量要求
准确性:数据记录的信息是否存在异常或错误。
完整性:数据信息是否存在缺失。
一致性:指数据是否遵循了统一的规范,数据集合是否保持了统一的格式
时效性:某些数据是否能及时更新
可信性:用户信赖的数据的数量
可解释性:指数据自身是否易于人们理解
1.3 预处理主要任务
- 数据清理(清洗):去掉数据中的噪声,纠正不一致。
- 数据集成:将多个数据源合并成一致的数据存储,构成一个完整的数据集,如数据仓库。
- 数据归约(消减):通过聚集、删除冗余属性或聚类等方法来压缩数据。
- 数据变换(转换):将一种格式的数据转换为另一格式的数据(如规范化)。
2. 数据清洗
数据清理就是对数据进行重新审查和校验的过程。其目的在于纠正存在的错误,并提供数据一致性。
2.1 空缺值处理
- 引起空缺值的原因:
设备异常
与其他已有数据不一致而被删除
因为误解而没有被输入的数据
在输入时,有些数据因为得不到重视而没有被输入
对数据的改变没有进行日志记载
- 空缺值要经过推断而补上
- 如何处理空缺值
1)忽略元组:
若一条记录中有属性值被遗漏了,则将该记录排除在数据挖掘之外
但是,当某类属性的空缺值所占百分比很大时,直接忽略元组会使挖掘性能变得非常差
2)忽略属性列:
若某个属性的缺失值太多,则在整个数据集中可以忽略该属性
3)人工填写空缺值:
工作量大,可行性低
4)使用属性的中心度量值填充空缺值:
如果数据的分布是正常的,就可以使用均值来填充缺失值
如果数据的分布是倾斜的,可以使用中位数来填充缺失值。
5)使用一个全局变量填充空缺值:
对一个所有属性的所有缺失值都使用一个固定的值来填补(如“Not sure”或∞)。
6)使用可能的特征值来替换空缺值(最常用):
生成一个预测模型,来预测每个丢失值
如可以利用回归、贝叶斯计算公式或判定树归纳确定,推断出该条记录特定属性最大可能的取值
2.2 噪声处理
- 噪声(noise) :被测量的变量产生的随机错误或误差:
数据收集工具的问题
数据输入错误
数据传输错误
技术限制
命名规则的不一致
- 如何检测噪声数据
1)基于统计的技术
使用距离度量值(如马氏距离)来实现;
给定p维数据集中的n个观察值_(其中n>>p),用 ̅_表示样本平均向量,_表示样本协方差矩阵;
每个多元数据点i(i=1,2,……,n)的马氏距离用_表示;
2)基于距离的技术
计算n维数据集中所有样本间的测量距离;
如果样本S中至少有一部分数量为p的样本到_的距离比d大,那么样本_就是数据集S中的一个噪声数据;
- 不一致数据处理
数据的不一致性,就是指各类数据的矛盾性、不相容性
数据库系统都会有一些相应的措施来解决并保护数据库的一致性,可以使用数据库系统来保护数据的一致。
3. 数据集成
- 数据集成
把不同来源、格式、特点和性质的数据合理地集中并合并起来。
这些数据源可以是关系型数据库、数据立方体或一般文件。
- 它需要统一原始数据中的所有矛盾之处,如字段的
同名异义;异名同义;单位不统一;字长不一致等。
- 集成过程中需要注意的问题:集成的过程中涉及的实体识别问题;冗余问题。
3.1 集成过程中涉及的实体识别
- 整合不同数据源中的元数据;
- 进行实体识别:匹配来自不同数据源的现实世界的实体;
如:如何确定一个数据库中的brand和另一个数据库中的product是同一实体。
通常,数据库的数据字典和数据仓库的元数据,可帮助避免模式集成中的错误。
3.2 冗余问题
- 同一属性在不同的数据库或同一数据库的不同数据表中会有不同的字段名;
- 一个属性可以由另外的属性导出,如:一个顾客数据表中的平均月收入属性,可以根据月收入属性计算出来。
3.3 检测冗余方法
- 相关性分析
数值属性:采用相关系数和协方差进行相关性分析
标称属性:采用^2(卡方)检验进行相关性分析
这块有点复杂,看ppt实例。
4. 数据归约
对大规模数据库内容进行复杂的数据分析常需要消耗大量的时间,使得这样的分析变得不现实和不可行;
数据归约(data reduction):数据消减或约简,是在不影响最终挖掘结果的前提下,缩小所挖掘数据的规模;
数据归约技术可以用来得到数据集的归约表示,它小得多,但仍接近保持原数据的完整性;
对归约后的数据集进行挖掘可提高挖掘的效率,并产生相同(或几乎相同)的结果。
4.1 数据归约的标准:
用于数据归约的时间不应当超过或“抵消”在归约后的数据集上挖掘节省的时间。
归约得到的数据比原数据小得多,但可以产生相同或几乎相同的分析结果。
4.2 数量归约:直方图
4.3 数量归约:数据立方体
- 数据立方体是一类多维矩阵,可以使用户从多个角度探索和分析数据集,它的数据是已经处理过的,并且聚合成了立方形式。
- 数据立方体的基本概念。
①方体:不同层创建的数据立方体。
②基本方体:最低抽象层创建的立方体。
③顶方体:最高层抽象的立方体。
④方体的格:每一个数据立方体。


4.4 数据归约——属性子集选择
属性子集选择的基本启发式方法包括逐步向前选择、逐步向后删除、逐步向前选择和逐步向后删除的组合以及决策树归纳,表3.7给出了属性子集选择方法。

4.5 数据归约——抽样
- 允许用数据的较小随机样本(子集)表示大的数据集。
- 取样方法:
不放回简单随机取样 (Simple Random Sampling Without Replacement, SRSWOR)
放回简单随机取样(Simple Random Sampling With Replacement, SRSWR)
聚类取样(Clustered Sampling)
分层取样(Stratified Sampling)
不放回简单随机取样和放回简单随机取样重点
4.6 数量规约——聚类采样

4.7 数量规约——分层取样
首先将大数据集D划分为互不相交的层,然后对每一层简单随机选样得到D的分层选样。
如,根据顾客的年龄组进行分层,然后再在每个年龄组中进行随机选样,从而确保了最终获得分层采样数据子集中的年龄分布具有代表性。
5. 数据变化与数据离散化
数据变换:将数据转换成适合数据挖掘的形式
-
平滑:去掉数据中的噪声,将连续的数据离散化
分箱;回归;聚类
-
聚集:对数据进行汇总和聚集
avg(), count(), sum(), min(), max(),…;如,每天销售额(数据)可以进行聚集操作以获得每月或每年的总额;可用来构造数据立方体
-
数据泛化:使用概念分层,用更抽象(更高层次)的概念来取代低层次或数据层的数据对象
如:街道属性,可以泛化到更高层次的概念,如城市、国家;
同样,对于数值型的属性,如年龄属性,可以映射到更高层次的概念,如年轻、中年和老年。
-
规范化:把属性数据按比例缩放,使之落入一个特定的小区间
如:小数标定,最小-最大,z-score
-
属性构造:通过已知的属性构建出新的属性,然后放入属性集中,有助于挖掘过程。
-
离散化:数值属性的原始值用区间标签或概念标签替换。
如:分箱(等深,等宽);直方图