朴素贝叶斯分类器如何处理训练中的缺失数据?

数据挖掘 机器学习 数据挖掘 分类 朴素贝叶斯分类器
2021-10-10 04:07:28

朴素贝叶斯显然以不同的方式处理缺失数据,具体取决于它们是否存在于训练或测试/分类实例中。

在对实例进行分类时,具有缺失值的属性根本不包括在概率计算中(参考

在训练中,[带有缺失数据的]实例不包括在属性值类组合的频率计数中参考

这是否意味着特定的培训记录根本不包括在培训阶段?还是有别的意思?

1个回答

通常,在处理缺失值和训练朴素贝叶斯分类器时,您可以选择。您可以选择

  1. 省略任何缺失值的记录,
  2. 仅省略缺少的属性。

我将使用上面链接的示例来演示这两种方法。假设我们在该示例中再添加一条训练记录。

Outlook  Temperature  Humidity   Windy   Play
-------  -----------  --------   -----   ----
rainy    cool        normal    TRUE    no
rainy    mild        high      TRUE    no
sunny    hot         high      FALSE   no
sunny    hot         high      TRUE    no
sunny    mild        high      FALSE   no
overcast cool        normal    TRUE    yes
overcast hot         high      FALSE   yes
overcast hot         normal    FALSE   yes
overcast mild        high      TRUE    yes
rainy    cool        normal    FALSE   yes
rainy    mild        high      FALSE   yes
rainy    mild        normal    FALSE   yes
sunny    cool        normal    FALSE   yes
sunny    mild        normal    TRUE    yes
NA       hot         normal    FALSE   yes
  1. 如果由于缺失值而决定省略最后一条记录outlook,我们将拥有与链接中讨论的完全相同的训练模型。

  2. 我们还可以选择使用此记录中的所有可用信息。我们可以选择简单地outlook从该记录中省略该属性。这将产生以下更新的表格。

           展望温度湿度   
=================================================== ====  
          是 否 是 否 是 否
晴天 2 3 热 3 2 高 3 4
阴天 4 0 轻度 4 2 正常 7 1
下雨 3 2 凉爽 3 1
          ------------ --------- ----------
晴天 2/9 3/5 热 3/10 2/5 高 3/10 4/5
阴天 4/9 0/5 轻度 4/10 2/5 正常 7/10 1/5
下雨 3/9 2/5 凉爽 3/10 1/5


            风玩
================= ========
      是 否 是 否
错误 7 2 10 5
真 3 3
      ---------- ----------
错误 7/10 2/5 10/15 5/15
真 3/10 3/5

请注意,每个属性都有 15 个观察值,除了 Outlook,它只有 14 个。这是因为该值对于最后一条记录不可用。如链接文章中所述,所有进一步的开发将继续进行。

例如,在 R 包中,e1071naiveBayes 实现具有na.action可以设置为 na.omit 或 na.pass 的选项。