看到朴素贝叶斯使用概率进行预测,并将特征视为条件独立的,那么考虑到测试数据中缺少一些特征,模型仍然可以做出预测是有道理的。
我知道估算缺失数据是一种常见的做法,但是当朴素贝叶斯应该能够做出预测时,因为有一些特征缺失,为什么要这样做呢?
这可以在 sci-kit learn 中实现吗?我尝试了一个功能较少的测试集,但由于形状未对齐而得到了 ValueError。
所以理论上这是可能的,但是在 scikit learn 中可以吗?
看到朴素贝叶斯使用概率进行预测,并将特征视为条件独立的,那么考虑到测试数据中缺少一些特征,模型仍然可以做出预测是有道理的。
我知道估算缺失数据是一种常见的做法,但是当朴素贝叶斯应该能够做出预测时,因为有一些特征缺失,为什么要这样做呢?
这可以在 sci-kit learn 中实现吗?我尝试了一个功能较少的测试集,但由于形状未对齐而得到了 ValueError。
所以理论上这是可能的,但是在 scikit learn 中可以吗?
你的问题是明智的。在经典的朴素贝叶斯分类器(在 sklearn 中)中计算后验概率的方式类似于数据集中所有特征的条件概率的总和。即使这些特征被视为条件独立,为了学习分类概率,所有特征总是在这个设置中使用。一旦学习了模型,您仍然可以使用所有这些特征来计算新观察的后验。条件独立性只是为了使统计和数学遵守规则和工作而采取的假设。
但是稍微修改计算后验的方式,即使没有某些特征,您也可以使用贝叶斯方法进行预测。在没有某些特征的情况下使用贝叶斯方法进行预测仍然是一项正在进行的工作。您可能想看看这篇论文,其中将贝叶斯方法应用于天文学以使用缺失值进行分类。
朴素贝叶斯可以很容易地在 python 中实现,因为它是一个简单的计算。sklearn 朴素贝叶斯不支持缺失值的预测,并且很难实现您的想法。也许编写自己的代码会更好:)