Machine learning 概率kNN和朴素贝叶斯的区别

Machine learning 概率kNN和朴素贝叶斯的区别,machine-learning,artificial-intelligence,bayesian,knn,naivebayes,Machine Learning,Artificial Intelligence,Bayesian,Knn,Naivebayes,我试图修改一个标准的kNN算法,以获得属于某个类的概率,而不仅仅是通常的分类。我没有发现关于概率kNN的太多信息,但据我所知,它的工作原理与kNN类似,不同之处在于它计算给定半径内每个类的示例百分比 所以我想知道,朴素贝叶斯和概率kNN有什么区别?我只发现NaiveBayes考虑了先前的可能性,而PkNN没有。我弄错了吗 提前谢谢 老实说,几乎没有相似之处 朴素贝叶斯假设每个类都按照简单的分布进行分布,独立于特征。对于连续情况-它将为整个类(每个类)拟合径向正态分布,然后通过argmax\u y

我试图修改一个标准的kNN算法,以获得属于某个类的概率,而不仅仅是通常的分类。我没有发现关于概率kNN的太多信息,但据我所知,它的工作原理与kNN类似,不同之处在于它计算给定半径内每个类的示例百分比

所以我想知道,朴素贝叶斯和概率kNN有什么区别?我只发现NaiveBayes考虑了先前的可能性,而PkNN没有。我弄错了吗


提前谢谢

老实说,几乎没有相似之处

朴素贝叶斯假设每个类都按照简单的分布进行分布,独立于特征。对于连续情况-它将为整个类(每个类)拟合径向正态分布,然后通过
argmax\u y N(m\u y,Sigma\u y)

另一方面,KNN不是一个概率模型。您所指的修改只是原始想法的“平滑”版本,其中您返回最近邻集中每个类的比率(这实际上不是任何“概率kNN”,它只是对概率进行粗略估计的规则kNN)。这与数据分布无关(除了局部平滑)。特别是,它是一个非参数模型,如果有足够的训练样本,它将完全适合任何数据集。朴素贝叶斯仅适用于K高斯(其中K是类数)。

(我不知道如何格式化数学公式。有关更多详细信息和清晰表示,请参阅。)

我想提出一个相反的观点,即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分类器。

好的,但是我根本没有得到概率KNN。它实现了什么机制来确定示例的概率?概率是通过邻域中的朴素估计器来估计的,比如
P(y | x)=#NN(x)中的标签y/#NN(x)的大小
,其中NN是最近邻的集合。