新手,有问题的地方请大家指教

训练集的数据有属性和标签

同类即同标签的数据在属性值方面一定具有某种相似的地方,用距离来描述这种相似的程度

k=1或则较小值的话,分类对于特殊数据或者是噪点就会异常敏感,容易将测试的数据分成和特殊数据一类或者分成和错误数据一类

k值很大的话,对于在训练集中占比很大的数据对这个未知数据的分类贡献会比一般数据大,存在以全概篇,容易分错

《机器学习实战》书上说的是K值是不大于20的书,我也听老师说K要取奇数,我想的话,是防止两个类别在位置数据的邻域内的占比相等,无法正确分类,所以要取奇数

看过某位大牛的博客,kNN(K-临近算法)取K个里面的占比最大的标签的原因是根据计算错误率得出来的:

图片来源:  作者:Treant  出处:http://www.cnblogs.com/en-heng/
其中k是kNN的k,即未知数据的邻域大小k值,Cj是预测值(类别,标签),(Xi,Yi)Xi是属性值,Yi是数据标签(类别),I(judge)=1(judge成立,否则=0)
这个概率计算式表示的时候,错误率才最小

所以分类表达式

大K表示k邻域内不同标签的个数,用I(judge)函数来表示标签出现,做累计计算占比,出现最多的那个标签就是未知数据的分类标签。

kNN-临近算法,就是在未知数据的k邻域里面,找到最有可能是这个未知数据标签的标签。在k值取值合理的情况下,在距离未知数据较近的数据中,某个类别出现的次数越多,那么这个未知数据是这个类别的可能性就越高,这个假设也是建立在它的错误率表达式上面的。

《机器学习实战》书上用字典来计算标签次数的,将标签记为key,dict.get(key,0)+1当dict[key]没有的时候,默认返回0+1,出现一次,将key加入dict并且赋值,否则的话就直接+1,增加一次出现的次数。书上对距离的大小是点算的,将标签值看成是多维坐标上的点,计算点的距离作为数据间属性的相似度

计算邻域距离的方式有很多,没有具体看

初学,大家一起讨论

kNN算法个人理解的更多相关文章

  1. KNN算法的理解

    一.算法 1.kNN算法又称为k近邻分类(k-nearest neighbor classification)算法. 最简单平庸的分类器或许是那种死记硬背式的分类器,记住全部的训练数据.对于新的数据则 ...

  2. 菜鸟之路——机器学习之KNN算法个人理解及Python实现

    KNN(K Nearest Neighbor) 还是先记几个关键公式 距离:一般用Euclidean distance   E(x,y)√∑(xi-yi)2 .名字这么高大上,就是初中学的两点间的距离 ...

  3. KNN算法理解

    一.算法概述 1.kNN算法又称为k近邻分类(k-nearest neighbor classification)算法. 最简单平庸的分类器或许是那种死记硬背式的分类器,记住全部的训练数据,对于新的数 ...

  4. 理解KNN算法中的k值-knn算法中的k到底指的是什么 ?

    2019-11-09 20:11:26为方便自己收藏学习,转载博文from:https://blog.csdn.net/llhwx/article/details/102652798 knn算法是指对 ...

  5. 【Machine Learning】KNN算法虹膜图片识别

    K-近邻算法虹膜图片识别实战 作者:白宁超 2017年1月3日18:26:33 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...

  6. 机器学习笔记--KNN算法1

    前言 Hello ,everyone. 我是小花.大四毕业,留在学校有点事情,就在这里和大家吹吹我们的狐朋狗友算法---KNN算法,为什么叫狐朋狗友算法呢,在这里我先卖个关子,且听我慢慢道来. 一 K ...

  7. KNN算法的补充

    文本自动分类技术是文字管理的基础.通过快速.准确的文本自动分类,可以节省大量的人力财力:提高工作效率:让用户快速获得所需资源,改善用户体验.本文着重对KNN文本分类算法进行介绍并提出改进方法. 一.相 ...

  8. KNN算法--物以类聚,人以群分

    KNN(K Nearest Neighbors,K近邻 )算法是机器学习所有算法中理论最简单,最好理解的.KNN是一种基于实例的学习,通过计算新数据与训练数据特征值之间的距离,然后选取K(K>= ...

  9. KNN算法介绍

    KNN算法全名为k-Nearest Neighbor,就是K最近邻的意思. 算法描述 KNN是一种分类算法,其基本思想是采用测量不同特征值之间的距离方法进行分类. 算法过程如下: 1.准备样本数据集( ...

随机推荐

  1. Jmeter+Badboy实战经验二(使用jmeter)

    1. 新建线程组: TestPlan--添加--Threads(Users)--线程组

  2. HTML确认密码

    html确认密码   今天准备分享一个小知识点,就是确认登录界面 <body ><form>输入户名: <input type="text" name ...

  3. KoaHub平台基于Node.js开发的Koa的skip插件代码详情

    koahub-skip koahub skip middleware koahub skip Conditionally skip a middleware when a condition is m ...

  4. 算法模板——splay区间反转 1

    实现的功能:将序列区间反转,并维护 详见BZOJ3223 var i,j,k,l,m,n,head,a1,a2:longint; s1:ansistring; a,b,c,d,fat,lef,rig: ...

  5. 1624: [Usaco2008 Open] Clear And Present Danger 寻宝之路

    1624: [Usaco2008 Open] Clear And Present Danger 寻宝之路 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 3 ...

  6. iOS性能之HTTP2.0

    在移动互联网领域蓬勃发展的今天,APP的性能也成为各大公司重点关注的方向,该系列文章主要针对iOS的性能的几个方面做一些研究. 什么是HTTP2.0? 网上很容易搜到关于HTTP2.0的概念的文章,这 ...

  7. java爬虫查找四川大学所有学院的网站的网址中的通知和新闻——以计算机学院为例

    需求:查找四川大学所有学院的网站的网址中的通知和新闻——以计算机学院为例 流程图 3. 具体步骤 (1) 学院的主页为:http://cs.scu.edu.cn/ 获取该页面的所有内容(本文只获取新闻 ...

  8. WF学习思维导图

    原文 来自我的有道笔记-老文重发系列 如果配置加载核心服务,那么需要将持久化服务和跟踪服务放在一个数据库中!   1.用工作流的优点 a.提供将复杂任务分解的途径,通过将每个操作分解到活动中更便于业务 ...

  9. JavaSE之认识java

    本来很早之前就应该总结自己在JavaSE中系统学到的知识了,马上就要出去工作了,想想自己还是非常菜的菜鸟,自己就夜不能寐呀.现在从zero基础开始带大家一起回顾学习的基础知识. 现在已经是凌晨了,但是 ...

  10. Python模块发布

    项目根目录添加setup.py模块: from distutils.core import setup setup( name="模块名字", version="1.0. ...