我试图修改标准kNN算法以获得属于类的概率,而不仅仅是通常的分类。我还没有找到关于概率kNN的大量信息,但据我所知,它与kNN类似,不同之处在于它计算给定半径内每个类的例子的百分比。
所以我想知道Naive Bayes和Probabilistic kNN之间的区别是什么?我只能发现Naive Bayes考虑到了先前的可能性,而PkNN却没有。我弄错了吗?
提前致谢!
答案 0 :(得分:3)
说实话,几乎没有相似之处。
Naive bayes假设每个类按照简单的分布分布,独立于特征。对于连续的情况 - 它将适合您的整个班级(每个班级)的径向正态分布,然后通过argmax_y N(m_y, Sigma_y)
答案 1 :(得分:0)
(我不知道如何格式化数学公式。有关更多详细信息和清晰的表示形式,请参见this。)
我想提出相反的观点,认为KNN是一种简化的朴素贝叶斯(NB),方法是将KNN视为密度估计的平均值。
要执行密度估计,我们尝试估计p(x)= k / NV,其中k是位于区域R中的样本数,N是总样本数,V是区域R的体积通常,有两种估算方法:(1)固定V,计算k,这称为核密度估计或Parzen窗; (2)固定k,计算V,这是基于KNN的密度估计。后一种由于其许多缺点而远没有前一种出名。
但是,我们可以使用基于KNN的密度估计来连接KNN和NB。在给定总共N个样本,ci类的Ni个样本的情况下,我们可以通过考虑包含x的区域,以基于KNN的密度估计的形式编写NB:
P(ci | x)= P(x | ci)P(ci)/ P(x)=(ki / NiV)(Ni / N)/(k / NV)= ki / k,
其中ki是该区域中ci类的样本数。最终形式ki / k实际上是KNN分类器。