机器学习算法-K-NN的学习 /ML 算法 (K-NEAREST NEIGHBORS ALGORITHM TUTORIAL)
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)的更多相关文章
- 【机器学习笔记之一】深入浅出学习K-Means算法
摘要:在数据挖掘中,K-Means算法是一种 cluster analysis 的算法,其主要是来计算数据聚集的算法,主要通过不断地取离种子点最近均值的算法. 在数据挖掘中,K-Means算法是一种c ...
- [机器学习系列] k-近邻算法(K–nearest neighbors)
C++ with Machine Learning -K–nearest neighbors 我本想写C++与人工智能,但是转念一想,人工智能范围太大了,我根本介绍不完也没能力介绍完,所以还是取了他的 ...
- 机器学习算法总结(三)——集成学习(Adaboost、RandomForest)
1.集成学习概述 集成学习算法可以说是现在最火爆的机器学习算法,参加过Kaggle比赛的同学应该都领略过集成算法的强大.集成算法本身不是一个单独的机器学习算法,而是通过将基于其他的机器学习算法构建多个 ...
- 机器学习实战(Machine Learning in Action)学习笔记————06.k-均值聚类算法(kMeans)学习笔记
机器学习实战(Machine Learning in Action)学习笔记————06.k-均值聚类算法(kMeans)学习笔记 关键字:k-均值.kMeans.聚类.非监督学习作者:米仓山下时间: ...
- 机器学习--K近邻 (KNN)算法的原理及优缺点
一.KNN算法原理 K近邻法(k-nearst neighbors,KNN)是一种很基本的机器学习方法. 它的基本思想是: 在训练集中数据和标签已知的情况下,输入测试数据,将测试数据的特征与训练集中对 ...
- 机器学习实战python3 K近邻(KNN)算法实现
台大机器技法跟基石都看完了,但是没有编程一直,现在打算结合周志华的<机器学习>,撸一遍机器学习实战, 原书是python2 的,但是本人感觉python3更好用一些,所以打算用python ...
- 吴裕雄 python 机器学习——集成学习AdaBoost算法回归模型
import numpy as np import matplotlib.pyplot as plt from sklearn import datasets,ensemble from sklear ...
- 吴裕雄 python 机器学习——集成学习AdaBoost算法分类模型
import numpy as np import matplotlib.pyplot as plt from sklearn import datasets,ensemble from sklear ...
- 机器学习之二:K-近邻(KNN)算法
一.概述 K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一.该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中 ...
随机推荐
- jquery 使用off移除事件 使用one绑定一次事件,on绑定事件后触发多次相同的事件的异常
<!-- jquery 移除事件,绑定一次事件,搜狗 one --> <!DOCTYPE html> <html lang="en"> < ...
- shell 编程整合
1.shell 浮点数运算与比较 https://www.cnblogs.com/shixun/p/6179642.html 将字符串比较的 = 改为数值比较的 -eq 更有效 2.linux she ...
- mybatis-传多个参数
第一种方案:下标传参 DAO层的函数方法 Public User selectUser(String name, String area); 对应的Mapper.xml <select id=& ...
- sql server join ,inner join ,left join ,right join 的使用
测试数据脚本 CREATE TABLE Atable ( S# INT, Sname nvarchar(32), Sage INT, Sfrom nvarchar(8) ) insert into A ...
- 四十一.redis主从复制 RDB/AOF持久化 数据类型
把redis集群里的主机 恢复为独立的redis服务器(51-58) ]# redis-cli -h 192.168.4.51 -p 6351 shutdown ]# rm -rf /var/lib ...
- 三十四.MySQL主从同步 、主从同步模式
mysql51:192.168.4.51 主 mysql52:192.168.4.52 从 mysql50:192.168.4.50 客户机 1.MySQL一主一从 1.1 51,52 安装m ...
- AtCoder Beginner Contest 133
目录 Contest Info Solutions A. T or T B.Good Distance C. Remainder Minimization 2019 D. Rain Flows int ...
- 递归回溯生成和解决数独问题c/c++
数独 程序地址https://github.com/papicheng/blog/tree/master/%E6%95%B0%E7%8B%AC 一.游戏规则介绍: 数独是源自18世纪瑞士的一种数学游戏 ...
- 分布式的一致性(分布式事物)-------2PC详述
英文名:Two Phase Commit(2PC) 算法目的:实现分布式事物 算法概述: 有两类节点: -----协调者 -----事务参与者 流程阶段: -----请求阶段 -----提交阶段 算法 ...
- HDU 4609 3-idiots ——(FFT)
这是我接触的第一个关于FFT的题目,留个模板. 这题的题解见:http://www.cnblogs.com/kuangbin/archive/2013/07/24/3210565.html. FFT的 ...