分类目录:《深入理解机器学习》总目录


k近邻(k-Nearest Neighbor,kNN)算法是一种常用的有监督学习算法,可以完成分类与回归的任务,其工作机制非常简单:给定测试样本,基于某种距离度量找出训练集中与其最靠近的 k k k个训练样本,然后基于这 k k k个“邻居”的信息来进行预测。通常,在分类任务中可使用“投票法”,即选择这 k k k个样本中出现最多的类别标记作为预测结果;在回归任务中可使用“平均法”,即将这 k k k个样本的实值输出标记的平均值作为预测结果;还可基于距离远近进行加权平均或加权投票,距离越近的样本权重越大。 k k k值的选择、距离度量及分类决策规则是k近邻法的三个基本要素。

与前面介绍的学习方法相比,k近邻学习有一个明显的不同之处:它似乎没有显式的训练过程。事实上,它是“懒惰学习”(lazy learning)的著名代表,此类学习技术在训练阶段仅仅是把样本保存起来,训练时间开销为零,待收到测试样本后再进行处理;相应的,那些在训练阶段就对样本进行学习处理的方法,称为“急切学习”(eager learning).。

上给出了k近邻分类器的一个示意图。显然, k k k是一个超参数,当 k k k取不同值时,分类结果会有显著不同。另一方面,若采用不同的距离计算方式,则找出的“近邻”可能有显著差别,从而也会导致分类结果有显著不同。暂且假设距离计算是“恰当”的,即能够恰当地找出 k k k个近邻,我们来对“最近邻分类器”(1NN,即k k k k=1)在二分类问题上的性能做一个简单的讨论。

给定测试样本 x x x,若其最近邻样本为 y y y,则最近邻分类器出错的概率就是 x x x与 y y y类别标记不同的概率,即:
p ( err ) = ∑ c ∈ Y p ( c ∣ x ) p ( c ∣ y ) p(\text{err})=\sum_{c\in Y}p(c|x)p(c|y) p(err)=c∈Y∑​p(c∣x)p(c∣y)

假设样本独立同分布,且对任意 x x x和任意小正数 δ \delta δ,在 x x x附近 δ \delta δ距离范围内总能找到一个训练样本;换言之,对任意测试样本,总能在任意近的范围内找到上式中的训练样本 y y y.令 c ∗ = arg max ⁡ c ∈ Y p ( c ∣ x ) c^*=\argmax_{c\in Y}{p(c|x)} c∗=argmaxc∈Y​p(c∣x)表示贝叶斯最优分类器的结果,有:
p ( err ) ≤ 2 × ( 1 − p ( c ∗ ∣ x ) ) p(\text{err})\leq 2\times(1-p(c^*|x)) p(err)≤2×(1−p(c∗∣x))

即最近邻分类器虽简单,但它的泛化错误率不超过贝叶斯最优分类器的错误率的两倍。

深入理解机器学习——k近邻(kNN,k-Nearest Neighbor)算法:基础知识相关推荐

  1. 深入理解机器学习——集成学习(Ensemble Learning):基础知识

    分类目录:<深入理解机器学习>总目录 集成学习基于这样一种思想:对于一个复杂任务来说,将多个专家的判断进行适当的综合所得出的判断,要比其中任何一个专家单独的判断好.实际上,就是" ...

  2. 机器学习经典算法具体解释及Python实现--K近邻(KNN)算法

    (一)KNN依旧是一种监督学习算法 KNN(K Nearest Neighbors,K近邻 )算法是机器学习全部算法中理论最简单.最好理解的.KNN是一种基于实例的学习,通过计算新数据与训练数据特征值 ...

  3. Python+OpenCV:理解k近邻(kNN)算法(k-Nearest Neighbour (kNN) algorithm)

    Python+OpenCV:理解k近邻(kNN)算法(k-Nearest Neighbour (kNN) algorithm) 理论 kNN is one of the simplest classi ...

  4. 【Python机器学习】多项式回归、K近邻KNN回归的讲解及实战(图文解释 附源码)

    需要源码请点赞关注收藏后评论区留言私信~~~ 多项式回归 非线性回归是用一条曲线或者曲面去逼近原始样本在空间中的分布,它"贴近"原始分布的能力一般较线性回归更强. 多项式是由称为不 ...

  5. K NEAREST NEIGHBOR 算法(knn)

    K Nearest Neighbor算法又叫KNN算法,这个算法是机器学习里面一个比较经典的算法, 总体来说KNN算法是相对比较容易理解的算法.其中的K表示最接近自己的K个数据样本.KNN算法和K-M ...

  6. K 近邻法(K-Nearest Neighbor, K-NN)

    文章目录 1. k近邻算法 2. k近邻模型 2.1 模型 2.2 距离度量 2.2.1 距离计算代码 Python 2.3 kkk 值的选择 2.4 分类决策规则 3. 实现方法, kd树 3.1 ...

  7. K Nearest Neighbor 算法

    K Nearest Neighbor算法又叫KNN算法,这个算法是机器学习里面一个比较经典的算法, 总体来说KNN算法是相对比较容易理解的算法.其中的K表示最接近自己的K个数据样本.KNN算法和K-M ...

  8. 机器学习-监督学习之分类算法:K近邻法 (K-Nearest Neighbor,KNN)

    目录 KNN概述 举个例子: K值选取 距离计算 曼哈顿距离,切比雪夫距离关系(相互转化) k-近邻(KNN)算法步骤 相关代码实现 简单实例:判断电影类别 创建数据集 数据可视化 分类测试 运行结果 ...

  9. 【机器学习经典算法】K近邻(KNN):核心与总结

    文章目录 1. 初识K近邻 2. 相知 2.1 K近邻三要素 2.2 KD树 2.2.1 kd树的构建 2.2.2 kd树的搜索 3. 总结 1. 初识K近邻 K-近邻(K-Nearest Neigh ...

  10. 机器学习算法(7)——K近邻(KNN)、K-means、模糊c-均值聚类、DBSCAN与层次与谱聚类算法

    1.K-近邻算法(KNN)概述 (有监督算法,分类算法) 最简单最初级的分类器是将全部的训练数据所对应的类别都记录下来,当测试对象的属性和某个训练对象的属性完全匹配时,便可以对其进行分类.但是怎么可能 ...

最新文章

  1. 智简全渠道孟伟:做CRM十六年,企业的一百种死法
  2. 《软件定义网络:基于OpenFlow的SDN》一一2.5 本章总结
  3. C++ Const指针学习
  4. 基于 DataLakeAnalytics 做跨地域的数据分析 1
  5. 通俗理解LightGBM并图解举例
  6. SQL相关路径查询脚本
  7. php里isset的属性,PHP魔术方法__isset()
  8. python 科学计算设计_《Python科学计算-(第2版)》怎么样_目录_pdf在线阅读 - 课课家教育...
  9. 2017.9.21 所驼门王的宝藏 思考记录
  10. 使用C#进行点对点通讯和文件传输(通讯基类部分+发送接收
  11. Unity3D之NGUI基础6.1:按钮交互
  12. 如何面对不讲信用的人
  13. 在双屏软件中,PPT自定义动画注意事项
  14. macd的python代码同花顺_MACD最全的运用方法!
  15. win10系统迁移后系统重装_win10系统迁移超简单!详细步骤解析
  16. VUE 嵌入 WPS插件
  17. C++ int 转字符串
  18. python学习之recognition的多人人脸识别
  19. 文华财经指标安装使用步骤,开多开空成功率95%公式指标多空买卖点信号
  20. oxygen 生成java对象_利用oxygen编辑并生成xml文件,并使用JAVA的JAXB技术完成xml的解析...

热门文章

  1. Python 用米粒填充国际象棋盘
  2. WORD中怎么圈11往后怎么打 (转)
  3. matlab快速入门(13):获取函数的多个输出
  4. Python编程——星星: 找一副星星图像,并在屏幕上显示一系列排列整齐的星星
  5. 手撕自动驾驶算法——KLT 光流算法
  6. Visual Basic-Ping!
  7. java中符号的总结
  8. 信息安全事件分类分级解读
  9. L1-047 装睡 java语言
  10. 介绍几本专业的书籍,一起学习 关于技术 数学方面的