机器学习笔记(7):K近邻

本文来自之前在Udacity上自学机器学习的系列笔记。这是第7篇,介绍了监督学习中的K近邻模型。

K近邻

K近邻模型理解起来非常简单。假设我们已经知道下面地图中红点、蓝点和绿点表示的房子的价格了,我们想要预估新的一座房子(用黑点表示)的价格,我们可以选取距离这座房子最近的K个房子,然后按照占大多数类别的点所对应的价格作为这所新房子的价格。

image.png

K近邻算法与之前介绍的线性回归有本质的区别。线性回归是通过一组数据得到拟合这些数据点的函数。对于这个函数来说,输入某个已知的特征,得到的输出很可能并不是完全与已知数据一致的,它只是趋近而不是记住已知数据。而K近邻是将数据完全记住,已知数据通过模型计算会得到源数据的结果。所以这里有个范式转移,线性回归是基于参数的,而K近邻是基于实例的模型。

模型

  1. 给定数据集D=(x^{(i)}, y^{(i)}), 距离函数d(q,x),近邻的数量为k, 需要求解q的分类或预测值;
  2. 根据已知数据求得最近邻的k个数据点集合NN=\{i:d(q, x^{(i)})\}
  3. 根据问题的类型,对集合NN进行结果的判断。如果是回归问题,我们可以取结果的平均值;如果是分类问题,我们可以根据集合中票数最多的类别作为q的类别。另外,如果存在多个同样多票数的结果,我们可以进行加权平均,比如说乘以距离的倒数,这样距离越远,权重越低。

距离函数
上面提到的距离函数常用的有以下几种。
假设x \in R^n
欧氏距离:
d(q, x) = \sqrt{(q_1-x_1)^2+(q_2-x_2)^2+ {\cdots} +(q_n-x_n)^2}

曼哈顿距离:
d(q, x) = |q_1-x_1| + |q_2-x_2| +{\cdots} + |q_n-x_n|

在sklearn上有更加深入的介绍:
https://scikit-learn.org/stable/modules/neighbors.html#classification

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 首页 资讯 文章 资源 小组 相亲 登录 注册 首页 最新文章 IT 职场 前端 后端 移动端 数据库 运维 其他...
    Helen_Cat阅读 3,909评论 1 10
  • 以西瓜书为主线,以其他书籍作为参考进行补充,例如《统计学习方法》,《PRML》等 第一章 绪论 1.2 基本术语 ...
    danielAck阅读 4,575评论 0 6
  • 机器学习术语表 本术语表中列出了一般的机器学习术语和 TensorFlow 专用术语的定义。 A A/B 测试 (...
    yalesaleng阅读 1,996评论 0 11
  • 一.朴素贝叶斯 1.分类理论 朴素贝叶斯是一种基于贝叶斯定理和特征条件独立性假设的多分类的机器学习方法,所...
    wlj1107阅读 3,126评论 0 5
  • 2019年3月23日 星期六 天气 晴 每个孩子的童年都渴望被满满的快乐包围着。而在这些快...
    雨天檐阅读 818评论 0 4