用朴素贝叶斯预测新数据

数据挖掘 机器学习 分类 朴素贝叶斯分类器
2021-10-12 06:27:26

假设我有以下用于朴素贝叶斯算法的训练集。

   Outlook    Person    Play Golf?
   -------    ------    ----------
   Sunny      Joe       Yes
   Sunny      Mary      Yes
   Raining    Joe       Yes
   Raining    Mary      No
   Raining    Harry     Yes

如果尝试预测哈利是否会在阳光明媚的日子打高尔夫球(我没有数据)。排除人员属性并使用剩余的前景属性来计算发生这种情况的概率是否正确?或者这可能会导致我不知道的更大数据集出现问题?

1个回答

在朴素贝叶斯假设中,主要的假设是特征是条件独立的。对于我们的问题,我们会有:

P(Play|Outlook,Person)P(Play)P(Outlook|Play)P(Name|Play)

为了解决这个问题,Harry 会在阳光明媚的日子打球吗?,您必须计算以下内容:

(es|小号nn是的,H一个rr是的)=(es)(小号nn是的|es)(H一个rr是的|es)
(ñ|小号nn是的,H一个rr是的)=(ñ)(小号nn是的|ñ)(H一个rr是的|ñ)

并选择价值较大的概率。

这就是理论所说的。为了解决您的问题,我将重新表述朴素贝叶斯的主要假设。在给定输出的情况下特征独立的假设基本上意味着联合分布给出的信息可以通过边际的乘积获得。用简单的英语:假设你只知道哈利在一般情况下玩了多少,以及任何人在晴天玩了多少,就可以知道哈利是否在晴天玩。如您所见,即使您的数据中有该记录,您也不会使用 Harry 在阳光明媚的日子打球的事实 仅仅因为朴素贝叶斯假设特征之间的相互作用没有有用的信息,这就是朴素贝叶斯所依赖的条件独立的精确含义。

也就是说,如果您想要使用功能的交互,那么您将不得不使用不同的模型,或者只是添加一个新的组合功能,例如名称和前景因素的串联。

作为一个结论,当您在输入特征中不包含名称时,您将拥有一个通用的智慧分类器,就像每个人都在玩,无论前景如何,因为大多数实例都有 play=yes。如果您在输入变量中包含名称,您可以使用特定于玩家的东西来改变一般智慧。因此,无论前景如何,您的分类器智慧看起来都像玩家一般更喜欢玩,但 Marry 不太喜欢在 Rainy 上玩

但是,您的数据集上存在朴素贝叶斯的潜在问题。此问题与变量名称的潜在大量级别有关。为了近似概率,会发生一件普遍的事情:更多的数据,更好的估计。这可能会发生在变量 Outlook 中,因为有两个级别,添加更多数据可能不会增加级别的数量。因此,如果有更多数据,Outlook 的估计值可能会更好。但是对于名称,您将不会遇到相同的情况。可能只有通过添加更多名称才能添加更多实例。这意味着平均而言,每个名称的实例数将相对稳定。如果你只有一个实例,就像 Harry 的情况一样,你没有足够的数据来估计(H一个rr是的|ñ).

碰巧这个问题可以使用平滑来缓解。也许拉普拉斯平滑(或更一般的像 Lindstone)非常有帮助。原因是基于最大似然的估计在这种情况下存在很大问题。

我希望它至少部分回答了你的问题。