Microsoft Naive Bayes 算法技术参考

Microsoft Naive Bayes 算法是由Microsoft SQL Server Analysis Services 提供的分类算法,用于预测建模。 该算法计算输入列和可预测列之间的条件概率,并假定列是独立的。 由于这种独立假设,算法被命名为朴素贝叶斯 (Naive Bayes)。

Microsoft Naive Bayes 算法的实现

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

贝亚斯定理的数学属性说明超出了本文档的范围;有关详细信息,请参阅名为 Learning Bayesian Networks:知识与统计数据组合的研究Microsoft论文。

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

特征选择

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

算法 分析方法 注释
Naive Bayes 香农熵

贝伊西亚与 K2 Prior

贝叶斯·狄利克雷特模型(默认情况下使用均匀先验)
Naive Bayes 仅接受离散或离散化的特征;因此,它不能使用趣味性评分。

该算法旨在最大程度地减少处理时间,并有效地选择具有最大重要性的属性;但是,可以通过设置参数来控制算法使用的数据,如下所示:

  • 若要限制用作输入的值,请减小MAXIMUM_INPUT_ATTRIBUTES的值。

  • 若要限制模型分析的属性数,请减小MAXIMUM_OUTPUT_ATTRIBUTES的值。

  • 若要限制任何一个属性可以考虑的值数,请减小MINIMUM_STATES的值。

自定义朴素贝叶斯算法

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

设置算法参数

Microsoft Naive Bayes 算法支持多个参数,这些参数会影响生成的挖掘模型的性能和准确性。 下表描述了每个参数。

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

默认值为 255。

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

默认值为 255。

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

默认值为 0.5。

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

默认值为 100。

建模标记

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

建模标志 DESCRIPTION
MODEL_EXISTENCE_ONLY (if translation should be avoided to preserve technical accuracy) 表示将列视为具有两种可能状态:缺失和存在。 null 是缺失值。

适用于挖掘模型列。
NOT NULL 指示该列不能包含 null。 如果 Analysis Services 在模型训练期间遇到 null,则会出现错误。

适用于挖掘结构列。

要求

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

输入列和可预测列

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

内容类型
输入属性 循环、离散、离散化、关键、表和排序
可预测属性 循环、离散、离散化、表格和有序

注释

支持循环和有序内容类型,但算法将它们视为离散值,并且不执行特殊处理。

另请参阅

Microsoft Naive Bayes 算法
Naive Bayes 模型查询示例
朴素贝叶斯模型的模型内容挖掘(分析服务 - 数据挖掘)