WEB开发网
开发学院数据库MSSQL Server 解读SQL Server分析服务中的数据挖掘功能 阅读

解读SQL Server分析服务中的数据挖掘功能

 2007-10-25 15:23:51 来源:WEB开发网   
核心提示:图4显示的就是OLAP挖掘模式编辑器,中间的窗口显示了结果决策树的几个结点(图5显示的是一棵完整的决策树)图4右上方标题为“Content Navigator”(内容导航员)窗口用颜色表示数据密度,解读SQL Server分析服务中的数据挖掘功能(2),用图形的方式描述了整棵决策树,其中颜色越深

图4显示的就是OLAP挖掘模式编辑器,中间的窗口显示了结果决策树的几个结点(图5显示的是一棵完整的决策树)图4右上方标题为“Content Navigator”(内容导航员)窗口用颜色表示数据密度,用图形的方式描述了整棵决策树,其中颜色越深就代表用户越多。在中间的窗口,我选择了一个结点Customers.Name.Member Card = Normal,该结点代表所有成员属性会员卡的值为Normal的用户。中间靠右的窗口显示了该类别中用户不同年份年收入的条形图。我们发现他们中的83%的人的收入介于10000美元至30000美元之间,这就意味着会员卡值为normal可以很好地预测这一收入水平的用户。(我们对这一结论不应该感到意外,因为Member Cards属性是挖掘模型通过挖掘年收入和教育水平而创建的。)

不使用分析管理器分析多维数据集

现在假设你从客户端应用程序分析Trained Income多维数据集,不具有OLAP管理员权限来运行分析管理器(Analysis Manager),就可以用下面的多维表达查询(MDX)来得到相同的条形图信息,查询将返回每一个收入水平符合“Member Card = Normal”条件的用户编号。查询首先创建一个持有普通成员卡的用户的集合(CustMembers),然后创建新的方法来统计符合当前所选收入水平的用户有多少。

    WITH SET [CustMembers] as 'Filter([Customers].[Name].Members, not IsEmpty([Customers].CurrentMember))'
     MEMBER [Measures].[Cust Count] as 'Count( Filter( [CustMembers],
   [Customers].CurrentMember.Properties("Yearly Income") =[Yearly Income].CurrentMember.Name))'
     SELECT { [Measures].[Cust Count] } ON COLUMNS ,[Yearly Income].[All Yearly Income].Children ON ROWS FROM [TrainedIncome]
     WHERE ([PredictIncome].[All].[Customers.Name.Member Card = Normal] )

在客户端创建挖掘模型

尝试不同的挖掘模型,从其中找到效果最好的。尽管目前的客户端应用程序还不支持这一功能,但用户希望在客户机端,而不是在服务器端创建挖掘模型。客户分析程序需要支持这项功能,可以利用MDX扩展通过OLE DB for OLAP或ADO MD来创建挖掘模型。在客户机端创建挖掘模型需要运行SQL Server企业版,因为该功能依赖于企业版的自定义累积功能。

用数据挖掘维创建虚拟数据集需要三个步骤。第一,创建挖掘模型。下面的命令生成一个挖掘决策树来根据用户的性别、婚姻和教育状况预测年收入。

    CREATE OLAP MINING MODEL [Local Find Salary]
      FROM [Sales]
       (
        CASE
         DIMENSION [Customers]
         LEVEL [Name]
         PROPERTY [Gender] ,
         PROPERTY [Marital Status] ,
         PROPERTY [Education] ,
         PROPERTY [Yearly Income] PREDICT
       )
      USING Microsoft_Decision_Trees

注意调用数据集名字的FROM语句和引出Customers维Name层的成员属性的每个PROPERTY关健字。运行上面的命令后,就会得到一个空的挖掘模型,它对你的分析服务(Analysis Services)连接是唯一的,也会与其它工作站共享。(要创建共享的挖掘模型,需要用分析管理器或DSO编程接口)。下面的命令是将Sales多维数据集中的数据送入挖掘模型。这是一个简单的指定了挖掘模型名字的INSERT INTO语句:

INSERT INTO [Local Find Salary]

最后,将根据挖掘模型、其它维以及从源多维数据集中引用的度创建一个虚拟多维数据集。下面是创建多维数据集的代码:

    CREATE SESSION VIRTUAL CUBE [PredictIncomeCube]
      FROM [Sales]
       (
        MEASURE [Sales].[Unit Sales] ,
        DIMENSION [Sales].[Customers],
        DIMENSION [Sales].[Time],
        DIMENSION [PredictIncome] NOT_RELATED_TO_FACTS
        FROM [Local Find Salary]
       COLUMN [Customers.Name.Yearly Income]
      )

在这一语句中,我仅仅使用了Unit Sales度、Customers和Time维。最后一个维━━PredictIncome是作为CREATE VIRTUAL CUBE语句的一部分而创建的。NOT_RELATED_TO_FACTS关键字让分析服务(Analysis Services)知道该维不是由同多维数据集相关的表得来的,FROM和COLUMN子句进一步说明了在创建虚拟多维数据集时使用了挖掘模型和挖掘模型的预测实体。

Tags:解读 SQL Server

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接