通过


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 Naive Bayes算法,营销部门可以快速预测特定客户资料的结果,从而确定哪些客户最有可能对传单有反应。 通过在 SQL Server Data Tools 中使用 Microsoft Naive Bayes Viewer,他们还可以直观地分析哪些输入列对传单做出积极响应。

算法的工作原理

根据可预测列的每个可能状态,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 模型中,所有列都必须是离散的,或者值必须已被分箱。 有关如何离散化(bin)列的信息,请参阅离散化方法(数据挖掘)。

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

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

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

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

查看模型

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

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

进行预测

训练模型后,结果将存储为一组模式,你可以浏览或使用这些模式进行预测。

可以创建查询来返回有关新数据与可预测属性的关系的预测,也可以检索描述模型找到的相关性的统计信息。

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

注解

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

  • 支持钻取。

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

  • 支持使用 OLAP 挖掘模型。

另请参阅

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