基于 WEKA 平台的数据挖掘研究及二次开发
摘 要
伴随着传统的商业智能系统向纵深应用的拓展,商业决策已经越来越依赖于数据。企
业用以分析的数据越全面,结果就越接近于真实。大数据分析意味着企业能够从这些新的
数据中获取新的洞察力,并将它与已知业务的各个细节相融合。业界人士认为数据不能停
留数据存储的阶段,而是要转换成为有价值的信息服务,创造新的商业机会。
近年来,数据挖掘引起了信息产业界的极大关注,其主要原因是各个行业、生产与生
活中都存在大量数据,可以广泛使用,并且迫切需要将这些数据转换成有用的信息和知识。
获取的信息和知识可以广泛用于各种应用,包括商务管理,生产控制,市场分析,工程设
计和科学探索等。
本文首先针对数据挖掘技术作了比较全面的综述,并深入分析聚类方法。其次使用了
在典型的开放数据挖掘工具 WEKA,进行数据挖掘测试,主要包括预处理、分类、聚类、
属性选择、关联规则及可视化等,并对挖掘结果进行统计分析,指出 WEKA 系统存在的
缺陷及发展前景。为了弥补 WEKA 系统存在的一些缺陷,本文还在 WEKA 平台下进行
二次开发,根据描述的 k-中心点轮换法的算法流程,利用 MyEclipse 在 WEKA 平台下嵌
入该算法,并对其进行优化以提高其聚类效果。
虽然本文研究的 WEKA 数据挖掘工具目前还处于研究阶段,但它却汇集了多样化的
机器学习算法,是数据挖掘研究的理想选择。同时,本文所研究的 k-中心点轮换算法改
进了传统的 k-中心点算法,避免陷入局部最优,并进行了属性正常化、处理残缺值等优
化,聚类效果明显提高了。
关键字:数据挖掘,聚类,WEKA,K-中心点轮换算法
目录
第 1 章 绪 论 ........................................................................................................................................................ 1
1.1 研究背景与意义 ................................................................................................................................ 1
1.2 主要研究内容 .................................................................................................................................... 1
1.3 论文结构 ............................................................................................................................................ 2
第 2 章 数据挖掘相关研究 .................................................................................................................................. 3
2.1 数据挖掘定义 .................................................................................................................................... 3
2.2 数据挖掘基本功能 ............................................................................................................................ 3
2.2.1 概念描述 ................................................................................................................................ 3
2.2.2 关联分析 ................................................................................................................................ 4
2.2.3 分类和预测............................................................................................................................ 4
2.2.4 聚类分析 ................................................................................................................................ 4
2.2.5 孤立点分析............................................................................................................................ 4
2.2.6 演变分析 ................................................................................................................................ 5
2.3 数据挖掘流程 .................................................................................................................................... 5
2.4 数据挖掘的常用方法和技术 ............................................................................................................6
2.5 国内外数据挖掘概况 ........................................................................................................................ 7
2.6 聚类分析概况 .................................................................................................................................... 7
2.7.1 聚类分析定义 ............................................................................................................................... 7
2.7.2 主要聚类方法的分类.................................................................................................................. 8
第 3 章 基于 WEKA 平台的数据挖掘测试.......................................................................................................... 11
WEKA 系统简介 ................................................................................................................................. 11
WEKA 系统特点 ................................................................................................................................. 11
3.2.1WEKA 系统的文件格式............................................................................................................. 12
3.2.2WEKA 系统界面 ......................................................................................................................... 13
3.2.3 WEKA 实现的功能及算法 ....................................................................................................... 15
3.2.4WEKA 系统的包结构 ................................................................................................................ 18
WEKA 系统的挖掘测试及结果分析 ................................................................................................21
3.3.1 WEKA 系统的数据挖掘过程................................................................................................... 21
3.3.2 WEKA 系统的挖掘实验........................................................................................................... 23
3.3.3 WEKA 系统中存在的问题 ....................................................................................................... 31
第 4 章 WEKA 平台下的二次开发 ...................................................................................................................... 33
4.1 二次开发背景及一般过程 ..............................................................................................................33
4.1.1 二次开发背景............................................................................................................................ 33
4.1.2 二次开发一般过程.................................................................................................................... 33
4.1.3 系统的开发与运行环境............................................................................................................ 33
K-中心点轮换算法.......................................................................................................................... 34
K-中心点轮换算法的实现 ..............................................................................................................36
4.3.1 K-中心点轮换算法的类模块关系.............................................................................................36
4.3.2 K-中心点轮换算法的流程图.....................................................................................................37
4.3.3 K-中心点轮换算法的类说明.....................................................................................................38
K-中心点轮换算法的测试 ..............................................................................................................40
结 论...................................................................................................................................................................43
3.1
3.2
3.3
4.2
4.3
4.4
I
致 谢...................................................................................................................................................................44
参考文献 ...............................................................................................................................................................45
II
第 1 章 绪 论
1.1 研究背景与意义
近年来,随着大规模的工业生产过程的自动化、商务贸易电子化及企业和政府事务电
子化的迅速普及科学计算的日益增长,产生了大规模的数据源。计算机网络技术的长足进
步也为数据的传输和远程交互提供了技术手段。日益成熟的数据库系统和数据库管理系统
都为这些海量数据的存储和管理提供了技术保证,为步入信息时代奠定了基础,这些庞大
的数据库及其中的海量数据是极其丰富的信息源。
在这些信息源中隐藏了许多有潜在价值的知识,如何发现这些有用的知识是人工智
能、数据库等领域的研究焦点。但是仅仅依靠传统的数据检索机制和统计分析方法已经远
远不能满足需要了。因此,近年来出现了一门新兴的知识获取提取技术——数据挖掘技术。
数据挖掘(Data Mining,DM)就是指从大量不完全的、有噪声的、模糊的、随机的实际
应用数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过
程,其中,主要包括数据清洗、数据集成、数据选择、数据转换、数据挖掘、模式评估及
知识表示等几个阶段。在“数据丰富,但信息贫乏”的今天,它的出现为自动和智能地把
海量的数据转化成有用的信息和知识提供了有效的手段。
数据挖掘技术是一门综合性的技术,涉及到诸如机器学习、人工智能、统计学、模式
识别、神经网络、数据库技术及数据可视化等众多学科,是数据库理论和机器学习的交叉
学科。1995 年,在加拿大召开的第一届关于知识发现(KDD)和数据挖掘(DM)的国际学术
会议上,由于数据库中的“数据”被形象地喻为矿床,因此“数据挖掘”一词很快流传开
来。随后,它迅速扩大成为一个独立的领域,逐渐盛行于统计界、产业界、多媒体、管理
信息系统界和数据库研究界等重要领域。
同时,数据挖掘技术是人们长期对数据库技术进行研究和开发的结果。起初各种商业
数据是存储在计算机的数据库中的,然后发展到可对数据库进行查询和访问,进而发展到
对数据库的即时遍历。数据挖掘使数据库技术进入了一个更高级的阶段,它不仅能对过去
的数据进行查询和遍历,并且能够找出过去数据之间的潜在联系,从而促进信息的传递。
在大数据时代,数据挖掘的未来必将吸引众多学者和商业界人士的目光。
1.2 主要研究内容
本文主要研究内容如下:
(1)了解数据挖掘技术的背景、定义、功能、过程、方法及应用领域等知识,并再
重点针对数据挖掘中的聚类方法作更深入的研究;
1
(2)在熟悉 WEKA 数据挖掘平台的功能及挖掘过程的基础上,再利用官方网站上的一些
来自不同领域的典型代表数据集,并将该数据集置于不同的学习方案中,如预处理,分类,
聚类等学习方案,然后进行相应的挖掘测试,并将挖掘的结果进行统计并分析。同时,根
据挖掘的结果分析 WEKA 平台目前存在的一些问题及不足的地方;
(3)由于 WEKA 系统代码的开放性,本文还对其进行二次开发。在二次开发之前,本文
在第 2 章对数据挖掘的聚类方法作了深入的分析,分别指出每一类聚类方法的优缺点,而
本次主要针对其中基于划分方法的 k-中心点算法进行优化,给出了 k-中心点轮换算法的
过程描述及性能分析,并利用 eclipse 集成开发环境在 WEKA 平台上嵌入该算法,然后再
针对该算法的一些缺点作进一步优化,如将属性进行正常化、对残缺属性值进行特殊处理
等,以提高其聚类效果。
1.3 论文结构
本文主要分为 5 个章节,论文结构如下所示:
(1)第一章,绪论,介绍本文所做工作。
(2)第二章,介绍数据挖掘技术的定义、功能、流程、方法、应用领域及挖掘工具等,
还重点介绍了聚类方法中的一些常用算法的优缺点;
(3)第三章,介绍 WEKA 系统的特点、文件格式、功能及包结构等,并熟悉它的挖掘流
程,再进行基于 WEKA 平台的数据挖掘测试并分析挖掘结果及其存在的问题;
(4)第四章,利用 eclipse 集成开发环境在 WEKA 中嵌入 k-中心点轮换算法,再对其进
行一定的优化,并分析其存在的问题,明确该算法改进的方向;
(5)第五章,针对本文进行总结,指出本文研究的成果及本课题存在的缺陷。
2
第 2 章 数据挖掘相关研究
2.1 数据挖掘定义
从技术上来定义,“数据挖掘(Data Mining)就是从大量的、不完全的、有噪声的、
模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有
用的信息和知识的过程。这个定义包括好几层含义:数据源必须是真实的、大量的、含噪
声的;发现的是用户感兴趣的知识;发现的知识要可接受、可理解、可运用;并不要求发
现放之四海皆准的知识,仅支持特定的发现问题。
与数据挖掘相近的同义词有数据融合、人工智能、商务智能、模式识别、机器学习、
知识发现、数据分析和决策支持等。
从商业角度定义,数据挖掘是一种新的商业信息处理技术,其主要特点是对商业数据
库中的大量业务数据进行抽取、转换、分析和其他模型化处理,从中提取辅助商业决策的
关键性数据史,只不过在过去数据收集和分析的目的是用于科学研究,另外,由于当时计
算能力的限制,对大数据量进行分析的复杂数据分析方法受到很大限制。现在,由于各行
业业务自动化的实现,商业领域产生了大量的业务数据,这些数据不再是为了分析的目的
而收集的,而是由于纯机会的(Opportunistic)商业运作而产生。分析这些数据也不再是
单纯为了研究的需要,更主要是为商业决策提供真正有价值的信息,进而获得利润。但所
有企业面临的一个共同问题是:企业数据量非常大,而其中真正有价值的信息却很少,因
此从大量的数据中经过深层分析,获得有利于商业运作、提高竞争力的信息,就像从矿石
中淘金一样,数据挖掘也因此而得名
2.2 数据挖掘基本功能
数据挖掘的目标是从数据库中发现隐含的、有意义的知识。它的功能一般可以分为两
类:①描述性的数据挖掘:在可用数据集的基础上生成新的、非同寻常的信息;②预测性
的数据挖掘:生成已知数据集所描述的系统模型。这两种类型通常包括如下几种功能:
2.2.1 概念描述
概念描述就是对某类对象的内涵进行描述,并概括这类对象的有关特征。概念描述可
以通过以下方法实现:数据特征化、数据区分。前者描述某类对象的共同特征,如从银行
优质客户的特征,发现潜在的优质客户。后者则是描述异类对象之间的区别,如信用卡诈
3
骗者和非诈骗者,这两类信用卡持有者进行的比较。
2.2.2 关联分析
关联分析就是从大量的数据中发现项集之间有趣的联系、相关关系或因果结构,以及
项集的频繁模式。若两个或多个数据项的取值之间重复出现且概率很高时,它就存在某种
关联,则可以建立起这些数据项的关联规则。关联分析的目的在于找出数据库中隐藏的关
联规则。比如,买电脑的顾客同时会买某种软件,这是一种关联规则。
在关联规则挖掘中通常会涉及到两个重要的指标:支持度和置信度。只有支持度与置
信度均较大的规则才是比较有价值的规则。
2.2.3 分类和预测
分类就是找出一组能够描述数据集典型特征的模型(或函数),以便能够分类识别未知
数据的归属或类别。比如:将信用卡申请人分为低、中、高风险群,或是将顾客分到事先
定义好的族群中去。其中,分类模型(或函数)可以通过分类挖掘算法从一组训练样本数据
(其类别归属已知)中学习获得它有多种形式表示,如分类规则、判定树、数学公式或神经
网络等。
预测则是利用历史数据找出规律,建立模型,并用此模型预测未来数据的种类、特征
等。比如预测哪些顾客在未来半年内会取消该公司服务,或预测哪些电话用户会申请增值
服务。
2.2.4 聚类分析
聚类又称为无指导的学习,聚类的目的是根据一定规则将数据分为一系列有意义的子
集,同一聚类中,个体之间的差距较小,不同聚类中,个体之间的距离偏大。比如根据股
票价格的波动情况,可以将股票分成不同的类,总共可以分成几类,各类包含哪些股票,
每一类的特征是什么,这对投资者、尤其对投资基金来说,可能就是很重要的信息。当然,
聚类除了将样本分类外,它还可以完成孤立点挖掘,如将其应用于欺诈探测中。
聚类与分类不同,聚类分析是在没有给定划分类的情况下,根据信息相似度进行信息
聚类的一种方法。而分类则需要先定义类别和训练样本,是有指导的学习。
2.2.5 孤立点分析
孤立点(outlier)是指数据库中包含的一些与数据的一般行为或模型不一致的数据。
4