机器学习算法

K-邻近算法

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

实现过程

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

计算距离常用方法

  1. 欧氏距离

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

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

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

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

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

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

    6. 余弦距离
      二维空间中向量A(x1,y1)与向量B(x2,y2)A(x_1,y_1)与向量B(x_2,y_2)A(x1​,y1​)与向量B(x2​,y2​)的夹角余弦公式:
      余弦距离
      cosθ=x1x2+y1y2x12+y12x22+y22cos\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​​x1​x2​+y1​y2​​
      两个n维样本点a(x11,x12,…,x1n)和b(x21,x22,…,x2n)的夹角余弦为:
      余弦距离
      即:
      cosθ=a⋅b∣a∣∣b∣cos\theta =\frac{a\cdot b}{|a| |b|}cosθ=∣a∣∣b∣a⋅b​
      余弦距离

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

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

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

K-邻近算法及距离计算公式相关推荐

  1. K邻近算法概述、欧式距离、Scikit-learn使用 、kNN邻近算法距离度量、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、标准化欧氏距离、余弦距离、汉明距离、杰卡德距离、马氏距离

    一.K-邻近算法概述 K邻近算(K Nearest Neighbor算法,KNN算法):如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别 ...

  2. 刻意练习:机器学习实战 -- Task01. K邻近算法

    背景 这是我们为拥有 Python 基础的同学推出的精进技能的"机器学习实战" 刻意练习活动,这也是我们本学期推出的第三次活动了. 我们准备利用8周时间,夯实机器学习常用算法,完成 ...

  3. 独家 | R语言中K邻近算法的初学者指南:从菜鸟到大神(附代码&链接)

    作者:Leihua Ye, UC Santa Barbara 翻译:陈超 校对:冯羽 本文约2300字,建议阅读10分钟 本文介绍了一种针对初学者的K临近算法在R语言中的实现方法. 本文呈现了一种在R ...

  4. 《机器学习实战》K邻近算法

    K邻近算法 存在一个样本数据集合,样本集中每个数据都存在标签,即我们知道样本集中每一数据与所属分类的对应关系.输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取样 ...

  5. 机器学习实战读书笔记--k邻近算法KNN

    k邻近算法的伪代码: 对未知类别属性的数据集中的每个点一次执行以下操作: (1)计算已知类别数据集中的点与当前点之间的距离: (2)按照距离递增次序排列 (3)选取与当前点距离最小的k个点 (4)确定 ...

  6. k邻近算法(KNN)实例

    一 k近邻算法原理 k近邻算法是一种基本分类和回归方法. 原理:K近邻算法,即是给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例,这K个实例的多数属于某个类,就把该输入实 ...

  7. k折交叉验证优缺点_R语言中K邻近算法的初学者指南:从菜鸟到大神(附代码&链接)...

    作者:Leihua Ye, UC Santa Barbara 翻译:陈超 校对:冯羽 本文约2300字,建议阅读10分钟 本文介绍了一种针对初学者的K临近算法在R语言中的实现方法. 本文呈现了一种在R ...

  8. K邻近算法(K-NN)

    简单记录学习<统计学习方法>书中的k近邻模型. k近邻法(k-nearest neighbor,k-NN)是一种基本分类与回归方法. k邻近算法 k邻近算犯法简单.直观描述:给定一个训练数 ...

  9. 机器学习3—分类算法之K邻近算法(KNN)

    K邻近算法(KNN) 一.算法思想 二.KNN类KNeighborsClassifier的使用 三.KNN分析红酒类型 3.1红酒数据集 3.2红酒数据的读取 3.3将红酒的数据集拆分为训练和测试集 ...

  10. 机器学习:k邻近算法(KNN)

    title: 机器学习:k邻近算法(KNN) date: 2019-11-16 20:20:41 mathjax: true categories: 机器学习 tags: 机器学习 什么是K邻近算法? ...

最新文章

  1. Work with Alexa :Echo匹配连接到Alexa
  2. BigData之Hive beeline:beeline的简介、使用方法之详细攻略
  3. Metropolis light transpotation
  4. readdirectorychangesw 链接错误 undeclared identifier 解决方法
  5. python print(len(pi_string))_Python如何从文件中读取数据
  6. 【推荐实践】深度学习在阿里B2B电商推荐系统中的实践
  7. myeclipse 实现框架 spring+springmvc+springsecurity+myibatis+mysql用户认证和人员增删改查
  8. java中scanner类_Java里Scanner 类
  9. 华为VRRP+VLAN+DHCP配置实例
  10. 销售方法总结思维导图模板分享
  11. 【Android Studio】Android Monitor找不到手机问题-无法显示运行程序问题解决
  12. SAP开发入门-ABAP
  13. 抓包工具哪些好,来看这里就够了.....
  14. 更改Colab的CUDA以及cudnn
  15. 【深度域适配】二、利用DANN实现MNIST和MNIST-M数据集迁移训练
  16. win10系统不能复制粘贴的解决方法
  17. while和do while的用法区别
  18. 在手机桌面隐藏App的Icon并启动该App
  19. 如何备战 CCNP 考试
  20. HFSS学习笔记——T型波导

热门文章

  1. 双活解决方案如何部署“应用”双活?
  2. 榆熙电商:带你了解一下拼多多先用后付的知识
  3. mysql 周_MySQL的跨年周统计问题
  4. 数据结构自学笔记二、栈
  5. RAC 和 Oracle Clusterware 最佳实践和初学者指南 (Solaris) (文档 ID 1526517.1)
  6. 一点点对WebResource.axd的配置及使用[原创]
  7. 自然语言处理:用paddle对人民日报语料进行分词,停用词,数据清洗和熵计算
  8. 第三章、Tiny4412 U-BOOT移植三 时钟设置【转】
  9. ms dtc 启动失败的解决办法。
  10. 北斗卫星同步时钟在分布式系统时钟同步的重要性