您现在的位置是:首页 > IT基础架构 > 软件与服务 >

数据挖掘模型的比较研究

2009-12-09 22:38:00作者: 来源:

摘要比较了SQL Server 2000和Oracle9i数据仓库的数据挖掘技术,分析其数据挖掘模型的异同点和优劣性,并针对其数据挖掘算法上的不足提出改进数据挖掘模型的方法,利用进化计算实现数据挖掘的进化学习机制,提高算法的效率、最优解求解能力,增强数据挖掘系统的鲁棒性和安全性,还...

1 引 言

数据挖掘(Data Mining,DM),是从大型数据库中分离出隐藏的预测信息,是帮助公司将注意力集中到数据仓库中最重要的信息上来的工具。数据挖掘工具用来预测将来的趋势和行为,为公司决策提供支持,这些工具可以引发许多新的问题,这些问题如果按照传统分析方法来处理,需要花费很长时间。数据挖掘就是发现数据中感兴趣的结构,这些结构可以作为知识,可能用来预测与数据相关的事件。数据挖掘使挖掘大型数据库中的大量数据变得更加容易,挖掘人员并不需要经过多年的统计分析或数据分析方面的训练。

数据挖掘算法提取的“知识”具有多种形式和多种用途,可以是规则集、决策树、聚类模型、关系集等多种形式。数据挖掘算法可以用来生成数据的概要信息,得到以前的数据的相关性信息。数据挖掘算法还可以用于与数据相关的事件。目前,已经有多种不同的数据挖掘模型,大多数源于机器学习统计和数据库编程。

本文比较了Oracle9i数据挖掘(Data Mining)和微软面向数据挖掘的数据库对象嵌入连接(OLE DB for Data Mining,ODDM)两种最新技术,分析这两种技术创建数据挖掘模型的异同点和优劣性,在此基础上提出了改进的方法,还讨论了实现方案。

2 ODDM的数据挖掘模型

ODDM是朝着将数据挖掘语言标准化迈进的重要一步,其目标是成为工业标准,从而使不同的数据挖掘算法能够很容易地插入到用户的应用中。ODDM可以保证数据挖掘客户使用广泛的数据挖掘软件包所提供的服务。

ODDM描述了数据挖掘过程中的抽象概念。数据挖掘的数据库对象嵌入连结(OLE DB)定义是OLE DB的一个扩展,可以对OLE DB数据提供商进行数据挖掘操作。用于数据挖掘的OLE DB引入了一个新的虚拟对象,称为数据挖掘模型(Data Mining Model,DMM),和几个用于操纵DMM的新命令。从DMM的用途和特征来说,DMM和表非常类似,可以使用类似SQL CREAT TABLE语句的CREATE语句来创建,同时,也可以使用INSERT INTO语句,就像操纵表一样,客户使用SELECT语句进行预测,开发DMM。用于DMM的OLE DB将DMM看成是一个特殊类型的表,当用户需要在表中插入数据时,可以通过DM算法来处理,将结果抽象保存起来,而不是保存结果本身。

挖掘的数据在关系数据库中逻辑表示为表的集合。例如,一个顾客数据库可能记录顾客、顾客的地理位置数据、定单和定单项目。将定单表和定单项目表连接起来,可能为一个顾客生成多个记录。适合单个实体的数据集称作“案例”,所有相关“案例”的集合称为“案例集”。为了表示这些关系,用于DM的OLE DB通过数据造型服务(Data Shaping Services,包括微软数据访问组件,Microsoft Data Access Components)定义了嵌套表,值得注意的是,相同的物理数据为了不同的分析目的可能用来生成不同的案例集。

DMM的内容可以看作是DMM每个列的值可能组合的“事实表”。换句话说,它包含了每个可能的案例。从思维上来看,DMM可以看成是学习值或者统计值。用于DM的OLE DB的基本操作是训练数据挖掘模型,下面是这个过程的基本框架。在DM算法中,INSERT语句可以按照DMM的形式创建数据的镜像。

①创建OLE DB数据源对象,获得OLE DB会话对象。这是通过OLE DB连接数据库的标准连接机制。

②创建数据挖掘模型对象。使用OLE DB命令对象,客户执行CRESTE语句,类似于CRESTE TABLE语句。

③插入训练数据到模型中。类似于训练一般的表一样,客户使用INSERT INTO语句形式,注意用SHAPE语句可以创建嵌套表。

④使用数据挖掘模型,做一些预测。可以使用SELECT语句,联合模型所有案例可能的集合,实际的案例可能不完备。例如,“Age”值未知,联合这些不完全的案例,选择“Age”列,并返回每个实际案例“Age”的预测值。

3 Oracle9i Data Mining的数据挖掘模型

Oracle9i数据挖掘(Data Mining)是Oracle9i企业版的一个选项,它用来构建高级商务智能应用程序,这种程序可对公司的数据库进行挖掘,发现新视点并集成到商务应用程序中。

Oracle9i Data Mining在Oracle9i数据库中嵌入数据挖掘功能,用于数据的分类、预报和关联。所有的模型构建、得分、以及元数据管理操作经由基于Java的API来启动并完全在该关系数据库中产生。Oracle9i Data Mining使得公司可以利用嵌入到Oracle9i数据库中的数据挖掘功能,增强应用程序的自动提取和商务智能分发的能力。

Oracle9i数据库能够提供具有强劲联机分析处理和数据挖掘技术的先进分析服务,内嵌了数据挖掘算法,提供数据挖掘模型,使用户能够容易地开发个性化的解决方案,对包括历史信息和当前Web网站交互信息在内的所有数据进行分析,产生全面、最新和最优化的决策建议,并允许最终用户通过Web浏览器访问实时的个性化信息。

Oracle9i Data Mining简化了从大量数据中提取商务智能的过程,可以用来把大量的数据导入到外部特定目的分析服务器中,以供数据挖掘和评分。使用Oracle9i Data Mining,可以将所有的数据挖掘功能嵌入到Oracle9i数据库中,这样数据、数据准备、建模和模型评分活动就保持在数据库之中。

因为Oracle9i Data Mining执行数据库的所有数据挖掘过程,每个数据挖掘阶段对产量、自动化和集成都有改善意义。重要的生产增强,通过从数据库提取数据到特定目的的数据挖掘工具,再返回到数据库,来实现其功能。这些改进在数据准备方面是显著的,这些过程经常占据了整个数据挖掘过程的80%。使用Oracle9i Data Mining,可以使用Oracle9i Data Mining中的标准SQL操作,来执行数据准备。

用来预测的“评分(Scoring)”大大简化了,而数据和模型都在同样的位置数据库之中。不必要移动数据到模型中,或者导出模型成为代码(典型的如C,C++,或者Java并移动模型回到数据库中的数据评测。使用Oracle9i Data Mining,所有事情都在数据库中进行。

“内嵌数据挖掘”的好处在数据挖掘的第一步中越来越明显。数据准备包括相关数据的分析和集会、目标域的定义和新总结或计算域的可能创建。因为挖掘发生在数据库中,任何工具或者应用程序可以为这个过程做出贡献。使用现有商务应用程序的列表和测量作为数据挖掘的启动点是简单的。

Oracle9i Data Mining接受事务和非事务(总结性的或者单记录的)表。Oracle9i Data Mining在内部使用事务表,并自动处理任何必要的转换。

Oracle9i Data Mining支持装箱,收集域中的有用信息,装入到有意义的组中。有种工具可以在创建面向更多指定问题目的的模型之前装载数据。例如,对于一个驾驶安全问题,年龄域可以由范围0~16,17~21和大于21组成。对于一个生活保障问题,相同的年龄域可以由范围0~35,35~55和大于55组成。

Oracle9i Data Mining提供了对内嵌于Oracle9i数据库中的两种数据挖掘算法的编程访问,这种访问通过基于Java的API实现。数据挖掘算法是一种分析问题的特定策略的数据的机器学习技术。不同的算法适用于不同的分析类型。Oracle9i Data Mining提供了贝叶斯(Narve Bayes)分类和预测算法。查找并发事件模式的关联规则这两种算法。总之,它们覆盖了大部分商务问题。

Narve Bayes是一种用于分类和预测有导师的学习技术,可以创建预测指定结果的可能性。Narve Bayes使用历史数据来查找模式和关系,然后做出预测。

Oracle9i Data Mining使得应用程序开发员可以创建数据挖掘模型,来做出以下各种目的的分类和预测:

①识别哪些客户乐意购买某种产品。

②识别那些喜欢搅动的客户。

③预测部分欠缺的可能性。

Oracle9i Data Mining的Narve Bayes算法可以预测二元或者多个类的输出结果。对于二元问题,每个记录可以展示也可以不展示模型化的行为。例如,一个模型可以创建用来预测一个客户是否搅动或者维护忠诚度。Narve Bayes也可以预测有几种可能结果的多类问题。例如,一个模型可以创建用来预测服务的哪个类有前途。

4 数据挖掘模型的比较与改进

比较微软公司的ODDM和Oracle公司的Oracle9i Data Mining,可以看到数据挖掘技术已经逐步发展成熟,形成产品服务市场。虽然由于两种产品的技术基础和实现机制不同,它们在许多方面都有共同的特点。

1)两者都提出数据挖掘模型的概念、方法和技术。在ODDM中数据挖掘模型是一种对象,并且是外挂于SQL Server 2000上的,可以使用数据挖掘模型操作命令创建、发现、浏览、训练、查询、删除数据挖掘模型。在Oracle9i Data Mining中数据挖掘模型及其算法是内嵌于Oracle9i数据库中,所有的操作都可以在数据库中进行,Oracle9i数据库能够提供具有强劲联机分析处理和数据挖掘技术的先进分析服务,内嵌了数据挖掘算法,提供数据挖掘模型,使用户能够容易地开发个性化的解决方案,对包括历史信息和当前Web网站交互信息在内的所有数据进行分析,产生全面、最新和最优化的决策建议,并允许最终用户通过Web浏览器访问实时的个性化信息。

2)两者都提出了数据挖掘算法的概念和方法。数据挖掘的算法很多,随着相关学科的发展,可运用于数据挖掘的算法必将越来越多。各种算法各有千秋,根据不同的任务,在数据挖掘中可以选择不同的算法。这里主要介绍以下几种算法,它们是数据挖掘软件中运用得较多的算法。

①决策树(Decision Trees) 主要是指分类和回归树(Classification and Regression Trees,CART),它是运用最广泛的数据挖掘算法,其中分类树(Classification Tree)主要用于数据记录的标记和归类,回归树(Regression Tree)主要用于估计目标变量的数值。决策树的最大优点在于它的易于理解,缺点是难于处理关系复杂的数据。

②神经网络(Neural Networks) 神经网络广泛地应用于预测模型的建立,与决策树一样,它是目前数据挖掘中运用最多的算法。神经网络的优势在于对复杂问题的预测。但它不能解释预测结果。因此,当对规则的解释是问题的关键时,神经网络并不是一个好的选择。此外,当输入变量过多(成百上千)时,神经网络难以得到满意结果,这时,通常采取神经网络和决策树结合的方法。

③聚类(Clustering) 聚类是根据特定的标准将数据划分为不同的组。聚类和分类(Classification)的不同在于聚类并不决定于事先定义好的种类。聚类是一种强大的间接知识发现的技术。聚类大大减少了数据的复杂性,增大了数据挖掘成功的可能性。聚类产生的结果也需要人们去解释,去理解。

④遗传算法(Genetic Algorithms) 遗传算法是一种基于自然选择和生物遗传机制的搜索算法,它适用于解决其他技术难于解决的复杂性问题。遗传算法也有不易理解的缺点。

ODDM使用了决策树和聚类方法挖掘数据,只需启动挖掘模型向导并按照挖掘模型向导的提示操作,就可以顺利地创建和使用数据挖掘模型。Oracle9i Data Mining采用了Narve Bayes分类算法和查找并发事件模式的关联规则的算法。这两种产品的选择各有千秋,关键是看哪种方法能够提高数据挖掘中分类、聚类和预测的效率和正确性。

除了这些选择,神经网络方法对于那些噪音高、未经训练的数据分类有较强的处理能力,但是训练时间长,可解释性差,因为人们很难解释蕴含在学习权之中的符号含义。

本文推荐使用或者结合使用遗传算法或者改进的遗传算法,如进化算法、免疫算法等,来控制数据挖掘模型的优化处理过程。

采用遗传算法或者并行遗传算法创建和使用数据挖掘模型,构造完全分类规则集,实现遗传编码,加强了算法的可操作性。由于并行遗传算法的有效引入,一方面,提高了系统的绝对数据处理能力和全局优化能力,另一方面,利用遗传算法的隐并行性把处理的模式从n扩大到了O(n3)。这样,就大大缓解了分类算法伸缩性不强的问题,有利于对大型数据库的挖掘;遗传算法是通过选择、交叉和变异等遗传算子对整个群体进行操作的,不同个体间有充分的、反复的信息交换机会,不存在“一旦做出‘决定’就没有‘悔改’”的情况;而且遗传算法本身就是通用的全局优化算法,具有较好的全局搜索策略,能以1的概率找到全局最优解。

充分利用Oracle9i的数据挖掘模型及其算法内嵌功能,SQL Server 2000的异种数据源友好界面简易处理功能和遗传算法或并行遗传算法的高效优化计算与全局收敛特性,就能设计出更有效、更强大的数据挖掘原型系统,为改进数据挖掘模型的性能提供新思路和新方法。

5 结 语

正如诺贝尔奖得主Renzias教授所预言:“数据挖掘将越来越重要,任何公司将尽力获取客户的所有信息,因为这些信息对他们是如此重要。不掌握数据挖掘技术,将被无情的淘汰。”必须充分认识到这项技术的重要性,加强它在中国的研究和推广。


(本文不涉密)
责任编辑:

站点信息

  • 运营主体:中国信息化周报
  • 商务合作:赵瑞华 010-88559646
  • 微信公众号:扫描二维码,关注我们