【问题标题】:Difference between Probabilistic kNN and Naive Bayes概率 kNN 和朴素贝叶斯之间的区别
【发布时间】:2016-08-26 11:14:42
【问题描述】:

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

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

提前致谢!

【问题讨论】:

    标签: machine-learning artificial-intelligence bayesian knn naivebayes


    【解决方案1】:

    说实话,几乎没有相似之处。

    朴素贝叶斯假设每个类都根据简单分布进行分布,独立于特征。对于连续情况-它将适合您的整个班级(每个班级)的径向正态分布,然后通过argmax_y N(m_y, Sigma_y) 做出决定

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

    【讨论】:

    • 好的,但是我根本没有得到概率 kNN。它采用什么机制来确定样本的概率?
    • 概率是通过邻域中的朴素估计器估计的,例如P(y|x) = # labels y in NN(x) / # size of NN(x),其中 NN 是最近邻的集合。
    【解决方案2】:

    (我不知道如何格式化数学公式。更多细节和清晰的表示,请参阅this。)

    我想提出一个相反的观点,即通过将 KNN 视为密度估计的平均值,KNN 是一种简化的朴素贝叶斯 (NB)。

    为了进行密度估计,我们尝试估计 p(x) = k/NV,其中 k 是位于区域 R 中的样本数,N 是总样本数,V 是区域 R 的体积. 通常,估计有两种方法:(1)固定V,计算k,称为核密度估计或Parzen窗口; (2)固定k,计算V,即基于KNN的密度估计。后者的名气远不如前者,因为它有很多缺点。

    然而,我们可以使用基于 KNN 的密度估计来连接 KNN 和 NB。给定总共 N 个样本,Ni 类样本,我们可以通过考虑包含 x 的区域将 NB 写成基于 KNN 的密度估计的形式:

    P(ci|x) = P(x|ci)P(ci)/P(x) = (ki/NiV)(Ni/N)/(k/NV) = ki/k,

    其中 ki 是该区域中类别 ci 的样本数。最终形式 ki/k 实际上是 KNN 分类器。

    【讨论】:

      猜你喜欢
      • 2014-01-13
      • 2021-03-05
      • 2013-08-06
      • 2013-11-13
      • 2014-06-17
      • 2018-08-05
      • 1970-01-01
      • 2016-02-05
      • 2019-08-04
      相关资源
      最近更新 更多