Microsoft Naive Bayes 算法是基于 Bayes 的定理的分类算法,由 Microsoft SQL Server Analysis Services 提供,用于预测建模。 名称 Naïve Bayes 中的天真词派生自该算法使用贝贝斯技术,但不考虑可能存在的依赖项。
此算法的计算强度比其他Microsoft算法少,因此对于快速生成挖掘模型以发现输入列和可预测列之间的关系很有用。 可以使用此算法对数据进行初始探索,然后稍后可以应用结果,以创建具有计算强度更高且更准确的其他算法的其他挖掘模型。
示例:
作为正在进行的促销策略,Adventure Works Cycle 公司的营销部门决定通过邮寄传单来面向潜在客户。 为了降低成本,他们希望只向那些可能做出响应的客户发送传单。 该公司在数据库中存储有关人口统计数据和对以前邮件的响应的信息。 他们希望使用此数据来了解年龄和位置等人口统计数据如何帮助预测对促销的反应,方法是将潜在客户与过去从公司购买的客户进行比较。 具体而言,他们希望看到那些购买自行车的客户与那些没有购买自行车的客户之间的差异。
通过使用微软的Naive Bayes算法,营销部门可以快速预测特定客户档案的结果,因此可以确定哪些客户最有可能响应宣传单。 通过使用 SQL Server Data Tools (SSDT) 中的 Microsoft Naive Bayes Viewer,他们还可以直观地调查具体哪些输入列对传单产生积极响应。
算法的工作原理
根据可预测列的每个可能状态,Microsoft Naive Bayes 算法计算每个输入列的每个状态的概率。
若要了解其工作原理,请使用 SQL Server Data Tools (SSDT) 中的 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 模型中,所有列都必须是离散列或离散化列。 有关离散化列的信息,请参阅离散化方法(数据挖掘)。
对于 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 算法技术参考