Microsoft Naive Bayes 算法技术参考

Microsoft Naive Bayes 算法是 Microsoft 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 - 数据挖掘)