对数据预处理方法的分析与思考
针对不同类型的数据,有不同的数据预处理方法。要成功地进行预处理,需要恰当地选择和应用这些方法,首先对各种方法都要熟悉。而在对数据预处理方法的分析过程中,发现以下特征:
1、某些预处理方法在不同的阶段可分别使用。
2、预处理方法中有较多的统计方法。
下面就这两个发现进行分析和思考。
1 不同阶段中相同的预处理方法
在数据清理这一阶段的光滑噪声技术中,可以使用这三种方法:分箱、回归、聚类,而在数据归约这一阶段中,我们可以再次使用这些方法来实现对数据的归约。即是说,有些方法可以在数据预处理的不同阶段使用,分别达到相应阶段的预处理效果。
首先就这些方法做一个概述:
分箱:可以选用箱均值或箱中位数或箱边界平滑噪声,也可以用作数值归约和概念分层产生的离散化方法。
回归:在数据清理阶段,既可以用来填充缺失值,又可以平滑噪声,同时在数据归约阶段还可以实现数值归约。
聚类:在平滑噪声时可以使用这种方法,在数据归约阶段,聚类方法用数据的簇来表示要替换的实际数据,达到数值归约的目的,聚类分析可以通过离散化数值属性来达到离散和概念分层,从而实现数据归约。
决策树:可以通过构造决策树预测属性的值来填充缺失值,也可以用决策树进行属性子集选择,实现数值归约。
χ2检验:用来检测两个属性之间的相关性。在数据集成时为识别冗余属性时可以采用此法,也可以通过这种方法在归约阶段实现数值数据的离散化和概念分层产生。
思考如下:
(1)这里的方法中的大部分是可以在数据清理和数据归约中都使用的。为了方便,同一数据挖掘算法中,在允许的条件下,尽量选择在数据预处理的这两阶段采用同一技术。这样还可以有效降低算法的复杂度以及空间成本、时间成本和研究成本。大量事实说明,并非越复杂的算法效果越好,特别是在海量数据处理时,我们应当优先选用处理方便、节省时间和空间的简洁算法。当然是在实际数据的特征满足条件的前提下。
(2)数据清理和数据归约在整个预处理过程中相对更重要,特别是数据归约。人们对其方法的应用与研究更多一些。
2 预处理中的统计方法
在数据预处理方法中使用了多种统计方法。如下表4-1:
表4-1预处理中的统计方法
思考如下:
(1)能否将统计学当中的一些方法无变化地、直接地用到数据挖掘的数据预处理中?为什么?
(2)如果不能,这些统计方法又怎样才能有效地应用到数据预处理中去?
答案是否定的。
因为数据挖掘中的数据预处理与传统统计学和数理统计中处理的数据对象特征有着很大的差别。一般地,不能无变化地、直接地应用统计方法,而要结合预处理处理的是复杂的大规模数据这一特征,以及挖掘的知识发现任务和实际应用的专业知识进行灵活应用。
详细分析如下:
(一)、与传统统计学的应用区别
传统统计学所处理的数据,是以概率论为基础,通过预先设计的试验方法或抽样方法而获得的,这保证了这些数据满足一定的概率模型。但是挖掘中的数据预处理所面临的数据并不是基于这些方法收集的,它们是是大规模的数据。
统计中的大数定律、中心极限定理都考虑本容量趋一于无穷的情况。因此如果只是大量数据的话,我们可以利用极限理论进行很好的处理。但是数据挖掘所面临的大规模数据,不仅仅是大量,还存在着别的难点。首先大规模包含有两重含义:
数量超巨大;
变量个数巨大。
另外还有这样一些特点:
1)质的数据与量的数据混合在一起;
2)无独立性,即数据之间存在着复杂的相关关系;
3)存在大量的缺失数据;
4)产生数据的框架是不同的,即数据不是从同一个母体中产生的。
在传统的统计学中,具有这样一些特点的数据,常常被称为“异常数据”当然在统计学中也有一些处理个别异常数据的方法,但目前还没有很好的手段能处理数据挖掘所面临的这些问题。将数据冠之以“异常”,而逃避处理这样的数据是简单的,但是只要数据没有错误,人们总是希望从中获得一些有意义的信息,并有必要为此做出努力。如果仅仅是样本容量大,可以利用极限理论来加以解决,如果是变量个数多,我们也可以用多元分析方法、即法等来加以处理。
但当产生数据的框架不同时,处理将会变得非常困难。我们的解决方案并不是增加搅乱参数,使问题复杂化,而是只要增加其适应性就可以解决的。所以数据量很大这一初见之下很好的条件,由于数据构造的复杂性反而使得传统的统计方法无法容易地处理。
(二)、与数理统计的区别
数理统计和数据挖掘有着共同的目标:发现数据中的规律。并且,有许多数据挖掘工作还用了数理统计的算法或模型,还有,一些市场上所谓的数据挖掘工具软件却是统计软件或是从统计软件演变过来的。正因为如此,二者就成了最混淆的概念。但事实上二者在做法上是有很大不同的。
由于统计学基础的建立在计算机的发明之前,所以许多统计学方法是可以手工实现的。对于很多统计学家来说,儿百个数据或儿十个变量就已经是很大的了。但这个“大”对于现在计算机中GB级的交易记录或儿千万个客户信息来说相差太远了。很明显,面对这么多的数据,设计“原则上可以用手工实现”的统计方法和设计“原则上有计算机数据仓库支持”的数据挖掘方法是有很大不同的,很多统计模型和算法在处理大数据量时可能就会失去意义。这意味这计算机对于数据的分析和处理是关键的,而手工直接处理数据将变得不可行。
用样本推断总体规律是统计学的核心方法之一,而数据挖掘由于采用了计算机技术更关注对总体规律的分析。当然,数据挖掘也常常关注样本。
例如我们的数据库中有某厂历年生产的1000万台电视机和对应1000万个客户的全部信息。在这种情形下,用样本构造某种模型或某个估计值来推断1000万台电视机的使用情况就没有价值了,我们可以通过数据挖掘直接找出总体的规律。
但在一些预测性分析中,数据挖掘也常常使用样本。例如:对一个新产品的广告宣传活动进行响应率分析。对1000万人做该广`告,实际应该有10万人响应。但通过一个样本分析发现:其中有三类人群对该广告的响应率较高。因此,就有针对性地对高响应率的100万人做了该广告,结果获得了8万人的响应。
统计学研究问题的结果常常会得到一个统计模型,而这个模型是普遍适用的,而数据挖掘得到的是某个数据集的规律,常常不具有普遍意义。例如:“掷硬币出现正反面的概率都是50%。但在某个赌场,一年中每天掷出硬币,其正面出现的次数在68%一93%之间,统计学中“正反面出现的概率是50%”的推断在这样一个总体中就没有价值了。
由于数学背景,统计学追求精确,建立一个模型并证明之,而不是象数据挖掘那样注重实验。这并不意味着数据挖掘工作者不注重精确,而只是说明如果精确的方法不能产生结果的话就会被放弃。例如:证券公司的一个业务回归模型可能会把保证金作为一个独立的变量,因为一般认为大的保证金会导致大的业务,所以花费高成本开设了大户室。但事实上经过对一年来的交易情况进行数据挖掘却发现:交易频度和赢利情况才是最重要的。
如果我们注意到上述的差异,在处理实际问题的时候,结合数据挖掘中数据的特点,综合运用许多领域的各种专业知识,就能成功地将统计方法应用到数据预处理中去。而这些专业包括了数据库存管理、统计学、计算机科学、人工智能、模式识别、运筹学等。因此,很多时候我们仍然可以这样说:“将很多统计算法或模型写成计算机程序并能够用于大规模数据分析就变成了数据挖掘技术。”
《来源科技文献,经本人分析整理,以技术交友,广交天下朋友》