机器学习——KNN算法

KNN算法

1.1 简介

K近邻 (k-Nearest Neighbors, KNN) 算法是一种分类与回归算法,是机器学习算法中最基础、最简单的算法之
一  , 1968年由 Cover和 Hart 提出, 应用场景有字符识别、 文本分类、 图像识别等领域。

1.2 核心思想

一个样本与数据集中的k个样本最相似, 如果这k个样本中的大多数属于某一个类别, 则该样本(就可以认为)也属于这个类别,具体来说即每个样本都可以用它最接近的k个邻居来代表
如下图,如果 K = 1,未知数据(绿色的问号点)被小圈中的邻居红色方块”决策“为class2 ;如果 K = 5, 未知数据就会被大圈里的邻居蓝色三角形”决策“为class1(理由是,有3个蓝色三角,大于红色方块的数目)。
在这里插入图片描述

1.3 算法执行

1.构造训练样本集,并且样本集中每一数据都有一个标签;
2.输入没有标签的数据,根据每 一个维度的特征,从样本集选出k个最靠近的邻居;
3.用这k个邻居去投票得出未知数据的标签。

1.4 KNN算法的三要素

1.距离待预测点的邻居的个数K(已知设定);
2.样本点之间距离的计算方式;
3.决策函数的选择;

1.5 K值的选择和影响

1.K是k近邻算法中的唯一一个超参数

   超参数: 在机器学习的上下文中,超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据
   。通常情况下,需要对超参数进行优化,给学习机选择一组最优超参数,以提高学习的性能和效果(简单的说超
   参 数就是参数中的参数)。

1.5.1 K值的选择

K的选取一般来源于经验,一般选取一个较小大于1奇数,一般在 (1, n \sqrt {n} n )之间

1.n较小时,n取 ( 1 , 10 ) (1,10) (1,10)中的奇数;
2.n较大时,n取( 1 , n / 2 ) (1,\sqrt n/2) (1, n /2)中的奇数;
k值过小或过大的对预测结果的影响:

K值偏小

k取值偏小时,预测结果对近邻点的周围的实例及其敏感,容易受到噪声点的干扰,导致过拟合。

不妨取k的一个极小值来分析,比如 k = 1,那么绿色三角形原本属于红色方块的类别,但却由于一个最邻近的噪声点呗误判为蓝色方块类型。
在这里插入图片描述

k取值偏大

k取值偏大时,相当于用较大邻域中的训练实例进行预测,其优点是可以减少学习的估计误差,但会导致欠拟合,因为离测试点很远的实例也会影响到预测结果,这就违背了KNN算法的基本思想 ——用邻居数据点的去决策出未知点的类别。
如下图,由于值取值太大,所以即使离三角形很远的点也被纳入的考虑范围,所以导致预测结果失真。
在这里插入图片描述

1.6 样本点距离的计算方法

1.6.1 闵科夫斯基距离

L p = ( ∑ i = 1 n ∣ x i − y i ∣ p ) 1 p L_{p}=(\sum_{i=1}^{n}|x_{i}-y_{i}|^{p})^{\frac{1}{p}} Lp=(i=1nxiyip)p1

  当p=1时就是曼哈顿距离;当p=2时就是欧几里德距离;当p趋近于无穷大时就是切比雪夫距离;

1.6.2曼哈顿距离

L 1 = ( ∑ i = 1 n ∣ x i − y i ∣ ) L_{1}=(\sum_{i=1}^{n}|x_{i}-y_{i}|) L1=(

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值