下一步需要选择为预测年收入所需要用到的OLAP多维数据集中的那部分数据。选中 Customers维、Customers维中所有的层及Name层中Member属性下的所有层,如图2所示(这些都是缺省的设置)。需要注意的是,Yearly Income既是输入也是输出,这是因为我们正在训练挖掘模型。为训练挖掘模型,算法需要正确的答案。(如:现有用户的实际年收入)

(图2)
点击Next按钮,创建一个OLAP维和一个虚拟多维数据集。对话框设置按图3所示。挖掘向导模式将根据Sales多维数据集创建一个虚拟多维数据集,增加一个名为PredictIncome的新数据挖掘维,点击Next后,为建立挖掘模型起个名字并决定是否立刻执行。我们将建立的挖掘模型命名为IncomModel, 点击Save按钮并立刻执行。当点击Finish按钮后,分析服务将对数据进行处理,并在挖掘模型编辑器中显示挖掘的结果。

图3

图4 图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] ) |