Microsoft Naive Bayes 算法技术参考

适用于:SQL Server 2019 及更早版本的 Analysis Services Azure Analysis Services Fabric/Power BI Premium

重要

数据挖掘在 SQL Server 2017 Analysis Services 中已弃用,现在在 SQL Server 2022 Analysis Services 中已停止使用。 对于已弃用和停止使用的功能,文档不会更新。 若要了解详细信息,请参阅 Analysis Services 后向兼容性

Microsoft Naive Bayes 算法是 Microsoft SQL Server SQL Server Analysis Services提供的用于预测建模的分类算法。 该算法计算输入列与可预测列之间的条件概率,并假定列相互独立。 由于此独立性假设,所以取名为 Naive Bayes。

Microsoft Naive Bayes 算法的实现

此算法的计算强度低于其他 Microsoft 算法,因此可用于快速生成挖掘模型,以发现输入列与可预测列之间的关系。 此算法会考虑每对输入属性值和输出属性值。

有关贝叶斯定理的数学性质的说明不属于本文档的讨论范围;有关详细信息,请参阅 Microsoft Research 文章,标题为: Learning Bayesian Networks: The Combination of Knowledge and Statistical Data(了解 Bayesian 网络:知识和统计数据的组合)。

有关如何调整所有模型中的概率以考虑潜在缺失值的说明,请参阅 缺失值 (Analysis Services - 数据挖掘)

特征选择

Microsoft Naive Bayes 算法执行自动特征选择,以限制生成模型时考虑的值数。 有关详细信息,请参阅 功能选择 (数据挖掘)

算法 分析方法 注释
Naive Bayes Shannon 平均信息量

Bayesian with K2 Prior

使用统一先验的 Bayesian Dirichlet(默认)
Naive Bayes 仅接受离散或离散化的属性,因此它不能使用兴趣性分数。

该算法的设计目的是最小化处理时间,并高效地选择最为重要的属性;但您可以通过设置下面的参数来控制其所用的数据:

  • 若要限制用作输入的值的数量,请降低 MAXIMUM_INPUT_ATTRIBUTES 的值。

  • 若要限制模型要分析的属性的数量,请降低 MAXIMUM_OUTPUT_ATTRIBUTES 的值。

  • 若要限制要为属性考虑的值的数量,请降低 MINIMUM_STATES 的值。

自定义 Naive Bayes 算法

Microsoft Naive Bayes 算法支持多个参数,这些参数会影响生成的挖掘模型的行为、性能和准确性。 您还可以对模型列设置建模标志来控制数据的处理方式,或者对挖掘结构设置标志来指定如何处理缺失值或 Null 值。

设置算法参数

Microsoft Naive Bayes 算法支持多个参数,这些参数会影响生成的挖掘模型的性能和准确性。 下表对各参数进行了说明:

MAXIMUM_INPUT_ATTRIBUTES
指定算法在调用功能选择之前可以处理的最大输入属性数。 如果将此值设置为 0,则为输入属性禁用功能选择。

默认值为 255。

MAXIMUM_OUTPUT_ATTRIBUTES
指定算法在调用功能选择之前可以处理的最大输出属性数。 如果将此值设置为 0,则为输出属性禁用功能选择。

默认值为 255。

MINIMUM_DEPENDENCY_PROBABILITY
指定输入属性和输出属性之间的最小依赖关系概率。 该值用于限制算法生成的内容大小。 此属性可以设置为 0 到 1 之间的值。 较大的值减少模型内容中的特性数。

默认值为 0.5。

MAXIMUM_STATES
指定算法支持的最大属性状态数。 如果属性具有的状态数大于最大状态数,则算法将使用特性的最常见状态,并将剩余状态视为缺失状态。

默认值为 100。

建模标志

Microsoft 决策树算法支持以下建模标志。 创建挖掘结构或挖掘模型时,定义建模标志以指定分析期间如何处理每列中的值。 有关详细信息,请参阅 将数据挖掘) (标志建模

建模标志 说明
MODEL_EXISTENCE_ONLY 表示该列将被视为具有两个可能状态:Missing 和 Existing。 Null 表示缺失值。

适用于挖掘模型列。
NOT NULL 指示该列不能包含 Null。 如果 Analysis Services 在模型定型过程中遇到 Null 值,将会导致错误。

适用于挖掘结构列。

要求

一个 Naive Bayes 树模型必须包含一个键列、至少一个可预测列和至少一个输入列。 所有属性均不能为连续属性;如果数据包含连续数值数据,则将会被忽略或离散化。

输入列和可预测列

Microsoft Naive Bayes 算法支持下表中列出的特定输入列和可预测列。 有关在挖掘模型中使用内容类型的含义的详细信息,请参阅 内容类型 (数据挖掘)

内容类型
输入属性 Cyclical、Discrete、Discretized、Key、Table 和 Ordered
可预测属性 Cyclical、Discrete、Discretized、Table 和 Ordered

注意

支持 Cyclical 和 Ordered 内容类型,但算法会将它们视为离散值,不会进行特殊处理。

另请参阅

Microsoft Naive Bayes Algorithm
Naive Bayes 模型查询示例
Naive Bayes 模型的挖掘模型内容(Analysis Services - 数据挖掘)