K近邻算法理论学习

定义:判断一个样本在特征空间中的k个最相似(在特征空间中最邻近)的样本中大多数类别属于哪一个类别,则该样本也属于这个类别。

算法流程:

  • 计算已知类别数据集中的点与当前点之间的举例
  • 按距离递增次序排序
  • 选取与当前点距离最小的k个点
  • 统计前k个点所在的类别出现的频率

图解:

说明:橙色圆形是一类,红色正方形是一类,判断绿色三角形是那一个类别

knn算法的判断:通过寻找绿色三角形最近的k个目标,统计k个目标中出现概率最高的类别来决定绿色三角形的类别

在这里插入图片描述

距离公式

欧氏距离

二维平面中两个样本之间的距离计算:
d = ( x 1 − x 2 ) 2 + ( y 1 − y 2 ) 2 d=\sqrt{(x_{1}-x_{2})^{2} +(y_{1}-y_{2})^{2}} d=(x1x2)2+(y1y2)2
三维空间中两个样本之间的距离计算:
d = ( x 1 − x 2 ) 2 + ( y 1 − y 2 ) 2 + ( z 1 − z 2 ) 2 d=\sqrt{(x_{1}-x_{2})^{2} +(y_{1}-y_{2})^{2}+(z_{1}-z_{2})^{2}} d=(x1x2)2+(y1y2)2+(z1z2)2
n维空间中两个样本之间的距离计算:
d = ∑ k = 1 n ( x 1 k − x 2 k ) 2 d=\sqrt{\sum_{k=1}^{n}(x_{1k}-x_{2k})^{2} } d=k=1n(x1kx2k)2

曼哈顿距离

二维平面两点之间的曼哈顿距离公式:
d = ∣ x 1 − x 2 ∣ + ∣ y 1 − y 2 ∣ d = |x_{1}-x_{2}|+|y_{1}-y_{2}| d=x1x2+y1y2
n维平面两点之间的曼哈顿距离公式:
d = ∑ k = 1 n ∣ x 1 k − x 2 k ∣ d =\sum_{k=1}{n}|x_{1k} - x_{2k}| d=k=1nx1kx2k

切比雪夫距离

二维平面两点之间的切比雪夫距离公式:
d = m a x ( x 1 − x 2 ∣ , ∣ y 1 − y 2 ∣ ) d = max(x_{1}-x_{2}|,|y_{1}-y_{2}|) d=max(x1x2,y1y2)
n维平面两点之间的切比雪夫距离公式:
d = m a x ( x 1 l − x 2 l ∣ ) d =max(x_{1l}-x_{2l}|) d=max(x1lx2l)

闵可夫斯基距离

可以表示某一类/组的距离(但是不考虑方差、期望等)

d = ∑ k = 1 n ∣ x 1 k − x 2 k ∣ p p d=\sqrt[p]{\sum_{k=1}^{n}|x_{1k}-x_{2k}|^{p} } d=pk=1nx1kx2kp

p是一个变量:

p=1:曼哈顿距离

p=2:欧氏距离

p->∞:切比雪夫距离

简单快速的api

下载数据集和封装好的集成库

pip install scikit-learn==1.1.2

conda install scikit-learn==1.1.2

使用方法:(knn在sklearn中封转好的使用方式)

import sklearn
sklearn.neighbors.KNeighborsClassifler(n_neighbor= )
# n_neighbor: k值

k值的选择

k值较小:

  • 容易受到异常点的影响
  • 容易发生过拟合现象
  • 估计误差增大,近似误差会减少

k值较大:

  • 容易受到样本均衡的影响
  • 容易发生欠拟合的问题
  • 近似误差增大,估计误差会减少

k值得选取注意事项

  • 取双不取单(特征样本如果是奇数,二分类会出现既不也不的情况)
  • 不能太大也不能太小
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值