|
数据预处理没有统一的标准,只能说是根据不同类型的分析数据和业务需求,在对数据特性做了充分的理解之后,再选择相关的数据预处理技术,一般会用到多种预处理技术,而且对每种处理之后的效果做些分析对比,这里面经验的成分比较大,即使是声称数据挖掘专家的人可能在某一个方面研究得很深入,但面对新的应用情况和数据,一开始他也不可能很有把握地说能挖掘出有价值的东西,数据挖掘这个术语原来也叫数据采矿,就好比采矿,需要耐心,需要经验,学要总结。其本身是一个综合学科:人工智能,机器学习,数据库,统计学等学科的大综合。个人认为在挖掘中对某一个具体问题做过多的纠缠是无益的,理论上再适合,但没经过你动手去检验,去比较之前那都是虚的。数据挖掘是一个反复的过程,而不是一劳永逸的一次性处理,比如SPSS的CRISP-DM处理过程模型就是个很好的诠释。 再就是在挖掘的每个过程中,个人认为采用组件化,模块化的思想会有不错的效果,比如预处理过程你选择那些处理模块(实际上就是处理技术,算法)的组合,挖掘模型中采用那些算法组件[聚类算法有那些,分类算法有那些]的组合,展示的时候采用那些展示组件[直方图,散点图,曲线图等...]进行对比。整个挖掘过程就个搭积木的过程,不同的搭配会有不同的效果,这就需要实验,分析,对比,再分析,再实验,再对比...
主要的数据预处理技术:
一、数据清理 通过填写空缺值,平滑噪声数据,识别删除孤立点,并解决不一致来清理数据,主要是达到如下目标: 格式标准化 异常数据清除 错误纠正 重复数据的清除
(1)数据集压缩处理,主要策略: 数据聚集 维规约 数据压缩 数据规约
(2)空缺值处理,主要策略: 忽略元组 人工填写空缺值 使用固定值 使用属性平均值 使用最有可能值
(3)噪声数据处理,主要策略: 数据平滑技术: 需要做分箱处理 箱的深度:表示不同的箱里有相同个数的数据。 箱的宽度:每个箱值的取值区间是个常数。 平滑方法: 按箱平均值平滑 按箱中值平滑 按箱边界值平滑
聚类技术: 每个簇中的数据用其中心值代替 识别检测并忽略孤立点
计算机和人工检查相结合技术: 先通过聚类等方法找出孤立点。这些孤立点可能包含有用的信息。 人工再审查这些孤立点
回归技术: 通过构造函数来符合数据变化的趋势,这样可以用一个变量预测另一个变量。 线形回归 多线形回归
二、数据集成: 将多个数据源中的数据结合起来并统一存储,建立数据仓库的过程实际上就是数据集成。 实体识别 实体和模式的匹配 冗余:某个属性可以由别的属性推出。 相关分析 重复 同一数据存储多次 数据值冲突的检测和处理
三、数据变换: 平滑 聚集 数据概化 规范化 最小 最大规范化 小数定标规范化 属性构造:由给定的属性构造和添加新的属性,以帮助提高精度和对高维数据结构的理解
四、数据归约: 1、维归约 删除不相关的属性(维)来减少数据量。 属性子集选择 找出最小属性集合,使得数据类的概率分布尽可能地接近使用所有属性的原分布 如何选取? 贪心算法 逐步向前选择 逐步后向删除 向前选择和后向删除相结合 判定树归纳
2、数据压缩 有损,无损 小波变换 将数据向量D转换成为数值上不同的小波系数的向量D’. 对D’进行剪裁,保留小波系数最强的部分 主成分分析
3、数值归约 回归和对数线形模型 线形回归 对数线形模型 直方图 等宽 等深 V-最优 maxDiff 聚类 多维索引树 : 对于给定的数据集合,索引树动态的划分多维空间。 选样 简单选择n个样本,不放回 简单选择n个样本,放回 聚类选样 分层选样
五、离散化和概念分层 离散化技术用来减少给定连续属性的个数,这个过程通常是递归的,而且大量时间花在排序上。 对于给定的数值属性,概念分层定义了该属性的一个离散化的值。
数值数据离散化和概念分层生成方法有: 分箱 直方图分析
分类数据的概念分层生成方法有: 由用户和专家在模式级显式的说明属性的部分序 通过显式的数据分组说明分层结构的一部分 说明属性集,但不说明他们的偏序 只说明部分的属性集
|