k近邻算法|K-Nearest Neighbors Algorithm(KNN)
1. 直观上理解

如图所示,已经有两个数据集,用★和▲分别标出,然后输入一个新的数据?,我们来判断?是属于★还是▲。那么如何分类呢?KNN的思想是这样的:(这里以欧氏距离为例)以新数据为圆心,以圆里的数据个数为K(这个K就是KNN的K值)半径,画圆。最后看这个圆里的K个数据是★多还是▲多,哪个多我们判定新数据就属于哪个类型(多数表决法)。
请注意以上标红加粗的字嗷。
(1)已经有了带标签的数据集,这个数据集你得有,不管什么样的方法找到的。是要对新的数据集进行分类,看他归属于已有的哪个数据集。
(2)KNN三要素:K值的选择,距离度量,分类决策规则。图上例举了K为1和7的情形,采用欧氏距离,决策规则为多数表决。
(3)距离度量:



(4)K值的选择

2. 上算法

好的,算法知道了,给定数据集,新来的点和所有的数据集已经标签的样本进行距离计算,然后比较,求出最近的k个样本,如果样本维度较高,数据比较庞大,那么计算机计算所有点,耗时耗力,占用太多资源,怎么办呢?一个办法,买高性能计算平台,第二个办法,优化搜索算法。这个时候就用到kd树。
3. kd树
3.1 什么是kd树 | 3.2构造kd树 | 3.3 kd树搜索。
【合集】十分钟 机器学习 系列视频 《统计学习方法》_哔哩哔哩_bilibili
感谢上述视频。
感谢李航老师的《统计学习方法(第二版)》。上述除视频外的资料均为此书提供。
欢迎批评指正。

