网站设计论文

您当前的位置:学术堂 > 计算机论文 > 网站设计论文 >

在Web应用程序中集成数据挖掘预测功能

来源:学术堂 作者:陈老师
发布于:2016-10-09 共4042字
  本篇论文快速导航:

展开更多

  2.3 在 Web 应用程序中集成数据挖掘预测功能
  
  数据挖掘(Data Mining)指的是数据经过清洗和转换等操作成为适合挖掘的数据集,然后建立特定的挖掘模型,利用这些数据集训练模型,最后利用发现的知识模式进行预测,从而辅助决策工作。图 2.1 简单展示了 SQLServer2005 数据挖掘的过程:
  
  (1) 定义问题,并构建一个对象,即挖掘模型;(2) 通过数据挖掘算法(贝叶斯、决策树、时序、聚类、关联规则和神经网络等)分析数据和提取模式,这称为训练模型;(3) 使用发现的模型来预测信息。
  
  整个数据挖掘是一个不断反馈修改迭代的过程。当用户在挖掘过程中,发现所选择的数据不合适,或使用的挖掘算法无法获得期望结果,则用户就需要重复进行挖掘过程,甚至需要从头开始[9].
  
  2.3.1 商业智能应用程序开发工具集
  
  在使用 SQLserver 数据挖掘功能的过程中,大部分时间将会花费在 BI Dev Studio 开发工具集。BI Dev Studio 环境已经集成到 Microsoft Visual Studio 框架中,为商业智能操作提供了完整的开发环境。在使用 Visual Studio 时,数据挖掘项目是一组项目中的一部分,这组项目也称为解决方案。数据挖掘项目与应用程序所要求的其他项目可以组合到一个解决方案中。
  
  例如,数据库管理员(Database Administrator,DBA)可能创建一个 Integration Service项目,这个项目从联机事务处理系统提取数据,并且把这些数据转化为适合与数据挖掘的形式。然后,分析员可以创建一个 Analysis Service 项目,这个项目包含浏览事务数据和分析事务数据的模型。最后,应用程序开发人员可以创建一个 Web 服务和 Web 站点,在终端用户应用程序和商业化的服务中嵌入这些模型。
  
  所有这些项目都可以包含在一个解决方案中,这个解决方案包含所有相互合作完成的工作。而且,这些工作的所有方面都可以通过源控制系统中完整的版本历史来获得。BI Dev Studio 有两种工作模式:脱机模式和即时模式。每一种模式都有各自的优缺点。
  
  在即时模式下工作时,数据挖掘用户直接并持续地连接到 Analysis Service 服务器。当打开一个对象时,是从服务器中打开该对象。当该变了对象并且要保存它时,该对象将直接在服务器上改变,在即时模式下,BI Dev Studio 项目是一个到服务器上的数据库的链接。在解决方案资源管理器中,可以看到数据库中的当前所有对象。如果有一个现成的工作模型,需要修改并保存该模型,那么这种改变立即执行,并且该模型会变成是未处理的,任何针对该模型的查询都无法执行。即时模式相对于脱机模式来说,一个最大的优点是安全性高。如果在即时模式下工作,则该模式允许在单一数据库限定的范围工作,同时允许拥有数据库管理员权限的用户创建和修改对象。
  
  在脱机模式下工作时,项目包含的文件存储在客户机上。在这种环境下修改对象时,所作的修改以 XML 文档的格式存储在硬盘上。在将一个模型或者对象部署到目标服务器之前,所创建的模型和其他对象不会存储在服务器上,而是存储在客户机上。这样就允许数据挖掘开发人员或者分析员在将模型部署到真正服务器之前进行一些操作,设计和测试该模型。也可以将这些文件放到源控制系统中,以便跟踪对象元数据的改变,并且在一个开发团队中实现共享[9].
  
  2.3.2 决策树算法
  
  决策树方法最早产生于上世纪 60 年代,到 70 年代末。由 J Ross Quinlan 提出了 ID3 算法,此算法的目的在于减少树的深度,但是忽略了叶子数目的研究。因此 ID3 算法中启发式函数并不一定是最优的,生成的决策树也不一定是最优决策树。C4.5 算法在 ID3 算法的基础上进行了改进,对于预测变量的缺值处理、剪枝技术、派生规则等方面作了较大改进,既适合于分类问题,又适合于回归问题。决策树分类算法是一种广泛使用的分类技术,因为这种算法有很快的训练性能、较高的准确性和易于理解的模式。用决策树算法解决的最常见的数据挖掘任务是用来确定一组数据是否属于特定的类型。
  
  决策树算法是一种逼近离散函数值的方法。它是一种典型的分类方法,首先对数据进行处理,利用归纳算法生成可读的规则和决策树,然后使用决策对新数据进行分析。本质上决策树是通过一系列规则对数据进行分类的过程。
  
  决策树的典型算法有 ID3,C4.5,CART 等,下面重点介绍本课题用到的 ID3 决策树算法:
  
  (1) 树以代表训练样本的单个结点开始;(2) 如果样本都在同一个类。则该结点成为树叶,并用该类标记;(3) 否则,算法选择最有分类能力的属性作为决策树的当前结点;(4) 根据当前决策结点属性取值的不同,将训练样本数据集分为若干子集,每个取值形成一个分枝,有几个取值形成几个分枝。针对上一步得到的一个子集,重复进行先前步骤,递归形成每个划分样本上的决策树。一旦一个属性出现在一个结点上,就不必在该结点的任何后代考虑它;(5) 递归划分步骤仅当下列条件之一成立时停止:
  
  (a) 给定结点的所有样本属于同一类;(b) 没有剩余属性可以用来进一步划分样本。在这种情况下,使用多数表决定,将给定的结点转换成树叶,并以样本中元组个数最多的类别作为类别标记,同时也可以存放该结点样本的类别分布;(c) 如果某一分枝,没有满足该分支中已有分类的样本,则以样本的多数类创建一个树叶。
  
  决策树算法的优点如下:
  
  (1) 分类精度高;(2) 生成的模式简单;(3) 对噪声数据有很好的健壮性。
  
  决策树算法构造决策树来发现数据中蕴涵的分类规则。如何构造精度高、规模小的决策树是决策树算法的核心内容。决策树构造可以分两步进行。第一步,决策树的生成:由训练样本集生成决策树的过程。一般情况下,训练样本数据集是根据实际需要有历史的、有一定综合程度的,用于数据分析处理的数据集。第二步,决策树的剪技:决策树的剪枝是对上一阶段生成的决策树进行检验、校正和修下的过程,主要是用新的样本数据集(称为测试数据集)中的数据校验决策树生成过程中产生的初步规则,将那些影响预衡准确性的分枝剪除。
  
  由于数据表示不当、有噪声或者由于决策树生成时产生重复的子树等原因,都会造成产生的决策树过大。因此,简化决策树是一个不可缺少的环节。寻找一棵最优决策树,主要应解决以下 3 个最优化问题:
  
  (1) 生成最少数目的叶子节点;(2) 生成的每个叶子节点的深度最小;(3) 生成的决策树叶子节点数最少且每个叶子节点的深度最小[10].
  
  决策树的好坏不仅影响分类的效率,而且影响分类的准确率,因此很多学者致力于寻找更优的启发式函数和评价函数。一旦构造了决策树,对检验记录进行分类就相当容易了。从树的根结点开始,将预测条件用于检验记录,根据测试结果选择适当的分支。到达叶节点后,叶结点的类号就被赋值给该检验记录。例如,应用决策树算法预测机器的故障概率,构造的决策树见图 2.2.如果一台机器的使用时间为 1200,机器更换频率为 8,则这台机器的类别是故障概率低[11].
  
  2.3.3 在 Web 应用程序中集成数据挖掘预测功能
  
  Web 浏览器连接 Internet 信息服务器 IIS(网站),并请求 ASP.NET 页面。ASP.NET 页面生成预测查询后,通过 ADOMD.NET 连接 SQL Server Analysis Services,发送针对给定挖掘模型的预测查询。预测的结果作为推荐信息显示在 Web 页面中。在 Web 应用程序中集成数据挖掘预测如图 2.3 所示[9].
  
  DMX(Data Mining Extensions)数据挖掘扩展插件也叫数据挖掘语言。使用 DMX 语句可以实现与 BI Dev Studio 基本相同的功能,其特点是在 SQL Server Management Studio 环境中可以执行 DMX 语句[12].
  
  (1) 创建挖掘模型和结构,使用 CREATE MINING MODEL 语句在数据库中同时创建一个新的挖掘模型和一个挖掘结构。
  
  语法:
  
  CREATE [SESSION] MINING MODEL <model>
  
  ([(<column definition list>)]
  
  )USING <algorithm> [(<parameter list>)] [WITH DRILLTHROUGH]
  
  CREATE MINING MODEL <model> FROM PMML <xml string>
  
  参数:
  
  model:模型的唯一名称。
  
  column definition list:列定义的逗号分隔列表。
  
  algorithm:提供程序定义的数据挖掘提供程序的名称。
  
  parameter list:可选。由提供程序定义的算法所需参数的逗号分隔列表。
  
  XML string(仅适用于高级用户):XML 编码的模型 (PMML)。字符串必须以单引号引起。
  
  (2) 训练模型使用 INSERT INTO(DMX)语句为挖掘结构及其关联的挖掘模型定型。处理挖掘结构时,将读取数据源并生成支持挖掘模型的结构。处理挖掘模型时,挖掘结构定义的数据将通过所选择的数据挖掘算法进行传递。该算法将搜索趋势和模式,然后在挖掘模型中存储此信息。因此,挖掘模型不包含实际数据源,而是包含由算法发现的信息。如果更改了结构列或数据源,则只需要重新处理挖掘结构。
  
  语法:
  
  INSERT INTO [MINING MODEL]|[MINING STRUCTURE]
  
  <model>|<structure> (<mapped model columns>) <source data query>
  
  参数:
  
  model:模型标识符。
  
  structure:结构标识符。
  
  mapped model columns:一组以逗号分隔的列标识符和嵌套标识符。
  
  source data query:采用提供程序所定义格式的源查询。
  
  (3) 预测查询,使用 INSERT INTO (DMX) 语句来预测外部数据源中列的状态。
  
  PREDICTION JOIN 语句将源查询中的每个事例与挖掘模型进行匹配。
  
  语法:
  
  SELECT [FLATTENED] [TOP <n>] <select expression list>
  
  FROM <model> | <sub select> [NATURAL] PREDICTION JOIN<source data query> [ON <join mapping list>]
  
  [WHERE <condition expression>]
  
  [ORDER BY <expression> [DESC|ASC]]
  
  参数:
  
  n:可选,一个指定返回行数的整数。
  
  select expression list:从挖掘模型中派生的一组以逗号分隔的列标识符和表达式。
  
  model:模型标识符。
  
  sub select:嵌入的 Select 语句。
  
  source data query:源查询。
  
  join mapping list:可选,一种逻辑表达式,可以将模型中的列与源查询中的列进行比较。
  
  condition expression:可选,一个限制条件,用于限制从列表返回的值。
  
  expression:可选,一个返回标量值的表达式[12].
  
  2.4 本章小结
  

  本章对开发网站所用到的相关技术作了详细的介绍:ASP.NET动态网页及通过ADO.NET访问数据库;SQL Server 中存储过程的使用,在 ASP.NET 环境下 MD5 算法的研究;在 Web应用程序中集成 SQLServer 数据挖掘预测功能。
返回本篇论文导航
相关内容推荐
相关标签:数据挖掘论文
返回:网站设计论文