Naive Bayes 模型的挖掘模型内容(Analysis Services - 数据挖掘)

本主题介绍特定于使用 Microsoft Naive Bayes 算法的模型的挖掘模型内容。 有关如何解释所有模型类型共享的统计信息和结构的说明,以及与挖掘模型内容相关的术语的一般定义,请参阅挖掘模型内容(Analysis Services - 数据挖掘)。

了解 Naive Bayes 模型的结构

Naive Bayes 模型具有一个父节点,该节点表示模型及其元数据,在该父节点下,任意数量的独立树表示所选的可预测属性。 除了属性的树之外,每个模型还包含一个边际统计信息节点(NODE_TYPE = 26),该节点提供有关定型事例集的描述性统计信息。 有关详细信息,请参阅 边际统计信息节点中的信息

对于每个可预测属性和值,模型输出一个树,其中包含描述各种输入列如何影响该特定可预测结果的信息。 每个树都包含可预测属性及其值(NODE_TYPE = 9),然后包含表示输入属性的一系列节点(NODE_TYPE = 10)。 由于输入属性通常具有多个值,因此每个输入属性(NODE_TYPE = 10)可能有多个子节点(NODE_TYPE = 11),每个子节点都处于特定状态。

注释

由于 Naive Bayes 模型不允许连续数据类型,因此输入列的所有值都被视为离散或离散化。 可以指定如何离散化值。 有关详细信息,请参见更改挖掘模型中列的离散化

朴素贝叶斯模型内容结构

Naive Bayes 模型的模型内容

本部分仅针对挖掘模型内容中与 Naive Bayes 模型具有特定相关性的列提供详细信息和示例。

有关架构行集中的常规用途列,例如未在此处介绍的MODEL_CATALOG和MODEL_NAME,或有关挖掘模型术语的说明,请参阅挖掘模型内容(Analysis Services - 数据挖掘)。

模型目录
存储模型的数据库的名称。

MODEL_NAME
模型的名称。

属性名称
对应于此节点的属性的名称。

模型根 可预测属性的名称。

边际统计信息 不適用

可预测属性 可预测属性的名称。

输入属性 输入属性的名称。

输入属性状态 仅输入属性的名称。 若要获取状态,请使用MSOLAP_NODE_SHORT_CAPTION。

NODE_NAME
节点的名称。

此列包含与NODE_UNIQUE_NAME相同的值。

有关节点命名约定的详细信息,请参阅 使用节点名称和 ID

节点_唯一_名称 (NODE_UNIQUE_NAME)
节点的唯一名称。 根据约定分配唯一名称,该约定提供有关节点之间的关系的信息。 有关节点命名约定的详细信息,请参阅 使用节点名称和 ID

节点类型
Naive Bayes 模型输出以下节点类型:

节点类型 ID DESCRIPTION
26 (NaiveBayesMarginalStatNode) 包含描述模型的整个训练事例集的统计信息。
9 (可预测属性) 包含可预测属性的名称。
10 (输入属性) 包含输入属性列的名称,以及包含属性值的子节点。
11 (输入属性状态) 包含与特定输出属性配对的所有输入属性的值或离散化值。

节点标题
与节点关联的标签或标题。 此属性主要用于显示目的。

模型根 空白

边际统计信息 为空

可预测属性 可预测属性的名称。

输入属性 可预测属性和当前输入属性的名称。 例如:

自行车购买者 -> 年龄

输入属性状态 可预测属性和当前输入属性的名称,以及输入的值。 例如:

自行车购买者 -> 年龄 = 未知

儿童基数
节点具有的子级数。

模型根 在模型中可预测属性的总数,再加上边际统计节点的1。

边际统计信息 按定义没有子项。

可预测属性 与当前可预测属性相关的输入属性的计数。

输入属性 当前输入属性中离散或离散化值的数量。

输入属性状态 始终为 0。

父级唯一名称
父节点的唯一名称。 父节点与子节点的相关信息,请参阅 使用节点名称和 ID

节点描述
与节点标题相同。

节点规则
节点标题的 XML 表示形式。

边际规则
与节点规则相同。

节点概率
与此节点关联的概率。

模型根 始终为 0。

边际统计信息 始终为 0。

可预测属性 始终为 1。

输入属性 始终为 1。

输入属性状态 一个十进制数,表示当前值的概率。 父输入属性节点总和下的所有输入属性状态的值为 1。

边际概率
与节点概率相同。

节点分布
包含节点概率直方图的表。 有关详细信息,请参阅 NODE_DISTRIBUTION表

节点支持
支持此节点的事例数。

模型根 训练数据中所有事例的计数。

边际统计信息 始终为 0。

可预测属性 训练数据中所有事例的计数。

输入属性 训练数据中所有案例的总数。

输入属性状态 仅包含该特定值的训练数据中的案例数量。

MSOLAP_MODEL_COLUMN
用于显示目的的标签。 通常与ATTRIBUTE_NAME相同。

MSOLAP_NODE_SCORE
表示模型中特性或值的重要性。

模型根 始终为 0。

边际统计信息 始终为 0。

可预测属性 始终为 0。

输入属性 与当前可预测属性相关的当前输入属性的有趣分数。

输入属性状态 始终为 0。

MSOLAP_NODE_SHORT_CAPTION
一个表示列的名称或值的文本字符串。

模型根 空白

边际统计信息 空白

可预测属性 可预测属性的名称。

输入属性 输入属性的名称。

输入属性状态 输入属性的值或离散化值。

使用节点名称和 ID

Naive Bayes 模型中节点的命名提供了有关节点类型的其他信息,以便更轻松地了解模型中的信息之间的关系。 下表显示了分配给不同节点类型的 ID 的约定。

节点类型 节点 ID 的约定
模型根目录 (1) 始终为 0。
边际统计信息节点 (26) 任意 ID 值。
可预测属性 (9) 以 10000000 开头的十六进制数

示例:100000001,10000000b
输入属性 (10) 一个由两部分构成的十六进制数,其中第一部分始终为 20000000,第二部分以相关可预测属性的十六进制标识符开头。

示例:20000000b00000000

在这种情况下,相关的可预测属性为 10000000b。
输入属性状态 (11) 第一部分始终为 30000000 的三部分十六进制数,第二部分以相关可预测属性的十六进制标识符开头,第三部分表示值的标识符。

示例:30000000b000000000020000000

在这种情况下,相关的可预测属性为 10000000b。

可以使用 ID 将输入属性和状态与可预测属性相关联。 例如,下面的查询返回表示模型的 TM_NaiveBayes输入和可预测属性的可能组合的节点的名称和标题。

SELECT NODE_NAME, NODE_CAPTION  
FROM TM_NaiveBayes.CONTENT  
WHERE NODE_TYPE = 10  

预期的结果:

NODE_NAME 节点标题
20000000000000001 自行车购买者 -> 通勤距离
20000000000000002 自行车购买者 -> 英语教育
20000000000000003 自行车买家 -> 英语职位
20000000000000009 自行车买家 -> 婚姻状况
2000000000000000a 自行车买家 -> 家庭儿童数量
2000000000000000b 自行车购买者 -> 区域
2000000000000000c 自行车购买者 -> 子女总数

然后,可以使用父节点的 ID 检索子节点。 以下查询检索包含属性值的 Marital Status 节点以及每个节点的概率。

SELECT NODE_NAME, NODE_CAPTION, NODE_PROBABILITY  
FROM TM_NaiveBayes.CONTENT  
WHERE NODE_TYPE = 11  
AND [PARENT_UNIQUE_NAME] = '20000000000000009'  

注释

列名称 "PARENT_UNIQUE_NAME" 必须括在括号中,以便将其与同名的保留关键字区分开。

预期的结果:

NODE_NAME 节点标题 节点概率
3000000000000000900000000 自行车买家 -> 婚姻状态 = 缺失 0
3000000000000000900000001 自行车购买者 -> 婚姻状态 = S 0.457504004
3000000000000000900000002 自行车买家 -> 婚姻状态 = M 0.542495996

NODE_DISTRIBUTION表

嵌套表列NODE_DISTRIBUTION通常包含有关节点中值的分布的统计信息。 在 Naive Bayes 模型中,此表仅填充以下节点:

节点类型 嵌套表的内容
模型根目录 (1) 空白。
边际统计节点(24) 包含针对整个训练数据集的所有可预测属性和输入属性的摘要信息。
可预测属性 (9) 空白。
输入属性 (10) 空白。
输入属性状态 (11) 包含描述训练数据中可预测值与输入属性值这一组合的值分布的统计信息。

可以使用节点 ID 或节点标签来逐步检索更详细的内容。 例如,以下查询仅检索与值 'Marital Status = S'相关的输入属性节点NODE_DISTRIBUTION表中的特定列。

SELECT FLATTENED NODE_CAPTION,  
(SELECT ATTRIBUTE_NAME, ATTRIBUTE_VALUE, [SUPPORT], [PROBABILITY], VALUETYPE  
FROM NODE_DISTRIBUTION) as t  
FROM TM_NaiveBayes.content  
WHERE NODE_TYPE = 11  
AND NODE_CAPTION = 'Bike Buyer -> Marital Status = S'  

预期的结果:

节点标题 t.ATTRIBUTE_NAME t.ATTRIBUTE_VALUE 技术支持 t.概率 t.VALUETYPE
自行车购买者 -> 婚姻状态 = S 自行车购买者 失踪 0 0 1
自行车购买者 -> 婚姻状态 = S 自行车购买者 0 3783 0.472934117 4
自行车购买者 -> 婚姻状态 = S 自行车购买者 1 4216 0.527065883 4

在这些结果中,SUPPORT列中的值会告诉你购买自行车的、具有指定婚姻状态的客户数量。 PROBABILITY 列包含每个属性值的概率,仅为此节点计算。 有关NODE_DISTRIBUTION表中使用的术语的一般定义,请参阅挖掘模型内容(Analysis Services - 数据挖掘)。

边际统计信息节点中的信息

在 Naive Bayes 模型中,边际统计信息节点的嵌套表包含整个训练数据集的值分布。 例如,下表包含模型的嵌套NODE_DISTRIBUTION表中统计信息的部分列表: TM_NaiveBayes

属性名称 属性值 Support 概率 方差 值类型
自行车购买者 失踪 0 0 0 1
自行车购买者 0 8869 0.507263784 0 4
自行车购买者 1 8615 0.492736216 0 4
婚姻状况 失踪 0 0 0 1
婚姻状况 S 7999 0.457504004 0 4
婚姻状况 M 9485 0.542495996 0 4
总儿童人数 失踪 0 0 0 1
总儿童人数 0 4865 0.278254404 0 4
总儿童人数 3 2093 0.119709449 0 4
总儿童人数 1 3406 0.19480668 0 4

Bike Buyer包含该列,因为边际统计信息节点始终包含可预测属性及其可能值的说明。 列出的所有其他列都表示输入属性,以及模型中使用的值。 值只能缺失、离散或离散化。

在 Naive Bayes 模型中,不能有连续属性;因此,所有数值数据都表示为离散(VALUE_TYPE = 4)或离散化(VALUE_TYPE = 5)。

Missing将值(VALUE_TYPE = 1)添加到每个输入和输出属性,以表示训练数据中不存在的潜在值。 必须注意区分“missing”作为字符串和 Missing 作为默认值。 有关详细信息,请参阅“缺失值”(Analysis Services - 数据挖掘)。

另请参阅

挖掘模型内容(Analysis Services - 数据挖掘)
数据挖掘模型查看器
数据挖掘查询
Microsoft Naive Bayes 算法