数据挖掘:数据清洗、转换和消减

来源:互联网 发布:arguest .js 编辑:程序博客网 时间:2024/04/30 04:14

转载自:http://blog.csdn.net/wang20054479/article/details/33389217

一、数据预处理包括数据清洗、数据集成、数据转换和数据消减:

1、  数据清洗(data cleaning)处理例程通常包括:填补遗漏的数据值、平滑有噪声数据、识别或除去异常值,以及解决不一致问题。

2、  数据集成(data integration)就是将来自多个数据源(例如:数据库、文件等)数据合并到一起。

3、  数据转换(data transformation)主要是对数据进行规格化操作。数据转换包含以下处理内容:(1)平滑处理,帮助除去数据中的噪声,主要技术方法有:bin方法、聚类方法和回归方法。(2)合计处理,对数据进行总结或合计操作。(3)数据泛化处理,所谓泛化处理就是用更抽象(或更高层次)的概念来取代低层次或数据层的数据对象。(4)规格化,规格化就是将有关属性数据按比例投射到特定小范围之中,以消除数值型属性因大小不一而造成挖掘结果的偏差。(5)属性构造,根据已有属性集构造新的属性,以帮助数据挖掘过程。

4、  数据消减(data reduction)的目的就是缩小所挖掘数据的规模,但却不会影响(或基本不影响)最终的挖掘结果。现有的数据消减包括:(1)数据聚合(data aggregation),如构造立方(cube);(2)消减维度(dimension reduction),如:通过相关分析消除多余属性;(3)数据压缩(data compression),如:利用编码方法(如最小编码长度或小波);(4)数据块消减(numerosity reduction),如:利用聚类或参数模型替代原有数据。

二、数据清洗:现实世界的数据常常是有噪声、不完全的和不一致的。数据清洗例程通过填补遗漏数据、消除异常数据、平滑噪声数据,以及纠正不一致的数据。

1、遗漏数据的处理方法:(1)忽略该条记录,若一条记录中有属性值被遗漏了,则将此条记录派出在数据挖掘过程之外,尤其当类别属性(class label)的值没有而又要进行分类数据挖掘时。(2)手工填补遗漏值,一般讲这个方法比较耗时,而且对于存在许多遗漏情况的大规模数据集而言,显然可行性较差。(3)利用缺省值填补遗漏值,对一个属性的所有遗漏的值均利用一个事先确定好的值来填补。(4)利用均值填补遗漏值,计算一个属性(值)的平均值,并用此值填补该属性所有遗漏的值。(5)利用同类别均值填补遗漏值,这种方法尤其在进行分类挖掘时使用。(6)利用最可能的值填补遗漏值,可以利用回归分析、贝叶斯计算公式或决策树推断出该条记录特定属性的最大可能的取值。

三、数据集成处理需要考虑以下几个问题:(1)模式集成(schema integration)问题,即如何使来自多个数据源的现实世界的尸体相互匹配,这其中就涉及到实体识别问题(entity identification problem)。(2)冗余问题,这是数据集成中经常发生的另一个问题。(3)数据值冲突检测与消除,对于一个现实世界实体,其来自不同数据源的属性值或许不同。产生这样问题原因可能是表示的差异、比例尺度不同、或编码的差异等。

四、数据转换处理,所谓数据转换就是将数据转换或归并以构成一个适合数据挖掘决的描述形式。数据转换包含的处理内容有:(1)平滑处理。帮助除去数据中的噪声,主要处理方法有:bin方法、聚类方法和回归方法。(2)合计处理。对数据进行总结或合计操作。(3)数据泛化处理。所谓泛化处理就是用更抽象(更高层次)的概念来取代低层次或数据层的数据对象。(4)格式化。格式化就是将有关属性数据按比例投射到特定小范围之中。(5)属性构造。根据已有的属性集构造新的属性,以帮助数据挖掘过程。

五、数据消减,对大规模数据库内容进行复杂的数据分析通常需要耗费大量时间,这就常常使得这样的分析变得不现实和不可行,尤其是需要交互式数据挖掘时。数据消减技术正是用于帮助从原有庞大数据集中获得一个精简的数据集合,并使这一精简数据集保持原有数据集的完整性,这样在精简数据集上进行数据挖掘显然效率更高,并且挖掘出来的结果与使用原有数据集所获得结果基本相同。数据消减的主要策略有以下几种:(1)数据立方合计(data cube aggregation),这类合计操作主要用于构造数据立方(数据仓库操作)。(2)维数消减,主要用于检测和消除无关、弱相关、或冗余的属性或维(数据仓库中属性)。(3)数据压缩,利用编码技术压缩数据集的大小。(4)数据块(numerosity)消减,利用更简单的数据表达形式,如参数模型、非参数模型(聚类、采样、直方图等),来取代原有的数据。(5)离散化与概念层次生成。所谓离散化就是利用取值范围或更高层次概念来替换初始数据。利用概念层次可以帮助挖掘决不同抽象层次的模式知识。


0 0