数据挖掘的发展及实施郑灵武(河海大学企业管理学院,江苏常州)摘要:本文主要论述知识管理工具体系中,数据挖掘的产生、发展、作用和代表性软件,讲述数据挖掘的实施过程及存在的问题,并给出改进的措施。
关键字:数据挖掘;发展;实施一、序言随着科学技术飞速的发展,经济和社会都取得了极大的进步,与此同时,在各个领域产生了大量的数据,如人类对太空的探索,银行每天的巨额交易数据。
显然在这些数据中丰富的信息,如何处理这些数据得到有益的信息,人们进行了有益的探索。
计算机技术的迅速发展使得处理数据成为可能,这就推动了数据库技术的极大发展,但是面对不断增加如潮水般的数据,人们不再满足于数据库的查询功能,提出了深层次问题:能不能从数据中提取信息或者知识为决策服务。
就数据库技术而言已经显得无能为力了,同样,传统的统计技术也面临了极大的挑战。
这就急需有新的方法来处理这些海量般的数据。
于是,人们结合统计学、数据库、机器学习等技术,提出数据挖掘来解决这一难题。
现如今,数据挖掘已经成为一个多学科领域,它融合了数据库技术、人工智能、机器学习、统计学、知识工程、信息检索等最新技术的研究成果,其应用非常广泛。
只要是有分析价值的数据库,都可以利用数据挖掘工具来挖掘有用的信息。
数据挖掘典型的应用领域包括市场、工业生产、金融、医学、科学研究、工程诊断等。
二、数据挖掘的产生与发展数据挖掘的出现是一个逐渐演变的过程。
电子数据处理的初期,人们试图实现自动决策支持,当时人们关心与研究的焦点主要是机器学习。
机器学习的过程是先将已知的并被成功解决的范例输入计算机,然后机器通过学习这些范例总结并生成相应的通用规则,这些规则常被使用来解决某一类问题。
随着神经网络技术的形成和发展,人们的注意力开始转向知识工程。
知识工程的过程不同于机器学习,而是直接在计算机上输入代码化的规则,计算机通过使用这些规则来解决某些问题。
专家系统就是基于这种方法所得到的成果,但它有许多不足,比如投资大、效果不甚理想等。
80年代,在新的神经网络理论的指导下,关注焦点重新回到机器学习,其成果被广泛地应用于处理大型商业数据库。
在80年代末,出现了一个新的术语——数据库中的知识发现,简称KDD(Knowledge Discovery in Database),它泛指所有从源数据中发掘模式或联系的方法。
KDD描述了整个数据发掘的过程,包括最开始的制定业务目标到最终的结果分析,而数据挖掘(data mining)描述使用挖掘算法进行数据挖掘的子过程。
因为其中的许多工作由统计方法来完成,因此统计方法与数据挖掘的有机结合是最好的策略。
数据挖掘技术的形成与数据仓库技术的发展有着密切的关系。
数据仓库的发展是促进数据挖掘越来越热的主要原因之一。
因为很多数据挖掘可直接从操作数据源中挖掘信息,所以数据仓库并不是数据挖掘的先决条件。
数据挖掘在发展过程中大体上可以分成四个阶段,每个阶段的数据挖掘工具所具有的特点和发挥的作用是不尽相同的。
四个阶段的概况如下:第一阶段,数据搜集。
20世纪60年代以前,随着计算机技术的发展,加上磁带盒磁盘的广泛应用,出现了两家盛名的厂家IBM和CDC,但当时的产品主要为使用者提供历史性的、静态的数据信息。
在这阶段,人们对知识性数据进行的工作主要是搜集、存储,因而被称为数据搜集阶段。
第二阶段,数据访问。
20世纪60年代以后,随着各种数据的积累和发现,人们越来越感觉到仅仅将数据搜集和存储起来,已经不能满足工作、生活的需要了,它阻碍着工作效率的提高。
20世纪80年代,随着当时数据库技术的发展,人们开始建立关系数据库,利用结构化语言与ODBC技术实现了对数据的记录和整理,为使用者提供历史性的、动态数据信息,这也意味着进入了数据访问阶段。
第三阶段,数据仓库和决策支持。
随着计算机技术的快速发展,联机分析处理(OLAP)等技术的逐渐成熟,多维数据库和数据仓库等技术的支持下,到20世纪90年代,已经可以实现在各种层次上为使用者提供回溯的、动态的数据信息。
这一阶段被称为数据仓库和决策支持阶段。
第四阶段,数据挖掘。
20世纪90年代以后,在高级算法、海量数据库和多处理计算机的支持下,Pilot、IBM和SGI等公司的产品已经能够根据现有数据为使用者提供预测性的信息。
如今,数据挖掘已经充分利用了机器学习、数理统计、人工智能、模糊逻辑、神经网络、进化计算等理论和方法,满足了人们越来越复杂的需求,而在应用需求的推动下,已经成为多种学科融合的领域。
三、数据挖掘的作用与代表性软件数据挖掘技术经过几十年的快速发展,已经有了较成熟的架构体系,在企业应用中发挥的作用也越来越大。
当前数据挖掘的作用主要是进行关联分析、聚类分析、分类、预测、时序模式和偏差分析等。
1.关联分析。
关联规则挖掘由Rakesh Apwal等人首先提出。
两个或两个以上变量的取值之间存在的规律性称为关联。
数据关联是数据库中存在的一类重要的、可被发现的知识。
关联分为简单关联、时序关联和因果关联。
关联分析的目的是找出数据库中隐藏的关联网。
一般用支持度和可信度两个阀值来度量关联规则的相关性,还不断引入兴趣度、相关性等参数,使得所挖掘的规则更符合需求。
2.聚类分析。
聚类是把数据按照相似性归纳成若干类别,同一类中的数据彼此相似,不同类中的数据相异。
聚类分析可以建立宏观的概念,发现数据的分布模式,以及可能的数据属性之间的相互关系。
3.分类。
分类就是找出一个类别的概念描述,它代表了这类数据的整体信息,即该类的内涵描述,并用这种描述来构造模型,一般用规则或决策树模式表示。
分类是利用训练数据集通过一定的算法而求得分类规则。
分类可被用于规则描述和预测。
4.预测。
预测是利用历史数据找出变化规律,建立模型,并由此模型对未来数据的种类及特征进行预测。
预测关心的是精度和不确定性,通常用预测方差来度量。
5.时序模式。
时序模式是指通过时间序列搜索出的重复发生概率较高的模式。
与回归一样,它也是用己知的数据预测未来的值,但这些数据的区别是变量所处时间的不同。
6.偏差分析。
在偏差中包括很多有用的知识,数据库中的数据存在很多异常情况,发现数据库中数据存在的异常情况是非常重要的。
偏差检验的基本方法就是寻找观察结果与参照之间的差别。
需要注意的是,数据挖掘的各项作用不是独立存在的,在数据挖掘中是互相联系,发挥作用的。
正是数据挖掘技术越来越成熟,发挥的作用越来越重要、实用,在企业中得到了广泛的应用,也成为很多领域、部门等的知识获取最有力的手段之一。
由此,市场上的数据挖掘工具纷纷出现,在激烈竞争下,纷纷展现出各自的特色,为提供商赢取市场。
在当前市场上,数据挖掘工具一般分为三个组成部分:通用型工具、综合数据挖掘工具和面向特定应用工具。
通用型工具占有最大和最成熟的那部分市场。
通用的数据挖掘工具不区分具体数据的含义,采用通用的挖掘算法,处理常见的数据类型,如IBM 公司Almaden 研究中心开发的QUEST 系统,它的目的是为新一代决策支持系统的应用开发提供高效的数据开采基本构件,它的各种开采算法具有近似线性计算复杂度,可适用于任意大小的数据库。
除此外,还有SGI 公司开发的MineSet 系统,加拿大Simon Fraser 大学开发的DBMiner 系统、SAS Enterprise Miner、IBM Intelligent Miner、Oracle Darwin、SPSS Clementine、Unica PRW等软件。
通用的数据挖掘工具可以做多种模式的挖掘,挖掘什么、用什么来挖掘都由用户根据自己的应用来选择。
综合数据挖掘工具这一部分市场反映了商业对具有多功能的决策支持工具的真实和迫切的需求。
商业要求该工具能提供管理报告、在线分析处理和普通结构中的数据挖掘能力。
这些综合工具包括Cognos Scenario和Business Objects等。
面向特定应用工具这一部分工具正在快速发展,在这一领域的厂商设法通过提供商业方案而不是寻求方案的一种技术来区分自己和别的领域的厂商。
这些工具是纵向的、贯穿这一领域的方方面面,其常用工具有重点应用在零售业的KD1、主要应用在保险业的Option&Choices和针对欺诈行为探查开发的HNC软件。
四、数据挖掘的实施数据挖掘的实施是一个信息庞大、复杂,实施周期长,规划比较难的过程,一般来说,其实施过程分为六个环节:第一,理解业务。
从商业的角度理解项目目标和需求,将其转换成一种数据挖掘的问题定义,设计出达到目标的一个初步计划。
第二,理解数据。
收集初步的数据,进行各种熟悉数据的活动。
包括数据描述,数据探索和数据质量验证等。
第三,准备数据。
将最初的原始数据构造成最终适合建模工具处理的数据集。
包括表、记录和属性的选择,数据转换和数据清理等。
第四,建立模型。
选择和应用各种建模技术,并对其参数进行优化。
第五,模型评估。
对模型进行较为彻底的评价,并检查构建模型的每个步骤,确认其是否真正实现了预定的商业目的。
第六,模型部署。
创建完模型并不意味着项目的结束,即使模型的目的是为了增进对数据的了解,所获得的知识也要用一种用户可以使用的方式来组织和表示。
通常要将活动模型应用到决策制订的过程中去。
该阶段可以简单到只生成一份报告,也可以复杂到在企业内实施一个可重复的数据挖掘过程。
许多研究结构和公司结合自己的数据挖掘软件,提出数据挖掘过程模型,如SAS研究所认为数据挖掘是对数据进行选择、探索、调整和建模来揭示数据中未知的模式,并开发了图形界面的SAS/EM来进行数据挖掘的实施。
五、数据挖掘在实施中存在的问题尽管数据挖掘的实施制定了规划方案,实施过程没有数据仓库那么困难、复杂,但是也是不容大意的过程。
当前数据挖掘实施过程普遍存在三大问题:第一,算法与应用理解困难,难以完全掌握。
数据挖掘实施过程中遇到的每个问题常常有几种不同的算法可以解决,每种算法也都可以用来解决不同的问题。
但是,如果实施人员对算法和应用不熟悉、没掌握好,那么将花费大量时间来解决遇到的问题,甚至无法解决,这样不仅会耗费更多的时间和资源,还会耽搁实施进程,让后续工作无法展开。
第二,数据挖掘工具选择难以把握,难以确定选择是否正确。
市场上的数据挖掘工具复杂多样,并有比较清晰的介绍,但由于实施单位自身的定位难以确切,对数据挖掘工具的选择反而显得难以决定,似乎这个也适合,那个也很好,导致在真正实施的过程中出现纰漏,需要重新选择工具。
第三,未能掌握数据挖掘的过程,时间花费太大。
在数据挖掘实施前,理解算法很重要,工具的使用也很重要,但是对于数据挖掘过程的掌握更为重要。
在数据挖掘的过程中,大部分的时间都花在对于问题的理解及数据的收集、处理和整理过程中。
由于数据的动态变化,花费的时间不断增加,制定好的规划将变成一纸空文。