背景
监督学习中数据是有标签的,比较入门。而在监督学习中,有分类和回归两个任务。其中分类又是比较简单的,那我们从分类入手,介绍第一个基础分类算法——KNN。
简介
KNN,全称K-NearestNeighbor,也叫K近邻。是监督学习中的一种基础的常用分类算法。
所谓K近邻,即选取k个最近的邻居,来代表每个样本。
说起来比较抽象,我们从图上来看一下。
已分类数据:
图中有两个类别:红色的三角形和蓝色的正方形。他们的样本数据散落在图中。
待分类数据:
绿色圆圈,上面打着问号,也就是我们要将他分到两个类别中。
好了,那么我们现在要看绿色的圆圈到底分到哪个类别中。
首先解决k=?
1.当k=3时,即图中边框为实线的圈中。包含了两个三角形和一个正方形,所以此时绿色圆圈属于三角形的分类。
2.当k=5时,即图中边框为虚线的圈中,包含了两个三角形和三个正方形,绿色圆圈属于正方形的分类。(对!就是这么简单粗暴)
由上可见:
1.待分类元素的k个最近邻居不包含其本身。
2.k近邻算法中,k最好不要选择偶数,以免出现邻居中类别个数相同的情况。
3.k的选取十分关键,他几乎主导着最终的分类结果。
其中,上面所说的“距离”,在KNN中常见的表现方式有:欧式距离、曼哈顿距离。
1.欧式距离
最常用、最简单。(数学符号不好打,偷个懒,贴图了)
2.曼哈顿距离
也叫城市街区距离,即|x1-