前面讲了线性回归和逻辑回归,这期咱们讲knn

----------------------------------------------------------寒江孤影 江湖故人 相逢何必曾相识---------------------------------------------

1:什么是knn

1.2官话:

任何样本点的特性和该的邻近点的特性类似,所以我们可以认为使用某个点的多个邻近的点的特性就可以表示当前点的特性

1.2通俗

knn也叫k最近邻,就是k个最近的邻居,每个样本都可以用它最接近的k个邻居来代表

例如,上图中,绿色圆要被决定赋予哪个类,是红色三角形还 是蓝色四方形?如果K=3,由于红色三角形所占比例为2/3,绿色圆将被赋予红色三角形那个类

如果K=5,由于蓝色四方形比例为3/5,因此绿色圆被赋予蓝色四方形类。

knn主要解决分类问题当然也可以解决回归问题

KNN分类算法:就是邻居点中类别最多的那个类别作为当前点的类别

KNN回归算法:使用所有邻近点的均值作为当前点的回归预测值

2:KD_tree

这里有主要有两种计算方式,brute就是上文讲的这种,这种方式适用在数据量小的情况下,在大量数据的时候就要做优化,使用kd_tree算法。

KD Tree是密度聚类(DBSCAN)算法中计算样本和核心对象之间距离来获取最近邻以及KNN算法中用于计算最近邻的快速、便捷构建方式。

举一个例子

二维样本: {(2,3), (5,4), (9,6), (4,7), (8,1), (7,2)}

当我们生成KD树以后,就可以去预测测试集里面的样本目标点了。对于一个目标点,我们首先在KD树里面找到包含目标点的叶子节点。以目标点为圆心,以目标点到叶子节点样本实例的距离为半径,得到一个超球体,最近邻的点一定在这个超球体内部然后返回叶子节点的父节点,检查另一个子节点包含的超矩形体是否和超球体相交,如果相交就到这个子节点寻找是否有更加近的近邻,有的话就更新最近邻。如果不相交那就简单了,我们直接返回父节点的父节点,在另一个子树继续搜索最近邻。当回溯到根节点时,算法结束,此时保存的最近邻节点就是最终的最近邻。

knn算法大致就这些,难点在KD Tree拓展上,之前两期有反馈代码提供的不太好,我会尽快修改,让代码更轻松易懂,让新手尽快入门,让老手有所提升,下期见

机器学习十大经典算法——knn相关推荐

  1. 机器学习十大经典算法之岭回归和LASSO回归

    机器学习十大经典算法之岭回归和LASSO回归(学习笔记整理:https://blog.csdn.net/weixin_43374551/article/details/83688913

  2. 机器学习十大经典算法:深入浅出聊贝叶斯决策(贝叶斯公式,最小风险贝叶斯,最小错误贝叶斯)

    前言    常听人说,在学习一个东西时,如果能够深入浅出的讲给别人听,才算是真的懂了.最近正好在学模式识别,于是就用它来练笔了.贝叶斯决策(Bayes Decision) 是十大经典机器学习算法之一, ...

  3. pagerank数据集_机器学习十大经典算法-PageRank(附实践代码)

    Yo, yo, check it out. 保证看完不晕倒... 如果公式让你脑瓜疼,请忽略公式,或者忽略脑瓜. Kagging咖金:推荐系统之关联规则(附实践代码)​zhuanlan.zhihu.c ...

  4. 机器学习十大经典算法之KNN最近邻算法

    KNN简介 KNN(K-NearestNeighbor)是机器学习入门级的分类算法,非常简单.它实现将距离近的样本点划为同一类别:KNN中的K指的是近邻个数,也就是最近的K个点 :根据它距离最近的K个 ...

  5. 机器学习十大经典算法之决策树

    机器学习经典十大算法 机器学习/人工智能的子领域在过去几年越来越受欢迎.目前大数据在科技行业已经炙手可热,而基于大量数据来进行预测或者得出建议的机器学习无疑是非常强大的.一些最常见的机器学习例子,比如 ...

  6. 机器学习十大经典算法

    本文介绍了机器学习新手需要了解的 10 大算法,包括线性回归.Logistic 回归.朴素贝叶斯.K 近邻算法等. 在机器学习中,有一种叫做「没有免费的午餐」的定理.简而言之,它指出没有任何一种算法对 ...

  7. 机器学习十大经典算法之K-近邻算法(学习笔记整理)

    一.算法概述 K-近邻算法(k-Nearest Neighbor,KNN)是机器学习算法中最简单最容易理解的算法.该算法的思路是:给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的 ...

  8. 机器学习十大经典算法之随机森林

    随机森林简介 随机森林是机器学习一种常用的方法.它是以决策树为基础,用随机的方式排列建立的,森林里每个决策树之间都是没有关联的. 在得到森林之后,当有一个新的输入样本进入的时候,就让森林中的每一棵决策 ...

  9. 机器学习十大经典算法之K-Means聚类算法

    聚类介绍 聚类在机器学习,数据挖掘,模式识别,图像分析以及生物信息等领域有广泛的应用.聚类是把相似的对象通过静态分类的方法分成不同的组别或者更多的子集(subset),这样让在同一个子集中的成员对象都 ...

  10. 机器学习十大经典算法之逻辑回归

    逻辑回归简介 逻辑回归虽然名称有回归两字,但是用来做分类算法的,大家都熟悉线性回归,一般形式是Y=aX+bY=aX+bY=aX+b,y的取值范围是[-∞, +∞].因其简单而受到工业界的关注. Y的取 ...

最新文章

  1. JBoss7官方下载最新版本
  2. Vue报错:Uncaught TypeError: Cannot assign to read only property’exports‘ of object’#Object‘的解决方法...
  3. 翻译:WebApi 认证--用户认证Oauth解析
  4. 又一个神器!只需一行代码,纯文本秒变Markdown
  5. 【转】为什么要进行傅立叶变换?傅立叶变换究竟有何意义?如何用Matlab实现快速傅立叶变换?...
  6. 普渡大学电子计算机专业,普渡大学电子工程(EE)专业介绍
  7. Redux 进阶 - react 全家桶学习笔记(二)
  8. 26个适用于VMware管理员的强大工具,收藏了!
  9. 第 7 章 Neutron - 067 - Neutron 架构
  10. keystore签名文件与platform.pk8、platform.x509.pem之间的相互转换
  11. 路由器玩机---老毛子设置AP与主路由设置
  12. Tomcat6配置参数详解
  13. 转载---美团外卖系统架构演进与稳定性的探索
  14. 03 高等数学专题——多元函数微积分
  15. HttpClient超时时间 timeout
  16. 大数据模型案例库-涵盖多行业,超百个实战项目案例
  17. 安装ubuntu 遇到的问题
  18. HTML----锚标签
  19. am335x硬件定时器使用
  20. 无法打开源文件 ctype.h和.exe 进行写入

热门文章

  1. [读码时间] 跟随鼠标移动(大图展示)
  2. Android PM suspendresume
  3. C#捕获控制台(console)关闭事件
  4. 【vue】--路由解耦 传值的方式
  5. java day62【 响应数据和结果视图 、 SpringMVC 实现文件上传 、 SpringMVC 中的异常处理 、 SpringMVC 中的拦截器 】...
  6. Luogu2543[AHOI2004]奇怪的字符串 (动态规划 LCS)
  7. # heapsort
  8. 获取汉字首字母,拼音,可实现拼音字母搜索----npm js-pinyin
  9. vue+element tree(树形控件)组件(1)
  10. python入门必备知识总结