若要创建预测查询,必须先选择查询将基于的挖掘模型。 可以选择当前项目中存在的任何挖掘模型。
选择模型后,向查询添加 预测函数 。 这是导入以了解预测函数用于许多用途-是,可以预测值,但也可以获取相关的统计信息,以及生成预测时使用的信息。 预测函数可以返回以下类型的值:
可预测属性的名称和预测的值。
有关预测值的分布和方差的统计信息。
指定结果或所有可能结果的概率。
顶部或底部分数或值。
与指定的节点、对象或属性关联的值。
可以使用多种预测函数,但必须选择适合所创建的模型类型的函数。 通常,此选项取决于用于创建模型的算法。
有关几乎所有模型类型支持的预测函数的列表,请参阅常规预测函数(DMX)。
此外,单个算法还支持各种专用函数。 例如,如果基于Microsoft聚类分析算法创建挖掘模型,则可以使用专用预测函数查找有关分类的信息,例如从数据值到分类质心的距离。
有关如何查询特定类型的挖掘模型的示例,请参阅 数据挖掘算法(Analysis Services - 数据挖掘)中的算法参考主题。
选择要用于预测的挖掘模型
在 SQL Server Management Studio 中,右键单击模型,然后选择“ 生成预测查询”。
--或--
在 SQL Server Data Tools (SSDT)中,单击选项卡,“挖掘模型预测”,然后单击“挖掘模型”表中的“选择模型”。
在 “选择挖掘模型 ”对话框中,选择挖掘模型,然后单击“ 确定”。
可以选择当前 Analysis Services 数据库中的任何模型。 若要在不同的数据库中使用模型创建查询,必须在该数据库的上下文中打开新的查询窗口,或打开包含该模型的解决方案文件。
将预测函数添加到查询
在 预测查询生成器中,通过提供 “单一实例查询输入 ”对话框中的值或将模型映射到外部数据源来配置用于预测的输入数据。
有关详细信息,请参阅 “选择和映射预测查询的输入数据”。
警告
无需提供用于生成预测的输入。 如果没有输入,算法通常会在所有可能的输入中返回最有可能预测的值。
单击 “源 ”列,然后从列表中选择一个值:
<模型名称> 选择此选项可在输出中包含挖掘模型中的值。 只能添加可预测列。
从模型中添加列时,返回的结果是该列中值的非非重复列表。
使用此选项添加的列包含在生成的 DMX 语句的 SELECT 部分中。预测函数 选择此选项可浏览预测函数列表。
所选的值或函数将添加到生成的 DMX 语句的 SELECT 部分。
预测函数列表不受所选模型类型筛选或约束。 因此,如果对当前模型类型是否支持函数有任何疑问,只需将函数添加到列表中,并查看是否存在错误。
前面有 $ 的列表项(如$AdjustedProbability)表示使用函数PredictHistogram
时输出的嵌套表中的列。 这些是可用于返回单个列而不是嵌套表的快捷方式。自定义表达式 选择此选项可键入自定义表达式,然后将别名分配给输出。
自定义表达式将添加到生成的 DMX 预测查询的 SELECT 部分。
如果要为每个行添加输出文本、调用 VB 函数或调用自定义存储过程,此选项非常有用。
有关从 DMX 使用 VBA 和 Excel 函数的信息,请参阅 MDX 和 DAX 中的 VBA 函数。添加每个函数或表达式后,切换到 DMX 视图以查看如何在 DMX 语句中添加函数。
警告
在单击“ 结果”之前,预测查询生成器不会验证 DMX。 通常,你会发现查询生成器生成的表达式不是有效的 DMX 表达式。 典型原因是引用与可预测列无关的列,或尝试预测嵌套表中的列,这需要子 SELECT 语句。 此时,可以切换到 DMX 视图并继续编辑语句。
示例:在聚类分析模型上创建查询
如果没有可用于生成此示例查询的聚类分析模型,请使用 基本数据挖掘教程创建模型 [TM_Clustering]。。
在 SQL Server Management Studio 中,右键单击模型 [TM_Clustering],然后选择“ 生成预测查询”。
在 “挖掘模型 ”菜单中,选择 “单一实例查询”。
在 “单一实例查询输入 ”对话框中,将以下值设置为输入:
性别 = M
通勤距离 = 5-10 英里
在查询网格中,针对源,选择TM_Clustering挖掘模型,然后添加列 [Bike Buyer]。
对于 “源”,请选择“ 预测函数”,然后添加该函数
Cluster
。对于 源,选择 预测函数,添加函数,
PredictSupport
并将模型列 [Bike Buyer] 拖动到 “条件/参数 ”框中。 在“别名”列中键入支持。从 “条件/参数 ”框中复制表示预测函数和列引用的表达式。
对于 源,请选择 “自定义表达式”,键入别名,然后使用以下语法引用 Excel CEILING 函数:
Excel as <return type>
将列引用粘贴到函数中作为参数。
例如,以下表达式将返回支持值向上取整后的结果。
EXCEL!CEILING(PredictSupport([TM_Clustering].[Bike Buyer]),2)
在 “别名” 列中键入 CEILING。
单击“ 切换到查询文本”视图 以查看生成的 DMX 语句,然后单击“ 切换到查询结果”视图 以查看预测查询输出的列。
下表显示了预期结果:
自行车购买者 $集群 Support 天花板 0 群集 8 954 953.948638926372
如果要在语句中的其他位置添加其他子句,例如,如果要添加 WHERE 子句,则无法使用网格添加它;必须先切换到 DMX 视图。