内容查询
内容查询是一种提取有关内部统计信息以及挖掘模型结构信息的一种方式。有时,内容查询可提供在查看器中不易查看的详细信息。您还可以使用内容查询的结果以编程方式提取信息以供他用。例如,可以提取公式或概率进行自己的计算,或者检索有关模型中的事例的可操作信息。
查询类型 查询选项
SELECT FROM <模型>.CASES
查找用于定型或测试模型的事例。钻取到数据,包括基础挖掘结构中的列。
SELECT FROM <结构>.CASES
查看结构中包含的所有数据,包括特定挖掘模型中不包括的列。
SELECT FROM <模型>.CONTENT
检索有关模型中特定节点的详细信息,包括规则和公式、支持和方差统计信息等。
SELECT FROM <模型>.DIMENSIONCONTENT
支持对数据挖掘维度的查询。
此查询类型主要供内部使用。如果您开发自己的插件算法,则可使用此语法测试您的模型。
并非所有算法都支持此功能。是否支持将通过 MINING_SERVICES 架构行集中的一个标志来指示。
一些模型内容在所有算法中都是标准的。但是,通常而言,每个模型的内容都依赖于用来生成模型的算法。因此,在创建内容查询时,必须了解模型中哪些类型的信息是最有用的。
例如,如果创建一个使用 SELECT FROM <model>.CONTENT 语法的查询,则根据模型是顺序分析和聚类分析模型、决策树模型还是时序模型,此查询会返回差异很大的信息。对于关联模型,您可能要检索特定规则的说明,以便可以在自定义应用程序中使用规则,而在时序或顺序分析和聚类分析模型中,您可能要查找有关模型所检测的时间模式的更多信息。
以下部分提供了一些示例,以说明可以从内容查询中获得的信息的广度和深度;但是,有关挖掘模型内容以及特定于每种模型类型的内容的信息,请参阅挖掘模型内容(Analysis Services - 数据挖掘)。
示例 1:关联模型中的内容查询
可以使用 SELECT FROM <模型>.CONTENT 语句来返回不同类型的内容,具体取决于所查询的模型的类型。对于关联模型,表示规则的节点具有 NODE_TYPE 值 8,而项集则具有 NODE_TYPE 值 7。因此,下面的查询将返回最前面的 10 个项集,这些项集按支持度排序(默认排序顺序)。
FROM <model>.CONTENT WHERE NODE_TYPE = 7下面的示例返回三个列:节点的 ID、完整规则以及项集右侧的产品,也就是被预测将作为项集的一部分与其他某些产品关联的产品。
FLATTENED 关键字表示嵌套行集应转换为平面表。表示规则右侧产品的属性包含在 NODE_DISTRIBUTION 表中;因此,我们通过添加长度大于 2 的要求来仅检索包含属性名的行。使用一个简单的字符串函数从第三列中删除模型的名称。通常,模型名称总是作为嵌套列的值的前缀。WHERE 子句指定 NODE_TYPE 的值应当为 8,这表示仅仅检索规则。
(SELECT RIGHT(ATTRIBUTE_NAME, (LEN(ATTRIBUTE_NAME)-LEN('Association model name')))
FROM NODE_DISTRIBUTION
WHERE LEN(ATTRIBUTE_NAME)>2
)
AS RightSideProduct
FROM [Association model name].CONTENT
WHERE NODE_TYPE = 8
ORDER BY NODE_SUPPORT DESC有关详细信息,请参阅查询关联模型(Analysis Services – 数据挖掘)。
示例 2:决策树模型的内容查询
查询模型内容非常重要的一种情况是:您想返回规则,说明预测该状态的原因,从而对预测查询执行进一步的操作。例如,可以通过使用如下语法向查询中添加预测函数 PredictNodeId,以获取包含规则的节点的 ID:
FROM [College Plans Tree]PREDICTION JOIN
<input rowset> 对于决策树模型,标题包含指向输出的路径的说明。因此,一旦您具有包含输出的节点的 ID,就可通过创建如下所示的内容查询来检索说明此预测的规则或路径:
FROM [College Plans Tree]
WHERE NODE_UNIQUE_NAME= '<node id>'