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 算法是基于贝亚斯定理的分类算法。 可以使用算法进行探索和预测建模。 “朴素贝叶斯”(Naïve Bayes)这一名称中的“朴素”一词,源于该算法采用了贝叶斯方法,但没有考虑可能存在的依赖关系。

此算法的计算强度比其他Microsoft算法要少,并且可用于快速生成挖掘模型来发现输入列和可预测列之间的关系。 可以使用此算法进行初始数据浏览。 稍后,可以应用结果来创建挖掘模型,这些算法的计算强度更高且更准确。

Example

作为正在进行的促销策略,Adventure Works Cycle 公司的营销部门决定通过邮寄传单来面向潜在客户。 为了降低成本,他们希望只向那些可能做出响应的客户发送传单。

该公司在数据库中存储有关人口统计数据和对以前邮件的响应的信息。 他们希望使用此数据来了解年龄和位置等人口统计数据如何通过将潜在客户与过去从公司购买的客户进行比较来预测对促销的反应。 具体而言,该公司希望看到购买自行车的客户与那些没有购买自行车的客户之间的差异。

通过使用 Microsoft 朴素贝叶斯算法,营销部门可以快速预测特定客户特征的结果,从而确定哪些客户最有可能对宣传单作出回应。 通过在 SQL Server Data Tools 中使用 Microsoft Naive Bayes 查看器,他们还可以以可视化方式分析哪些输入列会促使用户对宣传单作出积极响应。

算法的工作原理

根据可预测列的每个可能状态,Microsoft Naive Bayes 算法计算每个输入列的每个状态的概率。

若要了解此计算的工作原理,可以使用 SQL Server Data Tools 中的 Microsoft Naive Bayes 查看器直观地探索算法如何分布状态,如下图所示。

状态的朴素贝叶斯分布截图。

Microsoft Naive Bayes 查看器列出了数据集中的每个输入列,并显示如何分布每个列的状态(给定可预测列的每个状态)。 使用模型的此视图来识别哪些输入列对于区分可预测列的不同状态很重要。

例如,在 “通勤距离”行中,购买者与非购买者的输入值的分布明显不同。 此差异表示 通勤距离 = 0-1 英里 输入是潜在的预测器。

查看器还为分布提供了值,因此可以看到,对于上下班一到两英里的客户,购买自行车的概率为 0.387,他们不会购买自行车的概率为 0.287。 在此示例中,该算法使用从客户特征派生的数字信息,例如通勤距离来预测客户是否会购买自行车。

有关使用 Microsoft Naive Bayes 查看器的详细信息,请参阅 使用 Microsoft Naive Bayes 查看器浏览模型。

Naive Bayes 模型所需的数据

准备用于训练 Naive Bayes 模型的数据时,请了解算法的要求,包括所需数据量以及数据使用方式。

Naive Bayes 模型的要求如下:

  • 单个键列。 每个模型必须包含一个唯一标识每个记录的数字或文本列。 不允许使用复合键。

  • 输入列。 在朴素贝叶斯模型中,所有列必须为离散型,或者其值必须经过分桶处理。 有关如何对列进行装箱或离散化的信息,请参阅离散化方法(数据挖掘)。

  • 独立变量。 对于 Naive Bayes 模型,输入属性必须彼此独立。 使用模型进行预测时,此要求尤其重要。 如果使用两列已密切相关的数据,效果是将这些列的影响相乘,这可能会掩盖影响结果的其他因素。

    相反,在浏览模型或数据集以识别输入之间的关系时,算法识别变量之间的关联的能力非常有用。

  • 至少一个可预测列。 可预测属性必须包含离散或离散化值。

    可以将可预测列的值视为输入。 在浏览新数据集以查找列之间的关系时,这种做法非常有用。

查看模型

若要浏览模型,请使用Microsoft Naive Bayes 查看器。 查看器显示输入属性与可预测属性的关系。 查看器还提供了每个聚类的详细概况、区分各聚类的属性列表,以及整个训练数据集的特征。 有关详细信息,请参阅 使用 Microsoft Naive Bayes 查看器浏览模型。

有关更多详细信息,请浏览Microsoft泛型内容树查看器(数据挖掘)中的模型。 有关模型中存储的信息类型的详细信息,请参阅 Naive Bayes 模型(Analysis Services - 数据挖掘)的挖掘模型内容。

进行预测

训练模型后,它将结果存储为一组模式,可以浏览或使用这些模式进行预测。 可以创建查询来返回有关新数据与可预测属性的关系的预测,也可以检索描述模型找到的相关性的统计信息。

有关如何针对数据挖掘模型创建查询的信息,请参阅 数据挖掘查询。 有关如何将查询与 Naive Bayes 模型配合使用的示例,请参阅 Naive Bayes 模型查询示例。

注解

  • 支持使用预测模型标记语言(PMML)创建挖掘模型。

  • 支持钻取。

  • 不支持创建数据挖掘维度。

  • 支持使用 OLAP 挖掘模型。

另见

数据挖掘算法 (Analysis Services - 数据挖掘)
特征选择(数据挖掘)
Naive Bayes 模型查询示例
朴素贝叶斯模型的挖掘模型内容 (Analysis Services - Data Mining)
Microsoft Naive Bayes 算法技术参考