这里将这三个问题在一起讲,仅仅是因为自己觉得有些联系,而且正好自己概念有些模糊。

1. KNN 和 K-means的区别:参考https://www.cnblogs.com/nucdy/p/6349172.html

1.1 KNN介绍:

KNN的算法过程是是这样的:

从上图中我们可以看到,图中的数据集是良好的数据,即都打好了label,一类是蓝色的正方形,一类是红色的三角形,那个绿色的圆形是我们待分类的数据。

如果K=3,那么离绿色点最近的有2个红色三角形和1个蓝色的正方形,这3个点投票,于是绿色的这个待分类点属于红色的三角形。

如果K=5,那么离绿色点最近的有2个红色三角形和3个蓝色的正方形,这5个点投票,于是绿色的这个待分类点属于蓝色的正方形。

1.2 K-means介绍:

如图所示,数据样本用圆点表示,每个簇的中心点用叉叉表示。(a)刚开始时是原始数据,杂乱无章,没有label,看起来都一样,都是绿色的。(b)假设数据集可以分为两类,令K=2,随机在坐标上选两个点,作为两个类的中心点。(c-f)演示了聚类的两种迭代。先划分,把每个数据样本划分到最近的中心点那一簇;划分完后,更新每个簇的中心,即把该簇的所有数据点的坐标加起来去平均值。这样不断进行”划分—更新—划分—更新”,直到每个簇的中心不在移动为止。(图文来自Andrew ng的机器学习公开课)。

1.3 KNN和K-Means的区别

KNN

K-Means

1.KNN是分类算法

2.监督学习

3.喂给它的数据集是带label的数据,已经是完全正确的数据

1.K-Means是聚类算法

2.非监督学习

3.喂给它的数据集是无label的数据,是杂乱无章的,经过聚类后才变得有点顺序,先无序,后有序

没有明显的前期训练过程,属于memory-based learning 有明显的前期训练过程
K的含义:来了一个样本x,要给它分类,即求出它的y,就从数据集中,在x附近找离它最近的K个数据点,这K个数据点,类别c占的个数最多,就把x的label设为c K的含义:K是人工固定好的数字,假设数据集合可以分为K个簇,由于是依靠人工定好,需要一点先验知识
相似点:都包含这样的过程,给定一个点,在数据集中找离它最近的点。即二者都用到了NN(Nears Neighbor)算法,一般用KD树来实现NN。

2. 为什么KNN算法里的K越小模型会越复杂?(有个小问题,这里的复杂是不就是指过拟合的意思。。因为过拟合的模型越复杂?)

参考:https://coding.m.imooc.com/questiondetail.html?qid=40227

直观地理解,过拟合就是学习到了很多“局部信息”,或者是“噪音”,使得我们的模型中包含很多“不是规律的规律”。在knn算法中,k越小,就越有可能让我们的学习结果被“局部信息”所左右。在极端情况下,k=1,knn算法的结果只由离我们待预测样本最近的那个点决定,这使得我们knn的结果高概率被“有偏差的信息”或者“噪音”所左右,是一种过拟合。

3. 过拟合和欠拟合的偏差和方差问题

3.1 一种理解方式:参考https://www.nowcoder.com/questionTerminal/ce4a621f9757446cb37f834ed91c7f4f?orderByHotValue=1&page=1&onlyReference=false

偏差指的是模型输出值与真实值之间的差异。偏差越高越容易欠拟合,不能充分利用数据的有效信息。

方差指对数据微小改变的敏感程度,方差越高,越容易过拟合,对噪声越敏感。

3.2 另一种理解方式:参考https://blog.csdn.net/u012033832/article/details/78401486

评价数据拟合程度好坏,通常用代价函数J(平方差函数)。如果只关注Jtrain(训练集误差)的话,通常会导致过拟合,因此还需要关注Jcv(交叉验证集误差)。

高偏差:Jtrain和Jcv都很大,并且Jtrain≈Jcv。对应欠拟合。

高方差:Jtrain较小,Jcv远大于Jtrain。对应过拟合。

下图d代表多项式拟合的阶数,d越高,拟合函数越复杂,越可能发生过拟合。

3.2.1 如何理解高偏差和高方差

1、高偏差对应着欠拟合,此时Jtrain也较大,可以理解为对任何新数据(不论其是否属于训练集),都有着较大的Jcv误差,偏离真实预测较大。

2、高方差对应着过拟合,此时Jtrain很小,对于新数据来说,如果其属性与训练集类似,它的Jcv就会小些,如果属性与训练集不同,Jcv就会很大,因此有一个比较大的波动,因此说是高方差。

3.2.3 正则化系数

实际优化过程中,更多的是调整防止过拟合参数λ,λ对应正则化系数(越大,对过拟合的限制越强)。下图为λ和Jtrain、Jcv理想曲线。

3.2.4 模型修改策略

过拟合:增大数据规模、减小数据特征数(维数)、增大正则化系数λ

欠拟合:增多数据特征数、添加高次多项式特征、减小正则化系数λ

KNN和K-means的区别 为什么KNN算法里的K越小模型会越复杂? 过拟合和欠拟合的偏差和方差问题相关推荐

  1. python 线性回归与逻辑回归区别(有监督学习【分类、回归】、无监督学习【聚类、强化学习】、损失函数、梯度下降、学习率、过拟合、欠拟合、正则化)

    引用文章1 https://blog.csdn.net/viewcode/article/details/8794401 引用文章2:一.线性回归和逻辑回归 一.什么是机器学习 利用大量的数据样本,使 ...

  2. 模型评估(交叉验证——针对回归和分类、均方误差MSE、精度、精确率、召回率、F值、K折交叉验证、如何解决过拟合——L2正则化与L1正则化、欠拟合、如何区分过拟合和欠拟合——学习曲线)

    模型评估 意义:定量地表示机器学习模型的精度 1.交叉验证 把获取的全部训练数据按照 3 : 7或者 2 : 8的比例分成两份:一份用于测试,一份用于训练,然后用前者来评估模型,检查训练好的模型对测试 ...

  3. knn算法的最佳k值_KNN(k-NearestNeighbor)算法笔记

    本博文主要参考来源: 忆臻:一文搞懂k近邻(k-NN)算法(一)​zhuanlan.zhihu.com 一.KNN算法的核心思想: 算法的核心思想是,即是给定一个训练数据集,对新的输入实例,在训练数据 ...

  4. 为了联盟还是为了部落 | K means

    1. 问题 人类有个很有趣的现象,一群人在一起,过一段时间就会自发的形成一个个的小团体.好像我们很擅长寻找和自己气质接近的同类.其实不只是人类,数据也有类似情况,这就是聚类(Clustering)的意 ...

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

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

  6. 原创 | 一文读懂K均值(K-Means)聚类算法

    作者:王佳鑫审校:陈之炎本文约5800字,建议阅读10+分钟本文为你介绍经典的K-Means聚类算法. 概述 众所周知,机器学习算法可分为监督学习(Supervised learning)和无监督学习 ...

  7. 一文读懂K均值(K-Means)聚类算法

    作者:王佳鑫 审校:陈之炎 本文约5800字,建议阅读10+分钟本文为你介绍经典的K-Means聚类算法. 概述 众所周知,机器学习算法可分为监督学习(Supervised learning)和无监督 ...

  8. K均值(K-means)聚类算法

    文章目录 一. K-Means原理 二.算法流程 2.1 算法描述 2.2 算法分析: 2.3 k-means评价标准 2.4 k-means优缺点 三.项目实战 K-Means算法是经典的无监督的聚 ...

  9. 机器学习中的数学——学习曲线如何区别欠拟合与过拟合

    通过这篇博客,你将清晰的明白什么是如何区别欠拟合与过拟合.这个专栏名为白话机器学习中数学学习笔记,主要是用来分享一下我在 机器学习中的学习笔记及一些感悟,也希望对你的学习有帮助哦!感兴趣的小伙伴欢迎私 ...

最新文章

  1. 关于召开全国大学生智能车竞赛--百度智慧交通项目 培训通知(华中站)
  2. 皮一皮:论蓝朋友的拍摄技术
  3. linux里进程监控和自动重启,Linux - linux进程监控和自动重启的简单实现
  4. 图解Oracle RMAN备份入门
  5. 2018.11.03-dtoj-3130-流浪者(rover)
  6. SAP UI5 setProperty 的执行逻辑单步调式和分析
  7. 二维数组数和指针操作的理解
  8. IT公司刻板印象合集:程序员都秃头,商务个个是人精
  9. jenkins搭建_如何搭建移动端自动化测试平台?没错,就用Jenkins!
  10. POJO中使用ThreadLocal实现Java嵌套事务
  11. ECMAScript版本号总结
  12. 编程之道(英汉对照)[转载]
  13. RT-Thread Studio升级首推完美暗黑主题
  14. mysql 身份证计算年龄_mysql根据身份证号获得年龄并对年龄进行分组查询在MyBatis中的应用...
  15. 20220525商汤算法岗实习面试经历
  16. Sat Sep 25 07:38:46 Local time zone must be set--see zic manual page 2021
  17. 数学建模——微分方程
  18. 孟岩:我反对将Token翻译成“代币”
  19. python+django+layUI+MySQL+TSC打印机搭建4G设备管理平台项目(二)——过程中的难点记录
  20. 服务器系统盘划分,服务器硬盘分区的划分c区系统区.doc

热门文章

  1. 神奇的代码系列(持续更新)
  2. 智能导购系统设计与实现
  3. 2021届中信银行总行信息科技部笔试面试经历
  4. 思维导图软件TheBrain使用攻略——启动并探索TheBrain窗口
  5. 唐山联通助“智慧城市”开花
  6. 爱奇艺搜索排序算法实践(内附福利)
  7. SW mysql_Swoft MySQL
  8. swoft response
  9. 坑挺多 | 联邦学习FATE:上传数据(一)
  10. Unity3D知识体系