一、KNN
KNN是一种分类算法,它不具有显式的学习过程。对应的输入是特征空间的点,输出为实例的类别,可以是多类别。
1.算法思路
如果一个样本在特征空间中的k个最邻近的样本中的大多数属于某一个类别,则该样本也划分为这个类别。KNN算法中,所选择的邻居都是已经正确分类的对象。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。
举例说明如下:
我们要确定绿点属于哪个颜色(红色或者蓝色),要做的就是选出距离目标点距离最近的k个点,看这k个点的大多数颜色是什么颜色。当k取3的时候,我们可以看出距离最近的三个,分别是红色、红色、蓝色,因此得到目标点为红色。
![9ccab216a9c2559995cc4a1aa902df53.png](https://i-blog.csdnimg.cn/blog_migrate/8b41e412d9169f35fa853156fb5afeba.png)
算法步骤:
1)计算测试数据与各个训练数据之间的距离;
2)按照距离的递增关系进行排序;
3)选取距离最小的K个点;
4)确定前K个点所在类别的出现频率;
5)返回前K个点中出现频率最高的类别作为测试数据的预测分类
2.三个基本要素
- k值的选择:k值的选择会对结果产生重大影响。较小的k值可以减少近似误差(训练集误差),但是会增加估