朴素贝叶斯:连续和分类预测器

机器算法验证 朴素贝叶斯
2022-03-13 10:17:45

据我了解,大多数类型的常见分类器(例如支持向量机)可以混合使用分类预测器和连续预测器。

但是,对于朴素贝叶斯来说,这似乎不是真的,因为我需要先验地指定似然分布。

如果我想为分类和连续预测变量混合运行朴素贝叶斯,我应该怎么做?

谢谢!

3个回答

您可以在朴素贝叶斯分类器中使用任何类型的预测器,只要您可以指定条件概率p(x|y)预测值的x给定班级y. 由于朴素贝叶斯假设预测变量在给定类的情况下是条件独立的,因此您可以根据您对它的任何先验知识为每个预测变量混合和匹配不同的似然模型。

例如,您可能知道p(x|y)对于一些连续的预测器是正态分布的。简单估计训练集中每个类下这个变量的均值和方差;然后使用正态分布的 PDF 来估计p(x|y)对于新的未标记实例。同样,您可以酌情使用任何其他连续分布的充分统计量和 PDF。

如果分类器中的其他一些预测器是分类的,那很好。简单估计p(x|y)像往常一样使用伯努利或多项事件模型,并在最终预测中将两个条件概率相乘(因为无论如何都假定它们是独立的)。

旁注:严格来说,SVM 和其他判别线性模型混合了分类和连续预测变量。您可以将 SVM 解释为仅采用连续预测变量,将分类变量的 {0,1} 值作为特例。

处理连续预测变量的另一种简单方法是将连续变量“装箱”:

例如,一个常见的示例是将一天中的时间(连续的、数字的)拆分为 AM 和 PM。

您可以通过增加# bins 来潜在地捕获更多信息(例如,将 24 小时分成 4 个 6 小时时段)但是,这也会增加模型对噪声数据的敏感度,因此您需要小心。

根据我的经验,如果您在许多分类预测变量中只有一个/几个连续预测变量,我会推荐这种方法。

如上所述的方法——“处理连续预测变量的另一种简单方法是对连续变量进行分箱”——可在现成的web服务中使用。

实值数值变量被“分箱”,同时最大限度地保留与要预测的分类器结果有关的判别性能。在此预处理步骤之后,分类器“即时”构建,并通过N 倍交叉验证测试其泛化能力。

您可以在Insight 分类器中自己尝试此Web服务。

当您想真正了解分类是如何在您的领域中发生时,您需要用离散分类器替换连续值分类器,例如神经网络和支持向量机。

包含离散连续 预测变量的多元混合分布- 任何将其映射到分类结果都涉及复杂概率积分Egmont-Petersen 等人在大多数分类域中,这些概率密度不是高斯的。

因此,预测变量的性能保持离散化确保了无分布(非参数)分类器,这也是一个白盒这意味着您可以理解分类器,从而理解底层域。