机器学习---KNN

ML-kNN 多标签k近邻算法 MLL Week 1 ML-kNN 多标签k近邻算法 MLL Week 1ML-kNN 多标签k近邻算法 MLL Week 1 传统kNN 多标签kNN  学习张敏灵老师的《ML-kNN: a lazy learning approach to multi-label learning》的学习笔记。传统kNN  k近邻算法(k-Nearest Neighbour, KNN)是机器学习中最基础,最简单的常用算法之一。其思想 阅读详情

一、概述

kNN算法的核心思想:如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。

K-NN可以看成:有那么一堆你已经知道分类的数据,然后当一个新数据进入的时候,就开始跟训练数据里的每个点求距离,然后挑离这个训练数据最近的K个点看看这几个点属于什么类型,然后用少数服从多数的原则,给新数据归类。

二、KNN算法

1.算法流程:

1)计算待分类点与已知类别的点之间的距离

2)按照距离递增次序排序

3)选取与待分类点距离最小的k个点

4)确定前k个点所在类别的出现次数

5)返回前k个点出现次数最高的类别作为待分类点的预测分类

2.算法模型关键点

1)距离向量:欧式距离、曼哈顿距离等

2)K值选择:K越小,分类边界曲线越曲折,偏差越小,方差越大;K越大,分类边界曲线越平坦,偏差越大,方差越小

3)分类决策规则:投票决定:少数服从多数,近邻中哪个类别的点最多就分为该类。加权投票法:根据距离的远近,对近邻的投票进行加权,距离越近则权重越大(权重为距离平方的倒数)

3.算法实现

线性扫描在训练集非常大时,计算非常耗时。一般采用Kd树实现:

kd树(K-dimension tree)是一种对k维空间中的实例点进行存储以便对其进行快速检索的树形数据结构。kd树是是一种二叉树,表示对k维空间的一个划分,构造kd树相当于不断地用垂直于坐标轴的超平面将K维空间切分,构成一系列的K维超矩形区域。kd树的每个结点对应于一个k维超矩形区域。利用kd树可以省去对大部分数据点的搜索,从而减少搜索的计算量。

kd树生成规则:以中位数划分

4.KNN优缺点

优点:

1)简单,易于理解,易于实现,无需估计参数,无需训练;

2)适合对稀有事件进行分类(例如当流失率很低时,比如低于0.5%,构造流失预测模型);

3)特别适合于多分类问题(multi-modal,对象具有多个类别标签), kNN比SVM的表现要好。

缺点:

1)当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数,少数类容易分错。

2)需要存储全部训练样本。

3)计算量较大,因为对每一个待分类的文本都要计算它到全体已知样本的距离,才能求得它的K个最近邻点。

5.改进策略

kNN算法因其提出时间较早,随着其他技术的不断更新和完善,kNN算法的诸多不足之处也逐渐显露,因此许多kNN算法的改进算法也应运而生。

针对以上算法的不足,算法的改进方向主要分成了分类效率和分类效果两方面。

分类效率:事先对样本属性进行约简,删除对分类结果影响较小的属性,快速的得出待分类样本的类别。该算法比较适用于样本容量比较大的类域的自动分类,而那些样本容量较小的类域采用这种算法比较容易产生误分。

分类效果:采用权值的方法(和该样本距离小的邻居权值大)来改进,Han等人于2002年尝试利用贪心法,针对文件分类实做可调整权重的k最近邻居法WAkNN (weighted adjusted k nearest neighbor),以促进分类效果;而Li等人于2004年提出由于不同分类的文件本身有数量上有差异,因此也应该依照训练集合中各种分类的文件数量,选取不同数目的最近邻居,来参与分类。

三、KNN延申

1.快速搜索近邻

其基本思想是将样本集按邻近关系分解成组,给出每组的质心所在,以及组内样本至该质心的最大距离。这些组又可形成层次结构,即组又分子组,因而待识别样本可将搜索近邻的范围从某一大组,逐渐深入到其中的子组,直至树的叶结点所代表的组,确定其相邻关系。

这种方法着眼于只解决减少计算量,但没有达到减少存储量的要求。

2.剪辑近邻法

剪辑近邻法:其基本思想是,利用现有样本集对其自身进行剪辑,将不同类别交界处的样本以适当方式筛选,可以实现既减少样本数又提高正确识别率的双重目的。

剪辑的过程是:将样本集KN分成两个互相独立的子集:test集KT和reference集KR。首先对KT中每一个Xi在KR中找到其最近邻的样本Yi(Xi) 。如果Yi与Xi不属于同一类别,则将Xi从KT中删除,最后得到一个剪辑的样本集KTE(剪辑样本集),以取代原样本集,对待识别样本进行分类。 

3.压缩近邻法

压缩近邻法:利用现有样本集,逐渐生成一个新的样本集,使该样本集在保留最少量样本的条件下,仍能对原有样本的全部用最近邻法正确分类,那末该样本集也就能对待识别样本进行分类,并保持正常识别率。

定义两个存储器,一个用来存放即将生成的样本集,称为Store;另一存储器则存放原样本集,称为Grabbag。其算法是:

1)初始化。Store是空集,原样本集存入Grabbag;从Grabbag中任意选择一样本放入Store中作为新样本集的第一个样本。

2)样本集生成。在Grabbag中取出第i个样本用Store中的当前样本集按最近邻法分类。若分类错误,则将该样本从Grabbag转入Store中,若分类正确,则将该样本放回Grabbag中。

3)结束过程。若Grabbag中所有样本在执行第二步时没有发生转入Store的现象,或Grabbag已成空集,则算法终止,否则转入第二步。 

 

 

机器学习(一):K-近邻算法(KNN)分类与回归 这是自己的第一篇机器学习的文章,单纯做自己的学习笔记,一起加油进步 K-近邻 算法(KNN) 阅读详情

相关推荐

基于ML-KNN的多标签分类算法

     最近有一个项目需要用多标签分类思想来建模,之前对这块不是太了解,查了一些论文,发现目前主流的算法包括ML-KNN、ML-DT、Rank-SVM、CML等,其中ML-KNN算法思想最简单,结合原始论文,本文大概介绍下算法思想和代码实现。      ML-KNN借鉴了KNN的思想寻找K个近邻样本,并运用贝叶斯条件概率,来计算当前标签为1和0的概率,概率大的标签定为样本最终的标签,这就是ML-...

liumy601的专栏 1万+

近邻法简介

在机器学习中,常用的近邻法包括近邻法、最近邻法、K-近邻法、剪辑近邻法、以及压缩近邻法。本篇文章,我们将对这几种方法进行介绍。

MSFollower的博客 5215

机器学习实战k-邻近算法(kNN)简单实施代码解读

一.概念k-邻近算法是最简单的机器学习算法之一。k-邻近算法采用测量不同特征值之间的距离(具体说是欧氏距离)的方法进行分类。输入待分类的数据后,计算输入特征与样本集数据对应特征的距离,选择样本集中与输入特征距离最小的前k个样本,统计这k个样本数据中出现次数最多的类别作为新数据的分类。二.kNN的简单实施代码及注释from numpy import * import operatordef creat

SCUT_Arucee的博客 3269

k-NN 剪辑近邻法

理解并掌握基本最邻近法( k-NN )的算法思想以及基本过程,并实现一个 k-NN 算法的函数。 理解并掌握剪辑最近邻算法思想以及基本过程,并实现一个剪辑最近邻算法的函数。

博主关注人工智能、强化学习、嵌入式等||985高校A+学科研究生、猿龄六年||优快云博客专家、2024年博客之星TOP33、华为云享专家、人工智能领域优质创作者。 1476

近邻法,k近邻法与剪辑近邻法

近邻法,k近邻法与剪辑近邻法 计算错误率

数据埋点系列 3|数据质量保证:验证、清洗与管理

数据质量管理是一个持续的过程,需要技术和组织文化的共同支持。通过本文,我们深入探讨了数据质量保证的各个方面,从基本的验证和清洗技术,到高级的监控和自动化策略。主动的而非被动的自动化的而非手动的持续的而非一次性的全面的而非局部的随着数据在决策中的作用越来越重要,确保数据质量将成为每个数据驱动型组织的核心竞争力。通过实施本文中讨论的策略和技术,你将能够建立一个强大的数据质量保证体系,为你的组织带来更可靠、更有价值的数据洞察。

一个8年大数据开发工程师的碎碎念 1464

近邻法总结

近邻法

☆下山☆的博客 3007

细胞膜电学特性的分数阶微积分建模

分数阶微积分在细胞膜电学特性建模中的应用主要体现在对细胞膜的电容行为和神经元放电活动的更精确描述上。

冰河世纪20的博客 623

K-NN(k近邻算法)

初识K-NN(k-Nearest Neighbor):K-NN(k-近邻算法)是一种常用的监督学习方法,其工作机制非常的简单:给定测试样本,基于某种距离度量找出训练集中与其最靠近的k个训练样本,然后基于这k 个“邻居”的信息来进行预测,通常在分类任务中可以使用投票法,即选择这k个样本中出现最多的类别标记作为预测结果。一 . K-近邻算法(KNN)概述     最简单最初级的分类器是将全部的训练数据

Miracle.Zhao的博客 8416

最新Mamba环境配置教程:从CUDA到causal-conv1d的完整安装流程

本文提供最新Mamba环境配置教程,涵盖从CUDA到causal-conv1d的完整安装流程。针对深度学习领域的长序列处理需求,详细指导如何正确配置CUDA工具链、安装PyTorch及关键依赖causal-conv1d,解决常见报错问题,并验证mamba-ssm集成效果。

bush的博客 418

自动驾驶传感器选型实战:摄像头、激光雷达与毫米波雷达融合策略

自动驾驶感知系统的核心在于多传感器协同,而非单一技术优劣。摄像头擅长语义识别但受光照和天气制约;激光雷达提供高精度测距却面临成本、温漂与多径干扰等物理瓶颈;毫米波雷达则以全天候鲁棒性与精准测速成为安全底线的守门人。三者融合不是简单叠加,而是基于场景约束(如暴雨、强光、高速跟车)、成本边界(BOM控制)与时间窗口(量产节奏)的工程权衡。真实量产方案中,‘纯视觉’实为视觉主责+毫米波兜底,‘激光雷达上车’本质是用硬件真值加速算法迭代,而传统车企更倾向以毫米波为仲裁者协调冲突。理解这些底层原理,才能在传感器选型、

weixin_32495691的博客 276

最近邻方法

这种方法它需要训练样本,但不用进行训练。总体比较好理解,不作详述 最近邻法 1-NN 待识模式离得最近的训练样本是哪类就归为哪类。 K-NN 待识模式离得最近的k个训练样本哪类的多就归为哪类。 剪辑最近邻法 清理两类见的边界,去掉类别混杂的样本,使两类边界更清晰,此即剪辑最近邻方法。这种方法的性能在理论上明显好于一般的最近邻法。 剪辑1-NN最近邻法 将测试样本分为参照集和测试集...

沃·夏澈德的博客 2620

麒麟OS恢复出厂设置原理与实操:非重装的系统状态回滚

Linux操作系统中的‘恢复出厂设置’并非简单重装或镜像还原,而是一种基于状态快照、包管理与配置模板的可控回滚机制。其核心原理依赖LVM快照技术、RPM包签名验证和预置配置模板,兼顾系统稳定性与用户数据安全。该方案在政务、教育等国产化场景中具有显著技术价值——不格式化硬盘、不丢失/home文档、不重配驱动与授权,大幅降低运维复杂度。典型应用场景包括系统卡顿修复、软件冲突清理、桌面环境异常恢复等。本文深入解析银河麒麟V10的kylin-restore-cli工具链与麒麟管家集成逻辑,聚焦‘恢复出厂设置’这一高

weixin_30879169的博客 773

机器学习算法分类概要汇总(一)ML-KNN算法(含代码)

笔者结合机器学习过程中利用MATLAB编程所实现的一些算法来对一些常见算法进行了函数封装便于初学人士进行参考和利用,这里简要介绍算法的概念和主要方法,适用于初学者去理解算法!注意!是理解算法,本文主要以例子来讲述算法,更加注重实际应用。更加详细算法的实现请见其他博客。 一、ML-KNN算法 算法概要介绍。 多标签学习算法是基于KNN算法的一种改进算法,这里大概介绍一下ML—KNN算法的实现过程,结合一种例子方便不了解的人士来学习,直接上例子,便于大家去理解, 问题引出 先给出一列三维样本特征及其三维坐标点

lvoutongyi的博客 3480

C#与Vector XL驱动库实战:CAN通道配置与端口访问详解

本文详细解析了使用C#调用Vector XL驱动库进行CAN总线通信开发的核心步骤。重点阐述了如何通过XL_GetDriverConfig获取硬件通道信息,并厘清channelMask与accessMask的区别与转换关系,最终指导开发者正确使用XL_OpenPort函数配置并打开CAN端口,为构建稳定的汽车电子测试与诊断应用奠定基础。

weixin_28452161的博客 362

windows server 2012 AD 活动目录部署系列(十一)安装证书服务器(ADCS)

本篇博文介绍如何在AD域控上安装证书服务器,本实验域环境:yun.com。 步骤如下: 1、打开“服务器管理器”,点击“添加角色和功能”,如下图: 2、点击下一步, 3、点击下一步, 4、点击下一步, 5、点击“Active Directory证书服务”,弹出功能选择,点击"添加功能",如下图,

白昼的技术专栏 2万+

机器学习——K-近邻算法(KNN)

K-近邻算法(K-Nearest Neighbors, 简称 KNN)是一种基于实例的机器学习算法,广泛应用于分类和回归任务。它通过计算数据点之间的相似度(通常是距离度量),然后预测新的数据点的标签或数值。在图像分类任务中,KNN 可以通过计算图像特征向量之间的距离来分类,例如手写数字识别。KNN 可用于垃圾邮件检测,通过比较新邮件和历史邮件的相似性,判断其类别。原则,根据 kkk 个最近邻居的类别进行投票,选出出现最多的类别。基于用户相似度的推荐系统中,KNN 常用于查找兴趣相似的用户群体。

CYTLOVELY的博客 4920

Jupyter notebook教程系列(二)Jupyter notebook的基本用法

Jupyter notebook的基本使用   一. 主页面 如图1-1 我们先介绍一下主页面上的内容: 1.Files页面是用于管理创建文件相关类目的。 2.Running页面主要展示的是当前正在运行当中的终端和“ipynb”格式的notebook。若想要关闭已经打开的终端和“ipynb”格式的notebook,仅仅关闭其页面是无法彻底退出程序的,需要在Running页面点击其对...

dlhlSC的博客 1438

ML-kNN 多标签k近邻算法 MLL (转)

http://blog.youkuaiyun.com/Kodoo/article/details/49905877 ML-kNN 多标签k近邻算法 MLL Week 1 ML-kNN 多标签k近邻算法 MLL Week 1 传统kNN多标签kNN   学习张敏灵老师的《ML-kNN: a lazy learning approach

csdn_chuxuezhe的博客 2603

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

OpenCV机器学习(4)k-近邻算法(k-Nearest Neighbors, KNN)cv::ml::KNearest类

cv::ml::KNearest 是 OpenCV 机器学习模块中的一部分,它提供了实现 k-近邻算法(k-Nearest Neighbors, KNN)的方法。KNN 是一种简单但功能强大的分类和回归算法,基于实例的学习方法,即根据最近邻的类别来预测新样本的类别。

jndingxin的专栏 774

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

ML-kNN 多标签k近邻算法

学习张敏灵老师的《ML-kNN: a lazy learning approach to multi-label learning》的学习笔记。 传统kNN   k近邻算法(k-Nearest Neighbour, KNN)是机器学习中最基础,最简单的常用算法之一。其思想非常直接:如果一个样本在特征空间中的k个最相似(即特征空间中距离最邻近)的样本中的大多数属于某一个类别,则该

xiaopihaierletian的博客 6058

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

多标签学习ML-KNN算法

文章目录 Ml-KNN: A Lazy Learning Approach to Multi-Label Learning Pattern Recognition 40 (2007) 2038 – 2048 1 MLKNN简介 2 评价指标 2.1 海明损失(Hamming loss,HL) 2.2 1-错误率(One-error,OE) 2.3 覆盖率(...

但求心安的博客 6048

Machine Learning机器学习之K近邻算法(K-Nearest Neighbors,KNN)

K近邻算法最早由美国的科学家Thomas Cover 和 Peter Hart 在 1967 年提出,并且在之后的几十年中得到了广泛的研究和应用。KNN 算法是一种基于实例的学习方法,它不像其他算法一样需要对数据进行假设或者参数拟合,而是直接利用已知的数据样本进行预测。KNN 算法是一种简单有效的分类和回归算法,算法的核心思想是“近朱者赤,近墨者黑”,即认为与新样本距离较近的训练样本更可能具有相同的类别或者输出。它的基本假设是“相似的样本在特征空间中具有相似的类别”。

a910247的博客 1024

机器学习笔记 十四:k-近邻算法(kNN)的实现

最近邻 (k-Nearest Neighbors, KNN) 算法是一种分类算法, 1968年由 Cover和 Hart 提出, 应用场景有字符识别、 文本分类、 图像识别等领域。该算法的思想是: 一个样本与数据集中的k个样本最相似, 如果这k个样本中的大多数属于某一个类别, 则该样本也属于这个类别。数据集来源于相亲分类数据,帮助需要的人进行配对。 ...

amyniez的博客,欢迎交流讨论 1294
上一篇: leetcode(46-50)
下一篇: 机器学习---决策树
小小螺丝刀
博客等级 码龄10年 41粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值