数据挖掘中数据预处理在图书借阅中的应用

2011-11-17 14:59况莉莉
淮北职业技术学院学报 2011年3期
关键词:计算机系遗漏淮北

况莉莉

(淮北职业技术学院计算机科学技术系,安徽淮北 235000)

·计算机研究·

数据挖掘中数据预处理在图书借阅中的应用

况莉莉

(淮北职业技术学院计算机科学技术系,安徽淮北 235000)

数据预处理是数据挖掘过程中前期的数据准备阶段,预处理后的数据质量直接影响到后期的挖掘结果和效率。通过对高校图书馆读者借阅数据的预处理,研究分析了几种常用的预处理技术,为进一步的图书借阅数据挖掘奠定了基础。

数据挖掘;数据预处理;图书借阅

0 引言

数据挖掘(Data Mining)就是从大量的、随机的、模糊的数据中发现潜在的、有用的信息和知识的过程。现实世界的数据库中数据量很大,常达数千兆,这就不可避免地包含数据冗余、数据分散、数据不一致等问题。在这样的数据中进行挖掘必然会影响挖掘的效率。高质量的决策依赖于高质量的数据[1],因此,数据预处理是数据挖掘前最重要的、必不可少的一个步骤。预处理后的数据质量能够得到很大提高,从而有助于提高其后的数据挖掘的精度和性能。本文将对数据预处理技术在高校图书馆图书借阅数据中的应用进行研究。

1 数据预处理

数据预处理简单的讲就是消除“脏”的数据(即包含噪音、不完整、不一致的数据),从而得到数据挖掘所需的干净的、简洁的、准确的数据。它主要包括数据清理、数据集成、数据转换和数据归约等几个部分。这几种数据预处理方法不是相互独立的,而是相互关联的,如对数据冗余的处理中既有数据清理又有数据归约。

1.1 数据清理

数据清理(data cleaning)是指消除数据中所存在的噪声、填充遗漏值、识别孤立点以及纠正数据不一致等操作。

1.1.1 噪音数据的处理

噪声是指数据中存在的错误或异常的数据。针对噪声数据的处理通常采用以下方法:

(1)分箱法。将数据排序后平均放入几个箱中,再使用平滑规则对每个箱子里的数据进行平均值、中值或者边界值转换等操作。

(2)回归法。利用回归分析方法获得拟合函数,再利用拟合函数对数据进行平滑,除去数据中的噪声。

(3)聚类法。利用聚类分析方法识别孤立点,即相似或相邻近的数据聚合在一起形成了各个聚类集合,而在这些聚类集合之外的数据,就是孤立点。

(4)人机结合法。利用人与计算机相结合的方法,比如人工设置阈值,帮助计算机识别孤立点。

1.1.2 遗漏值的处理

数据库某些属性值可能存在遗漏,对含有遗漏值比例较小的数据库,可以直接删除这些记录。然而当遗漏值较多时,如果采用直接删除法将大大减少数据量,从而导致错误的挖掘结果。因此,遗漏值处理是数据清理中一项重要工作。

针对遗漏值的处理通常采用以下方法:

(1)删除。若一条记录中有多个属性值被遗漏时,可以采用此方法。但当每个属性遗漏值的记录比例都很高时,这种方法是不可行的。

(2)填充。对于记录中各种属性值遗漏情况,可采用不同的方法。常用的填充方法有:人工填充、默认值填充、平均值填充、同类别均值填充和最可能的值填充。

1.2 数据集成

在数据集成时,通常需要考虑三个问题:

(1)“模式集成”问题[1],是指如何使来自多个数据源的实体相匹配,即实体识别问题。例如,如何确定图书借阅表中的“R_NONUME”与读者类型表中的“R_NO”表示的是同一实体,即读者类型编号。解决这个问题,通常使用数据库中的元数据—关于数据的数据。

(2)“冗余”问题[1],这是数据集成的另一个重要问题。若一个属性可以从其它属性中推导出来,那么这个属性就是冗余的。例如,在读书信息表中“BIRTHDAY”(出生年月)和“AGE”(年龄)可以相互导出,所以有一个属性就是冗余的,可删除。

(3)“数据值冲突的检测与处理”问题[1]。比如,对于同一实体,来自不同数据源的属性值可能不同,这主要是由于数据表示、数据单位或编码不一致造成的。例如,表中的日期格式可能是“YY-MM-DD”、“DD-MM-YY”或“MM-DD-YYYY”等。为了消除冲突,可以统一格式,从而消除语义上的差异。

1.3 数据转换

数据转换(data transformation)[2]就是对数据进行规格化操作。首先找到数据的特征表示,然后将数据转换或归并成一个适合数据挖掘的形式。数据转换通常包含以下处理方法:

(1)平滑处理。即去除数据中的噪声,主要技术方法有:分箱法、聚类法和回归法(见2.1.1)。

按照十八大报告健全反腐败法律体系的要求,一方面应清理已经过时、重复、操作性弱等的反腐败法律法规规定,另一方面应该重点制定制定出台如下若干关键性反腐败单行法规与配套法规。

(2)聚集处理。对数据进行汇总或聚合操作。例如,表2中“已借图书数”就可以通过聚合、汇总操作获得。通常这一操作用来构造数据方或对数据进行多粒度的分析。

(3)数据泛化处理。所谓泛化处理就是使用概念分层,用更抽象(更高层次)的概念来取代低层次的原始数据。例如,“单位”属性,就可以泛化到更高层次的概念,如所属系部。同样对于数值型的属性,如“年龄”属性,就可以映射到更高层次概念,如:年轻、中年和老年。

(4)规格化处理。格式化就是将有关属性数据按比例缩放,使之投射到一个特定小范围之中[1]。如将“年龄”属性值映射到-1.0到+1.0或0.0到1.0范围内。

(5)属性构造处理。根据已有的属性构造新的属性并添加到属性集中,以帮助挖掘过程。例如,“专业”属性就是用“单位”属性取子串构造的新属性。

1.4 数据归约

数据归约(data reduction)[5]用来得到数据集的归约表示,它比原数据集小得多,却尽可能地保留了原数据的完整性。数据归约技术可大大地提高数据挖掘的效率,并且可以得到与在源数据上挖掘的结果相同或几乎相同的结果。数据归约的方法主要有数据方聚集、维归约、数据压缩、离散化和概念层次树生成。本文进行数据归约时主要采用的是离散化和概念层次树生成技术。

离散化技术可以通过将连续取值的属性域值范围划分为若干区间(离散化),从而减少属性的取值个数。概念层次树可以通过数据泛化,利用高层次概念替代低层次概念(如年龄的数值),从而压缩原来的数据集[1]。在数据泛化过程中,虽然一些细节消失了,但这样处理后所获得的泛化数据会更易于理解、更有意义,并且使数据挖掘效率更高。

2 基于数据挖掘的图书借阅数据预处理

本文数据源来自淮北职业技术学院图书流通系统数据库从2008年1月1日到2008年12月30日共36802条的图书借阅数据,相关的有四张表:图书信息表:Books(BID B-Name,B-Barcoad,Author,Press,Pub-Date,Price,Tctal-Number,col-Area,Introduction);图书借阅表:Readers(Lib-No,lend-Date,B-ID,B-Name,R-Nonume,B-Total,Handler,lend-Rule,lend-Approach);读书信息表:Booklend(Lib-No,R-Name、R-Sex,Birthday,Age,Unit,T-No,Tel);读者类型表:R-Type(R-No,R-Type,Lend-Number, Lend-Period)。下面将对数据源进行数据集成、数据清理、数据转换和数据归约等预处理,为以后的针对读者特征与所借图书之间的关联规则数据挖掘做好准备。

2.1 数据集成

由于图书借阅数据分散在四张数据表里,所以需要整合这些数据表中各字段。

从Books、Readers、Book_Lend和R_Types中提取所需的数据字段构成Reader_Transaction(读者借阅事务表),读者借阅事务表:Reader-Transation(Lib-No,R-sex,Grade,Unit,B-ID,R-No)。其中Book_Lend表中的LIB_NO(借书证号)与Readers表中的LIB_NO(借书证号)进行外键关联;Book_Lend表中的B_ID(索书号)与Books表中的B_ID(索书号)进行外键关联;Book_Lend表中R_NO(类型编号)与R_Types表中的R_NO(类型编号)进行外键关联。

2.2 数据清理

本文采用SQL Server 2005的SSIS中提供的数据清理功能。比如,有一些记录借书证号或索书号字段值遗漏,这些是错误信息,应将其删除。针对这一问题,首先,编写用于删除的SQL脚本命令;然后,选择SSIS包中的EXECUTE SQL TASK对象,执行包含在*.sql文件中的Transact_SQL查询,这样就可以实现数据的清理。

数据清理还包括数据的一致性确认。手工进行数据一致性确认的时间和费用开销都很大,只适用于小规模的数据集,对于大规模的数据集通常需要进行自动数据清理。自动数据清理主要包括三个步骤:定义错误类型;识别错误实例;纠正发现的错误。比如,在图书借阅信息表中索书号中含有“_”、“:”、“·”以及空格等不利于数据的处理,所以应该统一将数据用“·”做为分隔符。

数据清理后,读者借阅事务表中还有30560条记录。

2.3 数据筛选

数据筛选也称为数据取样[1][4],是指在对数据内容和挖掘任务理解的基础上,发现数据特征,在尽可能保持数据原貌的前提下,压缩数据规模,最大限度地精简数据量。通过数据筛选可以使得数据的规律性和潜在特性更加明显。

由于读者的图书借阅信息与所学的专业有很大的联系,因此还需要对读者的专业加以考虑。本文只选取计算机系学生7426条图书借阅记录进行挖掘。计算机系图书借阅历史表1主要包括借书证号、性别、年级、专业(通过“单位”属性构造的新属性)和索书号等内容,如图1所示。

图1 计算机系图书借阅历史表1

2.4 数据转换

基于以后使用的Microsoft关联规则算法,在这里需要将计算机系读者借阅表转换成事例表和嵌套表。事例表是指存放一次事务的标识信息表。嵌套表是事例表中事务的具体细节内容表。下面将建立一个事例表—计算机系读者标识表和一个嵌套表—计算机系图书借阅历史表,其结构如表1所示。

表1 计算机系读者标识表和图书借阅历史表结构

计算机系读者借阅标识表中“读者标识号”设置为标识字段,这样就可以通过“读者标识号”来区分不同读者的单次借阅行为。因为在每次借阅图书时会先在计算机系读者借阅标识表中插入自增标识号,当计算机系读者借阅历史表增加新记录时则使用刚插入的自增标识号作为“读者标识号”,这样两张表便形成一对多的关系。

为了实现计算机系读者借阅标识表,可通过执行以下SQL脚本命令:

数据转换后,得到所需的计算机系图书借阅历史表2,如图2所示。

图2 计算机系图书借阅历史表2

2.5 数据归约

根据Microsoft关联规则算法的需要,在进行关联规则挖掘前,应先将数据离散化,如表2所示。

表2 读者分类参数表

离散化的计算机系图书借阅历史表,如图3所示。

图3 计算机系图书借阅历史表

数据归约前数据库的大小为98M,压缩后数据库的大小为20.6M,大大节省了数据占用的内存资源。至此,就完成了对淮北职业技术学院图书馆图书借阅数据的预处理工作,以后就可以对得到的计算机系图书借阅历史表进行数据挖掘。

3 结束语

目前,数据挖掘的研究大多集中在算法的开发和改进,而对数据预处理的探讨不多。实际上,数据预处理占整个数据挖掘过程的70%以上,预处理后的数据质量直接影响数据挖掘的后期工作。本文将数据预处理技术应用到高校图书馆图书流通系统,节省了图书流通数据库的占用空间,并对其后的关联规则挖掘做好了准备,从而能更好地为读者提供个性化服务。

[1]JiaweiHan,MichelineKamber.数据挖掘-概念与技术[M].范明,孟小峰,等,译.北京:机械工业出版社,2005(11):70-93.

[2]苏成.数据挖掘中不可忽视的环节—数据预处理[J].华南金融电脑,2006(1):64-66.

[3]鲍静,范生万.基于数据挖掘的图书数据预处理[J].大学图书情报学刊,2008,26(2):31-33.

[4]彭高辉,王志良.数据挖掘中的数据预处理方法[J].华北水利水电学院学报,2008,29(6):61-63.

[5]刘越江,黄今慧.数据挖掘中的数据预处理技术[J].科技情报开发与经济,2003,13(5):170-171.

TP311

A

1671-8275(2011)03-0117-03

2010-12-06

本文系淮北职业技术学院课题“高校图书馆数字化建设”(项目编号:2001-A-4)阶段性研究成果。

况莉莉(1976-),女,安徽淮北人,淮北职业技术学院计算机系讲师,硕士研究生。研究方向:数据挖掘。

孟云玲

猜你喜欢
计算机系遗漏淮北
遗漏的光阴
《淮北师范大学学报》(自然科学版)征稿简则
《淮北师范大学学报》(自然科学版)征稿简则
计算机系简介
童年趣事之不一起玩的理由
童年趣事之不一起玩的理由
应用品管圈降低腹腔镜抗反流手术术前准备遗漏率的实践
《淮北枳》
淮北 去产能的黑色面孔
遗漏焦虑