1为什么我们需要KNN

现在为止,我们都知道机器学习模型可以做出预测通过学习以往可以获得的数据.

因为KNN基于特征相似性,所以我们可以使用KNN分类器做分类.

2KNN是什么?

KNN K-近邻,是一种简单的机器学习算法,目前被广泛使用分类.KNN做分类基于基于与 将要分类的点 的邻居的类别.

KNN 存储所有可以获得的例子,并基于相似性的度量做出分类 (也就是说和仓库里的特征进行对比,谁相近 就判为哪一类.)
k在KNN中是一个参数,指的是在多数表决过程中要包括的最近的邻居的数量(这里的意思就是找的所要判别的最近邻居的数量,比如K=5,就么就找5个最近的邻居,这5个中那一个标签占多数,则可以判别出书属于哪一个标签)
(k in KNN is a parameter that refer to the number of nearest neighbors to include in the majority voting process)

3我们怎样选择K 参数?

KNN算法基于特征相似性:选择一个正确的K值是一个参数调优的过程,这对于获得一个更好的精度是非常重要的.
(KNN Algorithm is based on feature similarity:choosing the right value of k is a process called parameter tuning, and is important for better accuracy)
对于不同的K值,最终分类的结果可能是不同的,见下图的情况.当选择K=3时,新样本被判别为方框,但是当选择K=7时新样本被判别为三角形

所以我们应该怎样选择一个好的K值呢?一般有下面两个注意点

(1) 对所有数据点数目开平方得到的数作为K值。这里需要注意对谁开平方,我目前理解的是对训练的数据集数量开平方。

(2) 选择K的奇数值是为了避免两类数据之间的混淆。例如在本教程视频中附带的一个例子,对训练数据集开平方得12,409 ,但是作者为了取奇数,用12-1=11把11作为K值。

见下图:

4我们什么时候使用KNN

we can use knn when {date is labled;data is noise free ;data is small}
对于数据集小的解释是:because KNN is a lazy learner ,so doesn't learn a discriminative function from the traing set (因为KNN是一个懒惰的学习者,所以不会从训练集中学习判别函数.对于小的数据集,KNN 是非常好的
)

让我们通过计算来更清晰的理解欧式距离

5KNN是怎样工作的 ?

(1) 考虑一个数据集有两个变量:高度(cm)和重量(kg)并且数据集的每一个数据点被分类为正常和重量低的,基于给出的数据集,我们需要来分类一个数据点。怎样找到这个数据段最近的邻居呢? 考虑用欧式距离,那么什么是欧式距离呢?公式如下:



(2)然后,我们计算需要分类的 未知数据点的所有欧式距离显示在下表中。

(3)现在让我们以K=3 来计算出三个最近邻,因为这三个最近邻指示的标签都为Normal,所以待判别的数据点对应的类也是Normal

6 回顾KNN算法(recap the KNN)

KNN算法的回顾一共有4个点,分别为:
(1)指定一个正整数k和一个新样本。
(2)我们在数据库中选择最接近新样本的K个条目
(3)我们发现这些条目最常见的分类
(4)这是我们给新样品的分类
——————————分割线——————————
该视频的后面还讲述了一个使用KNN 算法进行预测糖尿病的实例,收录在我的博客中,如有兴趣,请到分类Python&Python_case查询。

机器学习算法-K-NN的学习 /ML 算法 (K-NEAREST NEIGHBORS ALGORITHM TUTORIAL)的更多相关文章

  1. 【机器学习笔记之一】深入浅出学习K-Means算法

    摘要:在数据挖掘中,K-Means算法是一种 cluster analysis 的算法,其主要是来计算数据聚集的算法,主要通过不断地取离种子点最近均值的算法. 在数据挖掘中,K-Means算法是一种c ...

  2. [机器学习系列] k-近邻算法(K–nearest neighbors)

    C++ with Machine Learning -K–nearest neighbors 我本想写C++与人工智能,但是转念一想,人工智能范围太大了,我根本介绍不完也没能力介绍完,所以还是取了他的 ...

  3. 机器学习算法总结(三)——集成学习(Adaboost、RandomForest)

    1.集成学习概述 集成学习算法可以说是现在最火爆的机器学习算法,参加过Kaggle比赛的同学应该都领略过集成算法的强大.集成算法本身不是一个单独的机器学习算法,而是通过将基于其他的机器学习算法构建多个 ...

  4. 机器学习实战(Machine Learning in Action)学习笔记————06.k-均值聚类算法(kMeans)学习笔记

    机器学习实战(Machine Learning in Action)学习笔记————06.k-均值聚类算法(kMeans)学习笔记 关键字:k-均值.kMeans.聚类.非监督学习作者:米仓山下时间: ...

  5. 机器学习--K近邻 (KNN)算法的原理及优缺点

    一.KNN算法原理 K近邻法(k-nearst neighbors,KNN)是一种很基本的机器学习方法. 它的基本思想是: 在训练集中数据和标签已知的情况下,输入测试数据,将测试数据的特征与训练集中对 ...

  6. 机器学习实战python3 K近邻(KNN)算法实现

    台大机器技法跟基石都看完了,但是没有编程一直,现在打算结合周志华的<机器学习>,撸一遍机器学习实战, 原书是python2 的,但是本人感觉python3更好用一些,所以打算用python ...

  7. 吴裕雄 python 机器学习——集成学习AdaBoost算法回归模型

    import numpy as np import matplotlib.pyplot as plt from sklearn import datasets,ensemble from sklear ...

  8. 吴裕雄 python 机器学习——集成学习AdaBoost算法分类模型

    import numpy as np import matplotlib.pyplot as plt from sklearn import datasets,ensemble from sklear ...

  9. 机器学习之二:K-近邻(KNN)算法

    一.概述 K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一.该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中 ...

随机推荐

  1. element案例大杂烩

    修改表头字体粗细? <el-table :data="list" header-row-class-name="tableHead"> 自定义即可 ...

  2. MutationObserverAPI--微任务

    1. 作用 MutationObserverAPI可以看作一个监听DOM所有变化(包含节点.属性.文本内容的变动)的接口. 和EventTargetAPI的addEventListener相比: 共同 ...

  3. 测试使用API

    https://api.github.com/users/github 返回值中的某些URL也可以作为测试API使用

  4. MongoDB之安装部署

    一.安装MongoDB 在安装MongoDB之前,应该先把MongoDB官方网站上下载下来,下载的地址如下: https://www.mongodb.com/download-center 下载完毕之 ...

  5. docker笔记--如何批量删掉已经停止的容器

    (以下操作都是在root用户) 方法如下: (1)显示所有容器,过滤出状态为Exited的容器id,然后删除. #  for i in `docker ps -a |grep Exited |awk ...

  6. checkbox后台传个list显示和回显的页面代码C标签

        <c:forEach items="${listtest}" var="provinces">        <input type= ...

  7. 深度解读Facebook刚开源的beringei时序数据库——数据压缩delta of delta+充分利用内存以提高性能

    转自:https://yq.aliyun.com/topic/58?spm=5176.100239.blogcont69354.9.MLtp4T 摘要: Facebook最近开源了beringei时序 ...

  8. thymeleaf 与shiro 整合错误

    错误 @Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { // ...

  9. 阿里云服务器配置https(总结)

    阿里云服务器配置https(总结) 一.总结 一句话总结: 1.下载https证书(可以在阿里云上) 2.在服务器上面开启443端口 3.配置apache服务器,443的加ssl,让80的重定向到44 ...

  10. js回车键事件

    js回车键事件 一.总结 一句话总结: $("#focus").keypress(function(event){if(event.which === 13) { /*点击回车要执 ...