SQL Server 2005 中的商务智能和数据仓库(8)

来源:互联网 发布:淘宝卖茶叶qs证怎么办 编辑:程序博客网 时间:2024/06/07 00:24
SQL Server 2005 中附带了最流行的数据挖掘算法。

 

Microsoft Decision Trees(决策树)通常是数据研究的起始点。它是主要的分类算法,对离散和连接属性的可预测建模效果很好。用算法构建模型时,它着眼于数据集中每个输入属性是如何影响预测属性的结果的。其目标是找到一个输入属性及其状态的组合,使您能够预测出所预测属性的输出结果。

Microsoft Naïve Bayes(贝叶斯算法)能够快速构建可用于分类和预测的数据挖掘模型。如果知道可预测属性的每种状态,便可计算出输入属性每个可能状态的概率。这种算法只支持离散(不连续)属性,它认为所有输入属性都是彼此独立的(前提是知道可预测属性)。因为贝叶斯算法的计算速度非常快,因此在初始数据研究阶段通常会选择这种算法进行分类和预测问题。

Microsoft Clustering 使用迭代技术将来自数据集的记录分成若干个包含相似特性的簇。通过使用这些簇,您可以研究数据,找出彼此之间的相互关系。您还可以从群集模型创建预测。

Microsoft Association 基于 priori 算法,它为在大型数据集中查找多路关联提供了一种有效的方法。Association 算法在数据库所有事务中循环,在单一用户事务中查找最有可能同时出现的项目。关联的项目被分到一起,放入项目集中,生成可用于预测的规则。Microsoft Association 通常用于购物篮分析。对于 Association 分析而言,执行大量“非重复计数”的关系或 OLAP 分析是一个值得考虑的选择。Microsoft Association 算法对算法参数的选择很敏感,因此,对于一些小问题,使用 Microsoft Decision Trees 算法进行购物篮分析可能效果更佳。

Microsoft Sequence Clustering 将顺序分析与在数据研究和预测中使用的群集方法结合在了一起。顺序群集模型对事物发生次序很敏感。此外,群集算法还考虑到记录群集中的其他属性,使您可以开发关联顺序和非顺序信息的模型。Sequence Clustering 算法将被用于执行点击流分析,以便于分析 Web 站点的通信流量、识别与特殊产品销售关系最为密切的页面,并预测接下来要访问的页面。

Microsoft Time Series(时间序列)会创建可用于预测一个或多个连续变量(如股票价格)的模型。Time Series 算法的预测完全依据于在模型创建过程中从培训数据中推导得出的趋势。Microsoft Time Series 使用 AutoRegression Trees 技术,非常简单易用,并可生成精确度极高的模型。在该算法中有一条专门用于时间序列的统计分析规则。大多数其他数据挖掘产品都提供了多项技术,如 ARMA、ARIMA 和 Box-Jenkins,统计师必须在这些技术中确定模型的最佳技术选择。Microsoft 选择了一种方法,既可使广泛的受众能够理解时间序列,又具备异常精确的结果。

Microsoft Neural Net 和 Decision Trees 及 Na?ve Bayes 一样,主要用于数据研究、分类和预测。Neural Net 是一种人工智能技术,该技术可以利用所有可能的数据关系。因为它是一种非常彻底的技术,因此它是三个分类算法中最慢的算法。

构建挖掘模型

模型的构建、培训和测试过程是创建应用程序过程中最为困难的一部分。正如下面我们要讨论的,实际开发应用程序是一个简单的编程过程。在开始构建数据挖掘模型之前,您应当已经收集和清理了您的数据,这些数据极有可能位于数据仓库中。SQL Server 2005 Data Mining 可以从关系数据库或 Analysis Services 多维数据中访问数据。

开发数据挖掘模型的最佳人选是同时具备业务和技术技巧的人员。模型的开发人员将会从其统计背景中获益、了解企业面临的关键业务问题、对数据和关系产生极大的好奇心,同时还能够利用 SQL Server 2005 工具处理和存储数据。现有数据仓库小组中的成员最有可能遇到这些标准。

作为数据挖掘的初学者,应在构建原型模型的同时,计划花费数周时间来研究数据、工具以及可供选择的算法。使用一台您具备数据库管理权限的开发服务器。构建模型的最初阶段是探索阶段:您可能会希望以不同的方法来重新构建数据和实验。当然,您肯定希望从少量数据子集开始,并在开发愈加清晰的模型设计时扩展数据集。在原型阶段,不要为如何构建一个“可供生产使用”的应用程序而担心。使用 DTS 或执行任何所需数据处理最为舒适的任何工具。保存一份记录有必要转换的高级日志,但不要期望您所做的一却都能成为永久应用程序的一部分。

您应当准备两套数据:一套用于开发模型,而另一套用于测试模型的精确度,从中选择适合您业务问题最佳模型。在考虑如何划分数据子集时,要确保没有引入任何偏差。例如,从十个客户中选择一个客户,或根据姓氏的第一个字符区分,或根据一些其他任意属性区分。

开发数据挖掘模型的过程涉及选择以下内容:

输入数据集、

输入字段、

数据挖掘算法,以及

该算法在计算过程中所用到的参数。

如果不知道哪种类型的算法适合处理您的业务问题,请先从“决策树”或“贝叶斯”入手研究数据。如果不知道要包括哪些属性,就选择所有属性。使用相关性网络视图,从中获得可帮助您简化复杂模型的视图。

在原型开发阶段,您可能希望构建相关模型,以便评估最佳算法和模型。使用“挖掘精度”图表评估在预测中效果最佳的模型。您可能还希望构建相关模型,对相同的数据执行不同类型的分析。这些模型在作为相关模型时的处理速度要比作为独立定义模型时的处理速度快。

在构建和测试原型后,便可以构建和测试实际数据挖掘模型。在将数据输入数据挖掘引擎前,如果需要转换数据,那么为了要实现这些操作,应当开发可供生产用的操作流程。在某些情况下,可能要选择从 DTS 管道直接植入挖掘模型。如果在少量数据的基础上开发原型,将需要在整套培训数据的基础上重新评估备选模型。

构建数据挖掘应用程序

在 Business Intelligence Development Studio 中开发和研究数据挖掘模型可使企业获得巨大的价值。您可以浏览模型,了解数据与业务之间的关系,并使用该信息促进策略决策的制定。但是,其最大的价值还是来自可以影响公司日常操作的数据挖掘应用程序:例如,向客户推荐产品、记录客户信用风险,或根据预测的库存不足下订单的数据挖掘应用程序。要开发可操作的数据挖掘应用程序,您需要跳出 Business Intelligence Development Studio 的圈子,并用 Microsoft Visual Studio 或您选择的其他开发环境编写代码。

大部分企业客户都将面向客户的数据挖掘应用程序实施为基于 web 的 Win32 应用程序,如 ASP 页。数据挖掘模型业已构建完毕,而且应用程序也可以根据客户的选择或在 web 商务应用程序中输入的内容,为客户执行预测。这可能是十分简单的应用程序;唯一不寻常的部分是发布预测查询。

数据挖掘应用程序开发人员不一定就是开发数据挖掘模型的人员。应用程序开发人员应具备一流的开发技能,而对业务或统计知识的需求则相对较低。

Microsoft 的数据挖掘技术大大地简化了构建自动化数据挖掘应用程序的过程。其中共有两个步骤:

开发数据挖掘预测查询,其 DMX 语法在“数据挖掘”规范的 OLE DB 中定义。不需要手工编写 DMX,用户只需单击 Business Intelligence Development Studio 编辑器左栏上的“挖掘模型预测”图标即可。“预测查询构建器”图形化工具会帮助您开发预测查询。

在数据挖掘应用程序中使用预测查询。如果应用程序只使用 DMX 便可完成预测,则项目应包括 ADO、ADO.Net 或 ADOMD.Net 等类引用(建议在 Beta 1 之后的开发中使用 ADOMD.Net)。如果您正在构建一个更为复杂的应用程序(例如要显示用户挖掘模型查看器,如“决策树查看器”),将需要包括 Microsoft.AnalysisServices 和 Microsoft.AnalysisServices.Viewers 类。

原创粉丝点击