目录

  • 算法介绍
  • k近邻算法
  • python代码
    • k近邻算法
    • 归一化特征值
  • k近邻算法优缺点

算法介绍

k近邻法(k-nearest neighbors)是由Cover和Hart于1968年提出的,它是懒惰学习(lazy learning)的著名代表。

k近邻算法简单、直观:给定一个训练数据集(其中的实例类别已定),对新的输入实例,在训练数据集中找到与该实例最接近的k个实例,这k个实例的多数属于某个类,就把该输入实例分为这个类。

举个栗子

1.给定了红色和蓝色的训练样本,绿色为测试样本
2.计算绿色点到其他点的距离
3.选取离绿点最近的k个点
4.选取k个点中,同种颜色最多的类。
例如:k=1时,k个点全是蓝色,那预测结果就是Class 1;
k=3时,k个点中两个红色一个蓝色,那预测结果就是Class 2

要素1:k值的选取

  1. k值过小,模型复杂,易过拟合

    如果k太小,如1,则模型太复杂,容易学习到噪声,非常容易判定为噪声类别。换个简单的说法,当k=1时,如果离测试点距离最近的是一个噪声值(无用数据),那么判断就会出错。

过拟合:在训练集上准确率非常高,而在测试集上准确率低。即:平时学习很好,考试很差;比如平时做的都是线性代数,但却是去考概率论。

  1. k值过大,模型简单,易预测错误
    可以想象,如果K的值大到全部的训练集,那么判断就会变成一个简单的比谁的个数多,如果A种类的个数最多,那么毫无疑问的无论放的测试点是B,还是C,都会被判定为A

  2. k值既不能过大,又不能过小,那么如何选取k值
    解决办法:交叉验证

交叉验证:将原始数据进行分组,一部分做为训练集另一部分做为验证集,首先用训练集对分类器进行训练,在利用验证集来测试训练得到的模型(model),以此来做为评价分类器的性能指标.

举个栗子

我们把样本分成十等分,第一次取第十份为测试集,前九份为训练集;第二次取第九份为测试集,其余为训练集…然后k取1,2,3…测出最合适的k值

要素2:距离度量

  1. Lp距离

  2. p=1时,曼哈顿距离

  3. p=2时,欧氏距离

  4. p=∞时,为各维度距离中的最大值

归一化特征值的必要性

要素3:分类决策规则

多采用表决,也可基于距离远近进行加权投票

多数表决规则等价于经验风险最小化。
常用误分类率评价KNN性能,要使误分类率最小,即经验风险最小,需使得正确分类率最大,即多数表决:

误分类率:

k近邻算法

k近邻法的分类算法描述步骤:

(1)输入:训练数据集为实例的特征向量T={((												

机器学习——k近邻算法相关推荐

  1. 机器学习——K近邻算法(KNN)(K Nearest Neighbor)

    参考视频与文献: python与人工智能-KNN算法实现_哔哩哔哩_bilibili 机器学习--K近邻算法(KNN)及其python实现_清泉_流响的博客-CSDN博客_python实现knn 机器 ...

  2. [机器学习]K近邻算法及其应用--WEKA工具

    K近邻算法理论基础 k近邻模型 距离度量 k值的选择 分类决策规则 WEKA实战 问题背景 数据预处理 得到分类器 对未知的数据进行分类预测 K近邻算法理论基础 (本节内容参考了:李航<统计学习 ...

  3. python机器学习 | K近邻算法学习(1)

    K近邻算法学习 1 K近邻算法介绍 1.1算法定义 1.2算法原理 1.3算法讨论 1.3.1 K值选择 1.3.2距离计算 1.3.3 KD树 2 K近邻算法实现 2.1scikit-learn工具 ...

  4. 2 机器学习 K近邻算法(KNN) 学习曲线 交叉验证 手写数字识别

    机器学习 1 K-近邻算法介绍 1.1 分类问题 分类问题:根据已知样本的某些特征,判断一个未知样本属于哪种样本类别. 与回归问题相比,分类问题的输出结果是离散值,用于指定输入的样本数据属于哪个类别. ...

  5. 机器学习[k近邻算法]

    k近邻算法简称kNN算法,由Thomas等人在1967年提出[1].它基于以下思想:要确定一个样本的类别,可以计算它与所有训练样本的距离,然后找出和该样本最接近的k个样本,统计这些样本的类别进行投票, ...

  6. 【机器学习-K近邻算法】

    K-近邻算法 K-近邻算法的快速入门 K-近邻(KNN)算法概念 殴式距离公式 电影分类案例 K-近邻算法API Scikit-learn工具 Scikit-learn包含内容 K-近邻算法API方法 ...

  7. 机器学习--K近邻算法(KNN)(2)

    一.简介 K-Nearest-Neighbor 算法是一种常用的监督学习算法,它没有显式的训练过程,是'懒惰学习'的显著代表,此类学习算法仅在训练阶段将训练集保存起来,训练时间开销为0,待收到测试样本 ...

  8. 机器学习——K近邻算法(KNN)及其python实现

    参考视频与文献: https://www.bilibili.com/video/BV1HX4y137TN/?spm_id_from=333.788&vd_source=77c874a500ef ...

  9. 机器学习——K近邻算法及乳腺癌检测分类

    一.引言 KNN可用于分类和回归,用于分类时是多分类方法. 注意:由于此方法根据预测点近邻的各类点的个数多少来确定该预测点的类别,因此原始类别数据不均衡,将严重影响最终分类效果. 二.KNN分类思想 ...

  10. 【机器学习入门】(1) K近邻算法:原理、实例应用(红酒分类预测)附python完整代码及数据集

    各位同学好,今天我向大家介绍一下python机器学习中的K近邻算法.内容有:K近邻算法的原理解析:实战案例--红酒分类预测.红酒数据集.完整代码在文章最下面. 案例简介:有178个红酒样本,每一款红酒 ...

最新文章

  1. 服务器内存条位置,服务器内存条
  2. 网络营销专员浅析在当下移动互联网中实施网络营销的基本特点
  3. poj1195 Mobile phones 二维线段树入门
  4. Oracle里面的用户user无法登录 LOCKED(TIMED)
  5. java 平台级模块系统_Java平台模块系统公众审查未能通过
  6. LeetCode 1380. 矩阵中的幸运数(set)
  7. HDFS 上传文件的不平衡,Balancer问题是过慢
  8. linux go 连接oracle,Ubuntu14下golang连接oracle11g (OCI12.1方式)
  9. javar -jar 和 java -cp :命令行运行java代码
  10. 华为ENSP安装教程
  11. MIPS处理器 CPU控制信号
  12. Intel SGX开发者参考书(三)—— 使用Intel SGX SDK工具(一)
  13. 简单说明经济是什么~
  14. 22届春季校招实习试水之路2(前端)
  15. 纪念Dropbox君
  16. 图的建立——邻接矩阵
  17. 【Verilog】FPGA驱动WS2812B点阵
  18. 关于pom.xml一直提示Could not transfer artifact(无法搬运)+无法解析maven依赖(更新)的问题,我在学习springboot的过程中遇到的一些问题(持续更新中)
  19. SpringBoot项目云端部署
  20. Jquery ajax, Axios, Fetch区别之我见 Axios中文说明

热门文章

  1. Wowza服务器系列(1):介绍
  2. matlab freqz用法ba,【matlab】freqz函数的使用(一)
  3. 无线怎么测试软件,WiFi分析仪软件
  4. 14-Shiro-单点登录原理
  5. RTMP协议 和 HLS 协议
  6. 初级web前端面试题
  7. K3 CLOUD API接口说明书V2.0
  8. 官方AWZ爱伪装 一键新机 全息备份 虚拟定位 非NZT 暗王者 IG V8 V3 IOSAPP一键新机 全息备份
  9. 安卓版AWZ爱伪装一键新机说明
  10. 计算机硬盘磁道损坏有什么症状,硬盘0磁道(0磁道)损坏的维修方法