Microsoft Naive Bayes 算法
Microsoft Naive Bayes 算法是 Microsoft SQL Server 2005 Analysis Services (SSAS) 提供的一种分类算法,用于预测性建模。该算法在假定列互不相关的前提下计算输入列和可预测列之间的条件概率。该算法的名称 Naive Bayes 即由这一无关性假定而来,因为基于这种理想化的假定,该算法未将可能存在的依赖关系考虑在内。
与其他 Microsoft 算法相比,该算法所需的运算量小,因而能够快速生成挖掘模型,以发现输入列和可预测列之间的关系。可以使用该算法进行初始数据探测,然后根据该算法的结果使用其他运算量较大、更加精确的算法创建其他挖掘模型。
示例
作为正在进行的促销策略,Adventure Works Cycle 公司的市场部已经决定通过发送宣传资料将目标定位为潜在的客户。为了降低成本,他们只向有可能做出反应的客户发送宣传资料。该公司将有关客户统计数据以及对上一邮件的反映的信息存储在数据库中。他们希望利用这些数据将潜在客户和具备相同特征并曾经购买过公司产品的客户进行对比,以了解年龄和位置等统计数据如何帮助预测客户对促销的响应。他们尤其希望找出购买自行车的客户与未购买自行车的客户之间的差别。
使用 Microsoft Naive Bayes 算法,市场部能够快速预测特定客户群的结果,进而确定最有可能对邮件做出响应的客户。而使用 Business Intelligence Development Studio 中的 Microsoft Naive Bayes 查看器,他们还能够以直观的方式专门调查哪些输入列有助于对宣传资料做出积极响应。
算法的原理
在给定可预测列的各种可能状态的情况下,Microsoft Naive Bayes 算法将计算每个输入列的每种状态的概率。使用 Business Intelligence Development Studio 中的 Microsoft Naive Bayes 查看器可以直观地观察算法分布状态的方式,如下图所示。
Microsoft Naive Bayes 查看器可列出数据集中的每个输入列。如果提供了可预测列的每种状态,它还会显示每一列中状态的分布情况。可以利用该视图确定在区分可预测列状态中具有重要作用的输入列。例如,在此图的 Commute Distance 列中,通勤距离为一至二英里的客户购买自行车的概率是 0.387,不购买自行车的概率是 0.287。在本示例中,该算法使用从诸如上下班路程之类的客户特征得出的数字信息来预测客户是否会购买自行车。有关如何使用 Microsoft Naive Bayes 查看器的详细信息,请参阅使用 Microsoft Naive Bayes 查看器查看挖掘模型。
使用算法
Naive Bayes 模型必须包含一个键列、若干输入列以及一个可预测列。所有列都必须是离散列或经过离散化的列。有关离散化列的详细信息,请参阅离散化方法。
Microsoft Naive Bayes 算法支持特定输入列内容类型、可预测列内容类型和建模标志,如下表所示。
输入列内容类型 |
Cyclical、Discrete、Discretized、Key、Table 和 Ordered |
可预测列内容类型 |
Cyclical、Discrete、Discretized、Table 和 Ordered |
建模标志 |
MODEL_EXISTENCE_ONLY 和 NOT NULL |
所有 Microsoft 算法均支持一些通用的函数。但是,Microsoft Naive Bayes 算法还支持其他函数,如下表所示。
有关对所有 Microsoft 算法都通用的函数列表,请参阅数据挖掘算法。有关如何使用这些函数的详细信息,请参阅数据挖掘扩展插件 (DMX) 函数参考。
Microsoft Naive Bayes 算法不支持使用预测模型标记语言 (PMML) 创建挖掘模型。
Microsoft Naive Bayes 算法支持对所生成挖掘模型的性能和精度有影响的若干参数。下表对各参数进行了说明:
参数 | 说明 |
---|---|
MAXIMUM_INPUT_ATTRIBUTES |
指定算法在调用功能选择之前可以处理的最大输入属性数。如果将此值设置为 0,则为输入属性禁用功能选择。 默认值为 255。 |
MAXIMUM_OUTPUT_ATTRIBUTES |
指定算法在调用功能选择之前可以处理的最大输出属性数。如果将此值设置为 0,则为输出属性禁用功能选择。 默认值为 255。 |
MINIMUM_DEPENDENCY_PROBABILITY |
指定输入属性和输出属性之间的最小依赖关系概率。该值用于限制算法生成的内容大小。该属性可设置为介于 0 和 1 之间的值。该值越大,模型内容中的属性数就越少。 默认值为 0.5。 |
MAXIMUM_STATES |
指定算法支持的最大属性状态数。如果属性的状态数大于该最大状态数,算法将使用该属性的最常见状态,并将剩余状态视为不存在。 默认值为 100。 |
请参阅
概念
数据挖掘算法
离散化方法
数据挖掘中的功能选择
使用数据挖掘工具
使用 Microsoft Naive Bayes 查看器查看挖掘模型