基于聚类分析技术的数据清洗研究

 CN43-1258/T P ISS N1007-130X 计算机工程与科学

CO M P U T ER EN GIN EERIN G&SCI EN CE

2005年第27卷第6期 

 Vo l.27,N o.6,2005 

文章编号:1007-130X(2005)06-0070-02

基于聚类分析技术的数据清洗研究*

Improved A lgorithms fo r Data Cleansing

Based on Clustering Analy sis

刘 芳,何 飞

LIU Fang,HE Fei

(华中科技大学计算机科学与技术学院,湖北武汉430074)

(School of C omputer Science and Technology,Huazhong University of Science and Technology,Wuhan430074,C hina)

摘 要:数据清洗是建立数据仓库及进行数据挖掘的一个重要步骤。数据清洗的核心是检测近似重复记录,而聚类是将相似度高的数据对象聚集到一个类中的分析方法。本文描述的数据清洗过程就基于聚类分析,它将基于密度的改进聚类算法ICA D应用到数据清洗过程中,该算法通过不断调节密度发现近似重复记录,快速完成大容量数据清洗任务。

A bstract:Da ta cleansing is an impo rtant par t o f data war eho using and data mining,and finding the appr oximately dupli-cate databa se reco rds is a key techno lo gy of da ta cleansing.A no the r sub-a rea o f data mining is clustering analy sis,which co ng reg ates similar data recor ds in a g roup.T he data cleansing pro ce ss described in this paper is based on cluste ring,it em-plo y s the alg o rithm ICA D(Impro ved Cluste ring algo rithm s using A djustable Density)in the data cleansing process.ICA D can find appro ximately duplicate databa se reco rds by using adjustable density.I t acco mplishes the da ta cleansing task in a lar ge vo lume da ta set.

关键词:数据清洗;近似重复记录;聚类;ICAD

Key words:data cleansing;appr oximately duplica te record;clustering;ICAD

中图分类号:T P311.13文献标识码:A

1 引言

在当今时代,企业信息化的要求越来越迫切,其中一个很重要的方面就是企业数据的管理。为了支持正确的决策,就要求所管理的数据能准确地反映企业的实际情况。因此,建立数据仓库及进行数据挖掘的一个重要步骤就是数据清洗,将数据转换为一致的形式,以保证数据的正确性。

数据清洗过程的目的就是要解决“脏数据”的问题,而数据清洗活动的核心是清洗近似重复记录[1]。所谓的近似重复记录就是一个现实实体可能由多个完全不同的记录来表示。产生近似重复记录的原因有很多,包括拼写错误、不同的缩写、自由格式的文本串及数据的变迁等。近似重复记录清洗过程如下:首先,需要识别同一个现实实体的近似重复记录,即记录匹配过程;随后,将近似重复记录合并成一个包含该实体的更多属性且没有冗余信息的记录。

聚类是将相似度高的数据对象聚集到一个类中的方法,一种很自然的思想是将该技术用于近似重复记录的发现上。因此,本文将一种基于可调密度的改进聚类算法ICA D(Improved Clustering Algo rithm s U sing Adjustable Density,简称ICA D)应用到数据清洗中。该算法可以通过动态地修改其邻域半径来修改其密度参数。ICA D是基于DBSCA N的一种改进算法,它继承了D BSCAN算法高速度的优点。该算法的思想是,先对实验集进行聚类,通过计算同一个类中的数据相似度来判断其是否为近似重复数据,并调整邻域半径来修改其密度参数;如此反复,直到类中的数据均为近似重复数据为止,然后以确定后的参数为基础,将ICA D算法应用到整个数据集中,以完成近似重复记录发现的任务。

2 相关工作

识别近似重复记录的基本方法是采取排序-合并方

*收稿日期:2004-02-11;修订日期:2004-04-30

基金项目:国家“十五”重大科技专项课题(2001BA102A06-11)

作者简介:刘芳(1973),女,湖北武汉人,博士,讲师,研究方向为数据挖掘和软件工程;何飞,硕士生,研究方向为数据挖掘。

通讯地址:430074湖北省武汉市华中科技大学计算机科学与技术学院;Tel:(027)87544285

Address:Sch ool of Computer Science and Technology,H uazhong Univers ity of S cience and Techn ology,Wuh an,Hubei430074,P.

R.C hina

法,将每条记录与数据库的其他记录进行比较。该方法识别近似重复记录的精度较高,但时间复杂度为O(n2)(n为数据库中记录的条数)。在大数据量的情况下,其处理时间难以忍受。

文献[2]提出了基本近邻排序算法SN M(Sor ted-Neighborho od M etho d,简称SNM):首先抽取字段作为关键字对数据集进行排序,然后在排序的数据集上滑动固定大小为w的窗口,则每条新进入窗口的记录与窗口内先前的w-1条记录进行匹配比较。这种方法相对提高了识别速度,只进行w N次比较(N为总记录数),但它识别重复记录的精度很大程度上依赖于排序所选择的关键字。文献[3]对基本邻近排序算法进行了改进,从而提出了多趟邻近排序M P N(M ulti-Pass So rted-Neighborho od,简称M PN)。该算法在不同的键上多次排序,并分别计算邻近记录的相似度,最后综合多次计算的结果完成记录匹配过程。这种算法提高了精确度,但不能正确地检测出数据库中没有包含主键域的记录。

尽管识别重复记录受到很多关注,但识别率与识别精度并不令人满意,特别是识别海量数据时耗时太多。因此,本文提出用于海量数据中近似重复记录发现的ICA D算法。

3 基于IC AD的数据清洗过程

本文提出的基于ICA D的数据清洗过程按数据样本的挑选、基于ICA D的近似重复记录检测、近似重复记录的剔除三个步骤进行。

S tep1数据样本的挑选:本文使用随机抽样的方法从大的数据集合中取出一部分特征数据作为实验集。

S tep2基于ICAD的近似重复记录的检测:先对实验集用ICAD算法聚类,接着通过计算类中数据之间的相似度,并调整邻域半径来修改密度参数,如此反复,直到类中的数据均为相似重复数据为止,然后以确定后的参数为基础,将ICAD算法应用到整个数据集中。

S tep3近似重复记录的剔除:经ICAD算法聚类后,同一类中的数据记录可以看作近似重复记录,我们只保留一个离中心点最近的数据记录,其他数据记录就视为近似重复记录,从而完成了近似重复记录的清洗。

本文后面将详述该数据清洗过程中的步骤2。

4 ICAD算法

4.1 预备知识

4.1.1 记录相似度匹配

两条记录是否重复需要通过字段匹配来决定。在计算两条记录相似度的过程中,首先采用Smith-Water man算法[4]分别对数字单词和字符单词进行比较,计算字段的相似度,然后根据字段的相似度再结合领域知识设置的字段权值计算整条记录的相似度。可以设定这样的规则:记录相似度超过一定阈值(如0.65)的两条记录视为重复记录。通过这种方法,可决定记录是否为重复记录。

4.1.2 DBSCAN算法

DBSCA N是一种基于密度的聚类算法,其基本思想是:考察数据库中的某一个点o,若o是核心点,则通过区域查询得到该点的邻域,邻域中的点和o同属于一个类,这些点将作为下一轮的考察对象(即种子点),并通过不断对种子点进行区域查询来扩展它们所在的类,直至找到一个完整的类。

DBSCAN有两个参数:半径ε—作为密度计算的距离表示;数值Minpts—密集点所必需的半径ε内拥有的最少的其他点的数目。通过这两个参数,我们就可以计算在任意点周围的密度值,从而将相邻点聚集在一起。DBSCA N 就是在N维空间中反复计算各点的密度,并将它们按照密度聚集成类。DBSCA N的效率非常令人满意,它是当前面向大数据集聚类算法中较快的一种。

4.2 IC AD算法

DBSCAN算法是一种通过对局部进行密度分析的聚类算法。DBSCA N算法不能直接用于数据清洗,其主要原因在于其密度的传递性质,往往将绝大多数的数据点都聚集在很少的几类中。而近似重复记录的特征与此相反,类较多,一个类中的对象相对较少。为解决这一问题,ICA D 在随机获取的实验集上聚类,以类中对象相似度为清洗质量评价标准,通过不断调整半径ε改变密度来满足清洗质量要求,从而获得合适的参数值,最后将该参数值用于全局数据源上,达到发现近似重复记录的目的。为提高准确度,在实际应用中实验集可选取多个,参数值取其平均值。下面给出的算法描述只给出了一个实验集的情况: Algorithm ICAD(ε,M inpts,tes tset,DB)//testset是实验集,

//DB是整个数据集{

(1) S et the initial value ofε1,an d the M inpts1;

(2) Set the initial value of defultbound;//设置相似度的阈值

(3) ε=ε1;M inp ts=M inpts1;

(4) Useεand M inpts to get the co re points;

(5) clus ter=DBSC AN(ε,M inpts,testset);//以ε和

//M inpts为参数对tes ts et聚类

(6) For each clus ter in clusters

(7) For(each O in clu ster){

(8) S imilarReco rd(O i,O j);};

(9) If Similar Record(O i,O j)≥defaultbound;

(10) goto(14)

(11) els e{

(12) ε=ε/2;

(13) goto(5);}

(14) DBSCAN(ε,M inpts,DB)}

其中,SimilarRecord(O i,O j)函数就是4.1.1节记录相似度匹配的实现,返回记录O i和O j的相似度。DBSCA N(ε, Minp ts,testset)是DBSCA N算法的实现,返回聚类结果。按照以上的算法描述,ICA D的时间复杂度是O(n log n+i k)(n 为数据库中的数据数,i为实验集数据,k为实验集簇的数目)。实验集数据和实验集簇的数目非常小,因此ICA D的时间复杂度为O(n log n)。

5 结束语

我们的数据来源于国家外汇局决策支持系统中一张包含有34个字段、245849条记录的表。分别采用随机抽取将200、500、1000、2000条记录作为实验集,取参数的平均值作为用于整个数据集合的参数。我们分别使用基本邻近排序方法和基于ICA D的数据清洗方法在同等实验条件下对数据进行清洗,并对运行时间和精度进行了比较。从实

(下转第77页)

(3)按2.2节信赖域步长计算方法求出TrialStep。

(4)利用有效信赖域步长算法和信赖域变系数自适应调整算法得到ValidS tep和h k+1,并得到W k+1=W k+ΔW TR。

(5)计算g k+1,得到Δg k,

IF Δg k=0

则stop=1,

ELSE

按变尺度方法中BFGS迭代公式(5)得到W k+1处的B k+1

(6)IF E k+1<ε或者k=epoch

输出W w+1作为最终权值,停止学习

ELSEIF stop=1

输出W k作为最终权值,停止学习

ELSE

k=k+1,转(2)

5 实验

异或问题是一类非线性可分问题,本文通过该分类问题来说明信赖域学习算法是一种快速高效的学习算法。为了便于比较分析,选用带线性搜索技术的变尺度学习算法作为参考算法。衡量算法性能指标选用学习迭代的次数。

选择网络结构为M LP2:2:1。ε取0.1~0.0000001间不同值,初始权值取值范围在-0.5~0.5之间,学习次数最大为800次。实验在M atlab上进行。每个精度进行10组实验,每次实验随机取不同的权值。采用批量学习的模式。在获取原始数据的基础上,去掉学习不成功的数据,然后求均值,作为该精度下的学习次数。具体实验数据见表1所示。

表1 两种算法在不同学习精度下的学习次数(取平均值)

0.10.010.0010.00010.000010.0000010.0000001 BFGS2031347589147800

T R129337579101103

实验结果说明,变尺度算法和信赖域算法都是快速学习算法,当学习精度在0.1~0.000001之间时,收敛的速度几乎一样快。而当误差较大时,信赖域算法能以较快速度收敛。这主要是因为信赖域算法继承了牛顿法的优点,能够以较大步长快速下降。当精度很高时,与变尺度法相比,信赖域法显示出明显的优越性。造成这种现象的原因是由于变尺度法使用的一维线性搜索技术在极值点附近很难精确地逼近到该点;而信赖域法采用的是区域搜索,可以看作是在多维空间里搜索,在极值点附近能很快逼近到该点。

实验中发现信赖域法有可能在未达到学习精度时就停止学习,有两种情况:

(1)信赖域学习算法有和其它学习算法相同的缺陷:有可能因为陷入局部极值点而无法收敛。克服这种缺陷通常的做法是增加学习次数,每次学习采用不同的初始权值,减小其陷入局部极值点的可能性。

(2)第二种情况与该算法本身特性有关。当学习进行到W k处时,假如在该点的二阶模型q k与误差函数相差很大,极限情况下只有h k→0时q k与误差函数符合得较好,由于‖ΔW k‖≤h k,则‖ΔW k‖→0。由拟牛顿方程Δg k= B k+1ΔW k得Δg k→0。这种情况下,BFG S迭代计算无法进行下去,学习过程被迫终止。可以根据g k来区别这两种情况,前一种情况下g k接近于0,后者‖g k‖依然是一个较大值。6 结束语

本文在信赖域优化算法和变尺度学习算法基础上提出的信赖域学习算法,利用闭区域搜索技术代替变尺度法中的一维搜索技术;相对于一维搜索,用Dog leg法求解步长开销更小,理论上学习效率更高。实验表明,这是一种快速的学习算法。由于该方法依赖于二阶模型与实际模型的近似程度,某些情况下不适用,还存在一些缺陷,需要进一步改进。

参考文献:

[1] 栗塔山,彭维杰,周作益,等.最优化计算原理与算法程序设

计[M].长沙:国防科技大学出版社,2001.

[2] 濮定国,余德兴.一类Dog leg路径信赖域方法[J].应用数学

与计算机学报,2002,16(1):47-56.

[3] Zhao Yingliang,Xu Ch engxian.A New Trus t Region Dogleg

M ethod for Uncon strain ed Optimization[J].Appl M ath-

JC U,2000,15(1):83-92

[4] Eiji M izutani.Pow ell's Dogleg Trust-Region Steps with the

Quasi Newton Augmented Hessian for Neu ral Nonlinear Least-

Squares Learning[J].Neural Netw orks,1999,2(4):1239-1244.

[5] 曹洪洋,李万庆,李文华,等.前馈神经网络的一种新的学习

算法[J].微机发展,2001,11(4):50-53.

[6] 张星昌.前馈神经网络的新学习算法研究及应用[J].控制与

决策,1997,12(3):213-216.

(上接第71页)

验结果可以得知,和基本邻近排序方法相比,基于ICAD的数据清洗方法速度更快;而且,随着数据量的增加,这种优势更加明显。这都得益于ICA D算法继承了DBSCAN算法高速度的优点。在准确性方面,两种方法相差不多,这是因为参数调整控制了类中对象的数量,避免了DBSCA N产生的类较大,从而类中包含不相似记录的现象。

综上所述,本文提出的ICAD数据清洗方法是基于聚类分析技术,能够对海量数据进行快速的近似重复记录识别,从而极大地提高了大容量数据的数据清洗效率。

参考文献:

[1] 郭志懋,周傲英.数据质量与数据清洗研究综述[J].软件学

报,2002,13(11):2076-2081.

[2] M A Hernandez,S J Stolfo.The M erge/Purge Problem for

Large Databases[A].Proc of the ACM SIGM OD Int'l Conf

on M anagement of Data[C].1995.127-138.

[3] M A Hernandez,S J S tolfo.Real-World Data Is Dirty:Data

Cleansing and the M erge/Pu rge Prob lem[J].Data M ining

and Kn ow ledge Discovery,1999,2(1):9-37.

[4] A E M onge.C P Elkan.An Efficient Dom ain-Independent

Algorithm for Detecting Approxim ately Duplicate Database

Reco rd s[A].Proc of the SIGM OD1997Works hop on Re-

search Issues on Data M ining and Know ledge Discovery[C].

1997.23-29.

[5] Agraw al R.Au tomatic Su bspace C lustering of High Dimen-

sional Data for Data M ining Application[A].P roc of the

1998AC M S IGM OD Int'l Conf on M an agemen t of data[C].

1998.73-84.

相关文档
最新文档