机器学习---KNN算法核心原理和思路分析
文章目录
- 1.算法介绍
- 2.过拟合和欠拟合
- 3.几种不同的距离
- 4.特征的归一化处理
特此声明:该内容是学习耿直哥的相关机器学习理论,也是文章里面的部分图片素材的来源
1.算法介绍
KNN全称叫做K Nearset Neighbor,翻译之后就是K个最近的邻居;
其实这个KNN是一个思想,在我们的分类问题和回归问题里面都是有所体现的:
首先看一下这个分类的问题:分类问题使用这个思想主要是给我们的未知的个体贴上一个标签,中间的那个白色的圆圈周围:有灰色的,有红色的,那我们的这个未知的个体应该是灰色的还是红色的呢?
这个时候,通过选择不同的l值,我们就可以为这个未知的个体贴上标签:k=3的时候,就是虚线的小圆圈,这个时候,这个未知个体的属性就是红色的,如果k-5,也就是虚线的大圆圈,这个时候未知的个体的属性就是灰色的;
在我们的回归问题里面,和上面的分类问题贴标签不一样,回归问题主要是确定这个未知点的数值,也就是周围是不同的数据,我们需要根据这个k和不同的个体的权重,计算这个未知的个体的具体数值;
2.过拟合和欠拟合
K值的选取会出现这个过拟合和欠拟合的现象:
K值太小就是过拟合,英文叫做overfit,fit是合身,合适的意思,over就是过度的意思,如图所示,这个未知的个体周围基本上都是红色的,但是如果你的这个k=1的时候,他应该是灰色的,这种情况就是过拟合;
右下角的小人是为了从英语的层面去解释这个问题,就是这个小人的裤子太紧了,具体到我们的数据上面,就是这个数据集选择这个范围太小了,所以称为过拟合,这个时候i很容易受到噪声的影响;其实,如果从英语的角度,也就是overfit进行理解,这个时候就很容易明白;
因为初学者很难理解,为什么这个数据选择的很少,但是这个现象称之为过拟合呢,实际上这个就是从我们的英文翻译来的,如果追根溯源,我相信这个overfit并不难理解;
欠拟合,即underfit,使用小人理解,就是裤子太大了,具体到数据上面就是数据的选择范围太大了,其实有些的影响程度很小,基本上就可以忽略,但是我们也考虑进来了,这个就是欠拟合,这个时候的决策的效率很低,因为你受到每一个样本的影响;
3.几种不同的距离
在我们的这个KNN算法里面,因为是最近邻吗,所以这个距离的计算是我们绕不开的,因为这个距离决定了我们是否要选取这个点作为我们的参考点,下面介绍几种不同的距离:
首先是明氏距离,这个根据数学家明可夫斯基来进行命名的,通式如下所示,p=1的时候就是曼哈顿距离,p=2的时候就是欧氏距离,这个欧氏距离就是我们熟悉的距离,也就是我们传统意义上面的距离;
下面的这个上面还是用蓝色这个直线表示的我们的欧氏距离,使用红色的两个直线段表示我们的曼哈顿距离,但是实际上,我们常用的还是我们很熟悉的这个欧氏距离,其他的两个了解即可;
4.特征的归一化处理
为什么要进行特征值的归一化处理:主要是为了让不同的特征对于我们的模型具有一样的影响,这个时候模型同等的对待每一个特征,提高模型的准确性;
下面的这个变换的过程就可以解释这个现象:就是我们的x,y轴相同的距离代表的长度需要是一致的,也就是我们说的这个标度,否则就会对于我们的模型训练产生影响;