SELECT FROM <model>.CONTENT (DMX)

返回指定数据挖掘模型的挖掘模型架构行集。

语法

SELECT [FLATTENED] [TOP <n>] <expression list> FROM <model>.CONTENT 
[WHERE <condition expression>]
[ORDER BY <expression> [DESC|ASC]]

参数

  • n
    可选。一个指定要返回行数的整数。

  • expression list
    从内容架构行集派生的一组列,各列间以逗号分隔。

  • model
    模型标识符。

  • condition expression
    可选。一个限制条件,用于限制从列列表返回的值。

  • expression
    可选。一个返回标量值的表达式。

注释

SELECT FROM <model>.CONTENT 语句可以返回特定于每种算法的内容。例如,您可能希望在自定义应用程序中,使用某个关联规则模型的所有规则的说明。使用 SELECT FROM <model>.CONTENT 语句可以返回模型的 NODE_RULE 列中的值。

下表列出了挖掘模型内容中包含的列。

注意注意

算法可能会为了正确表示内容而对列做出不同的解释。有关每种算法的挖掘模型内容的说明,以及有关如何解释和查询每种模型类型的挖掘模型内容的提示,请参阅挖掘模型内容(Analysis Services - 数据挖掘)

CONTENT 行集列

说明

MODEL_CATALOG

目录名称。如果提供程序不支持目录,则为 NULL。

MODEL_SCHEMA

未限定的架构名称。如果提供程序不支持架构,则为 NULL。

MODEL_NAME

模型名称。此列中不能包含 NULL。

ATTRIBUTE_NAME

与节点相对应的属性的名称。

NODE_NAME

节点的名称。

NODE_UNIQUE_NAME

节点在模型中的唯一名称。

NODE_TYPE

表示节点类型的整数。

NODE_GUID

节点 GUID。如果没有 GUID,则为 NULL。

NODE_CAPTION

与节点关联的标签或标题,主要用于显示。如果不存在标题,则返回 NODE_NAME。

CHILDREN_CARDINALITY

节点所具有的子节点的数目。

PARENT_UNIQUE_NAME

节点的父节点的唯一名称。

NODE_DESCRIPTION

节点的说明。

NODE_RULE

表示嵌入在节点中的规则的 XML 片段。XML 字符串的格式采用 PMML 标准。

MARGINAL_RULE

说明从父节点到节点的路径的 XML 片段。

NODE_PROBABILITY

路径在节点中结束的概率。

MARGINAL_PROBABILITY

从父节点到达该节点的概率。

NODE_DISTRIBUTION

包含说明节点中值分布的统计信息的表。

NODE_SUPPORT

支持此节点的事例数。

示例

下面的代码返回已添加到目标邮件挖掘结构的决策树模型的父节点 ID。

SELECT MODEL_NAME, NODE_NAME FROM [TM Decision Tree].CONTENT
WHERE NODE_TYPE = 1

预期的结果:

MODEL_NAME

NODE_NAME

TM_DecisionTree

0

下面的查询使用 IsDescendant 函数返回上一示例中返回的节点的直接子节点。

注意注意

由于 NODE_NAME 的值为字符串,所以您不能使用嵌套 select 语句返回 NODE_ID,以作为 IsDescendant 函数的参数。

SELECT NODE_NAME, NODETYPE, NODE_CAPTION 
FROM [TM Decision Tree].CONTENT
WHERE ISDESCENDANT('0')

预期的结果:

由于该模型是一个决策树模型,所以模型父节点的后代中包含一个边际统计信息节点、一个表示可预测属性的节点以及多个包含输入属性和值的节点。有关详细信息,请参阅决策树模型的挖掘模型内容(Analysis Services - 数据挖掘)

使用 FLATTENED 关键字

挖掘模型内容常常将模型的相关重要信息包含在嵌套表列中。您可以使用 FLATTENED 关键字,从嵌套表列中检索数据,而无需使用支持分层行集的提供程序。

下面的查询从 Naïve Bayes 模型返回一个单个节点:边际统计信息节点 (NODE_TYPE = 26)。此节点的 NODE_DISTRIBUTION 列中包含一个嵌套表。因此,对该嵌套表列进行了平展,对于该嵌套表的每一行,均相应地返回了一行。对于该嵌套表中的每一行,标量列 MODEL_NAME 的值都重复了一次。

另请注意:如果只指定嵌套表列的名称,则将会针对嵌套表中的每一列返回一个新列。默认情况下,嵌套表的名称作为每个嵌套表列名称的前缀。

SELECT FLATTENED MODEL_NAME, NODE_DISTRIBUTION
FROM [TM_NaiveBayes].CONTENT
WHERE NODE_TYPE = 26

示例结果:

MODEL_NAME

NODE_DISTRIBUTION.ATTRIBUTE_NAME

NODE_DISTRIBUTION.ATTRIBUTE_VALUE

NODE_DISTRIBUTION.SUPPORT

NODE_DISTRIBUTION.PROBABILITY

NODE_DISTRIBUTION.VARIANCE

NODE_DISTRIBUTION.VALUETYPE

TM_NaiveBayes

Bike Buyer

Missing

0

0

0

1

TM_NaiveBayes

Bike Buyer

0

6556

0.506685215240745

0

TM_NaiveBayes

Bike Buyer

1

6383

0.493314784759255

0

下面的示例演示如何使用嵌套 select 语句,仅从嵌套表返回部分列。您可以通过对嵌套表的表名使用别名来简化显示,如下所示。

SELECT MODEL_NAME, 
(SELECT ATTRIBUTE_NAME, ATTRIBUTE_VALUE, [SUPPORT] AS t
FROM NODE_DISTRIBUTION) 
FROM TM_NaiveBayes.CONTENT
WHERE NODE_TYPE = 26

示例结果:

MODEL_NAME

t.ATTRIBUTE_NAME

t.ATTRIBUTE_VALUE

t.SUPPORT

TM_NaiveBayes

Bike Buyer

Missing

0

TM_NaiveBayes

Bike Buyer

0

6556

TM_NaiveBayes

Bike Buyer

1

6383