K-邻近算法及距离计算公式

机器学习算法

K-邻近算法

就是通过你的“邻居”来判断你属于哪一个类别

实现过程

  1. 实例化一个估计器
  2. 使用fit进行训练

计算距离常用方法

  1. 欧氏距离

    1. 二维平面上点a(x1,y1)与b(x2,y2)间的欧式距离

      d12= ( x 1 − x 2 ) 2 + ( y 1 − y 2 ) 2 \sqrt{(x_1-x_2)^2+(y_1-y_2)^2} (x1x2)2+(y1y2)2
      三维空间点 a ( x 1 , y 1 , z 1 ) 与 b ( x 2 , y 2 , z 2 ) a(x_1,y_1,z_1)与b(x_2,y_2,z_2) a(x1,y1,z1)b(x2,y2,z2)间的距离
      d12 = ( x 1 − x 2 ) 2 + ( y 1 − y 2 ) 2 + ( z 1 − z 2 ) 2 \sqrt{(x_1-x_2)^2+(y_1-y_2)^2+(z_1-z_2)^2} (x1x2)2+(y1y2)2+(z1z2)2
      n维空间a(x11,x12,…x1n)与b(x21x22,…x2n)间的欧式距离
      d 12 = ∑ k = 1 n ( x 1 k − x 2 k ) 2 d_{12}= \sqrt{\sum_{k = 1}^n(x_{1k}-x_{2k})^2} d12=k=1n(x1kx2k)2

    2. 曼哈顿距离
      二维空间平面两点 a ( x 1 , y 1 ) 与 b ( x 2 , y 2 ) a(x_1,y_1)与b(x_2,y_2) a(x1,y1)b(x2,y2)间的曼哈顿距离
      d 12 = ∣ x 1 − x 2 ∣ + ∣ y 1 − y 2 ∣ d_{12} = |x_1 - x_2| + |y_1- y_2| d12=x1x2+y1y2
      n维空间点 a ( x 11 , x 12 , . . . x 1 n ) 与 b ( x 21 , x 22 , . . . x 2 n ) a(x_{11},x_{12},...x_{1n})与b(x_{21},x_{22},...x_{2n}) a(x11,x12,...x1n)b(x21,x22,...x2n)的曼哈顿距离
      d 12 = ∑ k = 1 n ∣ x 1 k − x 2 k ∣ d_{12} =\sum_{k = 1}^n|x_{1k}-x_{2k}| d12=k=1nx1kx2k

    3. 切比雪夫距离
      二维平面两点 a ( x 1 , y 1 ) 与 b ( x 2 , y 2 ) a(x_1,y_1)与b(x_2,y_2) a(x1,y1)b(x2,y2)间的切比雪夫距离
      d 12 = m a x ( ∣ x 1 − x 2 ∣ , ∣ y 1 − y 2 ∣ ) d_{12} =max(|x_1-x_2|,|y_1-y_2|) d12=max(x1x2,y1y2)
      n维空间点 a ( x 11 , x 12 , . . . x 1 n ) 与 b ( x 21 , x 22 , . . . x 2 n ) a(x_{11},x_{12},...x_{1n})与b(x_{21},x_{22},...x_{2n}) a(x11,x12,...x1n)b(x21,x22,...x2n)的切比雪夫距离
      d 12 = m a x ( ∣ x 1 i − x 2 i ∣ ) d_{12} =max(|x_{1i}-x_{2i}|) d12=max(x1ix2i)

    4. 闵可夫斯距离
      闵氏距离不是一种距离,是对多个距离度量公式的概括表达
      两个n维变量 a ( x 11 , x 12 , . . . x 1 n ) 与 b ( x 21 , x 22 , . . . x 2 n ) a(x_{11},x_{12},...x_{1n})与b(x_{21},x_{22},...x_{2n}) a(x11,x12,...x1n)b(x21,x22,...x2n)间的闵氏距离为
      d 12 = p ∑ k = 1 n ∣ x 1 k − x 2 k ∣ p d_{12} =p\sqrt{\sum_{k=1}^n|x_{1k}-x_{2k}|^p} d12=pk=1nx1kx2kp
      其中p是一个变参数
      当p=1时,就是曼哈顿距离。
      当p=2时,就是欧式距离。
      当p= ∞ \infty 时,就是切比雪夫距离
      根据p的不同,闵氏距离可以表示某一类距离

    5. 标准欧式距离
      假设样本集X的均值为m,标准差为s,x的标准化表示为
      x ∗ = x − m s x^* =\frac{x-m}s x=sxm
      标准化欧式距离公式
      d 12 = ∑ k = 1 n ( x 1 k − x 2 k s k ) d_{12} =\sqrt{\sum_{k=1}^n(\frac{x_{1k}-x_{2k}}{s_k})} d12=k=1n(skx1kx2k)

    6. 余弦距离
      二维空间中向量 A ( x 1 , y 1 ) 与 向 量 B ( x 2 , y 2 ) A(x_1,y_1)与向量B(x_2,y_2) A(x1,y1)B(x2,y2)的夹角余弦公式:
      余弦距离
      c o s θ = x 1 x 2 + y 1 y 2 x 1 2 + y 1 2 x 2 2 + y 2 2 cos\theta =\frac{x_1x_2+y_1y_2}{\sqrt{x_1^2+y_1^2}\sqrt{x_2^2+y_2^2}} cosθ=x12+y12 x22+y22 x1x2+y1y2
      两个n维样本点a(x11,x12,…,x1n)和b(x21,x22,…,x2n)的夹角余弦为:
      余弦距离
      即:
      c o s θ = a ⋅ b ∣ a ∣ ∣ b ∣ cos\theta =\frac{a\cdot b}{|a| |b|} cosθ=abab
      余弦距离

    7. 汉明距离
      两个长度相等的字符串 s 1 与 s 2 s_1与s_2 s1s2的汉明距离为将其中一个变为另外一个所需要做的最小的字符串替换的次数。
      汉明距离即使一个字符串到另一个字符串需要变换几个字母,进行统计

    8. 杰卡德距离
      通过并集进行统计

    9. 马氏距离
      通过分布进行计算

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值