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

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

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

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. 交互神器 Facebook Origami

    最近用到了一个非常强大的工具,这是一款由 facebook 出品的原型设计软件,老规矩我们先来看一下效果.大家也可以先进去官网看看效果Origami 官网 scroll.gif swipe.gif O ...

  2. ACM 比大小

    比大小 时间限制:3000 ms  |  内存限制:65535 KB 难度:2   描述 给你两个很大的数,你能不能判断出他们两个数的大小呢? 比如123456789123456789要大于-1234 ...

  3. Mac上关于shell使用Python3和C++11声明

    1.使用Python3 Mac上的shell上自带的Python版本是2.7,当需要使用Python3时,下载安装好Python时,在shell上敲入Python发现却还是显示Python2.7,这是 ...

  4. WeMall微信商城源码插件会员卡代码详情

    WeMall微信商城源码插件会员卡代码是用于商业推广的比较有效的方式,分享了部分比较重要的代码,供技术员学习参考 Index_index.html <html> <head> ...

  5. Go语言并发机制初探

    Go 语言相比Java等一个很大的优势就是可以方便地编写并发程序.Go 语言内置了 goroutine 机制,使用goroutine可以快速地开发并发程序, 更好的利用多核处理器资源.这篇文章学习 g ...

  6. Spring Data JPA,一种动态条件查询的写法

    我们在使用SpringData JPA框架时,进行条件查询,如果是固定条件的查询,我们可以使用符合框架规则的自定义方法以及@Query注解实现. 如果是查询条件是动态的,框架也提供了查询接口. Jpa ...

  7. python+request接口自动化框架

    python+request接口自动化框架搭建 1.数据准备2.用python获取Excel文件中测试用例数据3.通过requests测试接口4.根据接口返回的code值和Excel对比 但本章只讲整 ...

  8. DLL:无法解析的外部符号 "__declspec(dllimport)

    (4.10)碰到问题:MFC规则DLL(静态库1)中,AFX_EXT_CLASS导出类及类的对象.在静态库2中使用.出现两个问题:  (1) 静态库1中警告:dll链接不一致;  (2) 静态库2中报 ...

  9. 实验楼-3-Linux用户及用户组

    获得自己用户名 $ who am i $ whoami pts/0 : 伪终端/序号 root操作:sudo Firstly,知道当前登录用户的密码:Secondly,当前用户在sudo用户组 添加新 ...

  10. PHP GD库生成图片自动换行函数,自动分页函数

    /* 文字自动换行     * @param $card 画板     * @param $pos 数组,top距离画板顶端的距离,fontsize文字的大小,width宽度,left距离左边的距离, ...