数据预处理的主要任务如下:
(1)数据清理:填写空缺值,平滑噪声数据,识别,删除孤立点,解决不一致性
(2)数据集成:集成多个数据库,数据立方体,文件
(3)数据变换:规范化(消除冗余属性)和聚集(数据汇总),将数据从一个较大的子空间投影到一个较小的子空间
(4)数据归约:得到数据集的压缩表示,量小,但可以得到相近或相同的结果
(5)数据离散化:数据规约的一部分,通过概念分层和数据的离散化来规约数据,对数字型数据比较重要。
1.数据清洗
(1)处理空缺值:
A. 忽略元组
B.人工填写空缺值
C.使用一个全局变量填充空缺值
D.使用属性的平均值填充空缺值
E.使用与给定元组属同一类的所有样本的平均值
F.使用最可能的值填充空缺值,使用像Bayesian公式或判定树这样的基于推理的方法(目前最流行的方法是基于这个思路的)
注意:并非所有的空缺值都是说数据有错误,如果该值允许空缺值,那么说明数据是没问题的,但是应该给与空缺值一个合理的意义。
2.处理噪声数据
噪声:一个测量变量中的随机错误或偏差
A.分箱(binning)(等深或等宽分箱)
首先排序数据,并将他们分到等深的箱中
然后可以按箱的平均值平滑,按箱中值平滑,按箱的边界值平滑
B.聚类:检测并且去除孤立点
C.计算机和人工检查结合:计算机检测可疑数据,然后对他们进行人工判断
D.回归:通过让数据适应回归函数来平滑数据,对连续的数字型数据较好
3.数据变换
A.平滑:去除数据中的噪声
B.聚集:数据汇总,数据立方体的构建,数据立方体的计算/物化(一个数据立方体在方体的最底层叫基本方体,基本方体就是已知存在的数据,对现有的数据按照不同维度进行汇总就可以得到不同层次的方体,所有的方体联合起来叫做一个方体的格,也叫数据立方体。数据立方体中所涉及到的计算就是汇总)
C.数据概化:沿概念分层向上汇总,数据立方体的不同的维之间可能存在着一个概念分层的关系
D.规范化:将数据按比例缩放,使这些数据落入到一个较小的特定的区间之内。方法有:
a.最小----最大规范化
b.Z-score规范化
c.小数定标规范化
E.属性的构造:通过现有属性构造新的属性,并添加到属性集中
4.数据归约
(1)数据归约可以用来得到数据集的归约表示,它小得多,但可以产生相同(或几乎相同的)分析结果
(2)数据归约策略
A.数据立方体聚集:
数据立方体是根据不同的维度对数据进行汇总,立方体的越顶层,其汇总程度就越高,数据量就越少。
对数据的表示就越概化。最底层的方体对应于基本方体,基本方体对应于感兴趣的实体。
在数据立方体中存在着不同级别的汇总,数据立方体可以看做方体的格,每一个较高层次的抽象将进一步减少结果数据集。
数据立方体提供了对预计算的汇总数据的快速访问,原则是使用与给定任务相关的最小方体,并且在可能的情况下,对于汇总数据的查询应当使用数据立方体。
B.维归约:用来检测或删除不相关的或基本不相关的属性或冗余属性或维,来减少数据量。
属性子集的选择:找出最小属性集,使得数据类的概念分布尽可能的接近使用所有属性的原分布,把不相关的属性全部删除。
可以减少出现在发现模式上的属性的数目,使得模式便于理解。
主要方法有:启发式的(探索式的try and error)方法,该方法包括逐步向前选择(从空属性集开始,每次选择都选择当前属性集中最符合的目标,
最好的属性,加到当前的属性集中,这样逐步的向前选择,把有用的属性一个一个的添加进来),
逐步向后删除(从属性全集开始,每次删除还在当前属性集中的最不适合的那个属性,最坏的属性,这样一个一个的删除,最后留下来的就是相关的属性),
向前选择和向后删除相结合(每次选择一个最好的属性,并且删除一个最坏的属性),判定归纳树
C.数据压缩:使用一些编码机制来压缩数据集。无损压缩(可以根据压缩之后的数据完整的构造出压缩之前的数据wrar. zip等,如字符串压缩)
和有损压缩(无法通过压缩之后的数据来完整的构造出压缩之前的数据,如音频/视频压缩,有时可以在不解压缩整体数据的情况下,重构某个片段,主要应用于流媒体传输)。
两种有损数据压缩的方法:小波变换和主要成分分析
D.数值归约:使用较小的,替代的数据来估计,替换,表示原数据(用参数模型):通过选择替代的,较小的数据表示形式来减少数据量。
方法主要有:有参方法(使用一个参数模型来估计数据,最后只要存储参数即可,有线性回归方法,多元回归,对数线性模型(近似离散的多维数据概率分布))和
无参方法(直方图(将某属性的数据划分为不相交的子集或桶,桶中放置该值的出现频率,其中桶和属性值的划分规则有:等深,等宽,V-最优,MaxDiff),
聚类(将数据集划分为聚类,然后通过聚类来表示数据集,如果数据可以组成各种不同的聚类,则该技术非常有效,反之如果数据界线模糊,则该方法无效。