k近邻算法之 k值的选择

举例说明:

K值过小:  【过拟合】

​ 容易受到异常点的影响   【如:美人鱼本身就是喜剧片,假如统计的时候记为动作片,则对预测值的影响太大】

k值过大:  【欠拟合】

​ 受到样本均衡的问题  【假如k=6时,再多选《二次曝光》爱情片,此时3个爱情片,3个喜剧片,结果无法判断】【假如k=7时,又再多选了《谍影重重》动作片,此时3:3:1,也无法判断】

【k值一般选择奇数;3,5,7】


【拓展】

K值选择问题,李航博士的一书「统计学习方法」上所说:

1) 选择较小的K值,就相当于用较小的领域中的训练实例进行预测,“学习”近似误差会减小,只有与输入实例较近或相似的训练实例才会对预测结果起作用,与此同时带来的问题是“学习”的估计误差会增大,换句话说,K值的减小就意味着整体模型变得复杂,容易发生过拟合;

2) 选择较大的K值,就相当于用较大领域中的训练实例进行预测,其优点是可以减少学习的估计误差,但缺点是学习的近似误差会增大。这时候,与输入实例较远(不相似的)训练实例也会对预测器作用,使预测发生错误,且K值的增大就意味着整体的模型变得简单。

3) K=N(N为训练样本个数),则完全不足取,因为此时无论输入实例是什么,都只是简单的预测它属于在训练实例中最多的类,模型过于简单,忽略了训练实例中大量有用信息。

在实际应用中,K值一般取一个比较小的数值,例如采用交叉验证法(简单来说,就是把训练数据在分成两组:训练集和验证集)来选择最优的K值。对这个简单的分类器进行泛化,用核方法把这个线性模型扩展到非线性的情况,具体方法是把低维数据集映射到高维特征空间。


近似误差:对现有训练集的训练误差,关注训练集,如果近似误差过小可能会出现过拟合的现象,对现有的训练集能有很好的预测,但是对未知的测试样本将会出现较大偏差的预测。模型本身不是最接近最佳模型。  【过拟合---在训练集上表现好,测试集上表现不好】

估计误差:可以理解为对测试集的测试误差,关注测试集,估计误差小说明对未知数据的预测能力好,模型本身最接近最佳模型。【估计误差好才是真的好】

k近邻算法之 k值的选择相关推荐

  1. kNN算法(k近邻算法,k Nearest Neighbor)

    主要内容: 1.认识kNN算法 2.kNN算法原理 3.应用举例 4.kNN改进方法 1.认识knn算法 "看一个人怎么样,看他身边的朋友什么样就知道了",kNN算法即寻找最近的K ...

  2. k近邻算法中k值得选择

    k值得选择会对k近邻的结果产生重大的影响  如果选择较小的K值,就相当于用较小的邻域中的训练实例进行预测,"学习"的近似误差会减小,只有输入实例较近的训练实例才会对预测结果起作用. ...

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

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

  4. 距离产生美?k近邻算法python实现

    https://blog.csdn.net/red_stone1/article/details/80607960 1. 什么是k近邻算法? k最近邻(k-Nearest Neighbor,kNN)分 ...

  5. 机器学习实战之K近邻算法

    k近邻算法概述 简单地说,K近邻算法采用测量不同特征值之间的距离方法进行分类. 优 点 :精度高.对异常值不敏感.无数据输入假定. 缺点:计算复杂度高.空间复杂度高. 适用数据范围:数值型和标称型. ...

  6. K近邻算法的kd树实现

    k近邻算法的介绍 k近邻算法是一种基本的分类和回归方法,这里只实现分类的k近邻算法. k近邻算法的输入为实例的特征向量,对应特征空间的点:输出为实例的类别,可以取多类. k近邻算法不具有显式的学习过程 ...

  7. 机器学习算法系列之K近邻算法

    本系列机器学习的文章打算从机器学习算法的一些理论知识.python实现该算法和调一些该算法的相应包来实现. 目录 K近邻算法 一.K近邻算法原理 k近邻算法 通俗解释 近邻距离的度量 k值的选择 KN ...

  8. knn K近邻算法python实现

    本文主要内容: knn K近邻算法原理 sklearn knn的使用,以及cross validation交叉验证 numpy 实现knn knn改进方法 1 knn K近邻算法原理 K近邻算法:给定 ...

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

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

最新文章

  1. 170个新项目,579个活跃代码仓库,Facebook开源年度回顾
  2. 普度网络营销策划_普度网络营销策划-齐宁_新浪博客
  3. pyqt5知识:如何接受密码输入?
  4. gin redis 链接不上_php + redis 高并发商品秒杀 完整业务模拟流程 实现方案
  5. knn算法python理解与预测_理解KNN算法
  6. Android官方开发文档Training系列课程中文版:与其它APP交互之允许其它APP启动你的Activity
  7. java中对时间的操作
  8. ppsspp模拟java按键_ppsspp 手柄按键映射 北通 BTP
  9. 后台返回整个html转换成页面链接,利用html5的history.replaceState修改当前页面的URL...
  10. 安装composer并创建laravel项目流程
  11. C#正则表达式用法总结
  12. 从浏览器大战看未来软件发展
  13. 测试打印机性能的软件,打印速度测试
  14. 机器学习笔记 - 什么是支持向量回归(SVR)?
  15. mysql front连接_如何成功用MySQL-Front连接MySQL?
  16. linux lefse分析,LEfSe分析,你真的懂了么
  17. 解决: 在类xxx 中找不到 main 方法, 请将 main 方法定义为: public static void main(String[]
  18. 51 单片机 PWM调速基本原理
  19. 微信小游戏《飞机打方块》源码分享
  20. [1005]pika 线程不安全

热门文章

  1. RedHat 年度报告:只索取不贡献的开源消费“大户”不受待见
  2. 一次对语音技术的彻底批判
  3. 资源 | 吴恩达《机器学习训练秘籍》中文版58章节完整开源
  4. 阿里云智能 AIoT 首席科学家丁险峰:阿里全面进军IoT这一年 | 问底中国IT技术演进...
  5. 论文推荐 | 目标检测中不平衡问题算法综述
  6. 创新工场论文入选NeurIPS 2019,研发最强“AI蒙汗药”
  7. 如何用机器学习方法进行数据建模?(文末福利)
  8. 太嚣张了!会Python的人!
  9. 科技公司狂挖高校AI学者:涸泽而渔还是产学双赢
  10. Spring Boot 第三篇:SpringBoot用JdbcTemplates访问Mysql