机器学习理论梳理2 : KNN K近邻分类模型

本文主要梳理KNN,K近邻模型的基本原理。

从机器学习的大分类来看,K近邻模型属于监督学习中的一种判别式模型,常用于分类问题。初始的数据集中,包含了已经分类标签好的数据。一句话来说,K近邻模型就是通过计算实例与现有数据集中所有数据的数学距离,从中挑选出K个最近的例子。在这K个例子中,占据大多数的分类就是新的实例的分类。

在这里插入图片描述
在使用K近邻法时,需要注意的就是定义好数学意义上的距离(一般使用欧拉距离)以及选取合适的K值。这个方法作为分类器的优势在于实现简单,没有先行的假设,但其局限性也很明显,随着样本以及数据量的上升,运算成本也是同比例地增加。

有两种主要的思路,来加速K近邻法的运算。首先我们可以利用PCA主成分分析,或者LDA线性判别分析来对原始数据进行降维处理,降维后再计算向量之间的距离就可以提高效率。

其次,在实现过程中,我们放弃计算新的实例和每一个数据集中的例子的距离,而是先计算各个分类中所有已知数据的平均值,通过新的实例与这个平均值之间的距离来进行分类,虽然一定程度牺牲了分类的准确性提高了不可避免的误差,但却可以大幅度加速我们算法运行的速度。
dE(x,c)=(x−μc)T(x−μc)d_E(x,c) = (x-\mu_c)^T(x-\mu_c) dE(x,c)=(xμc)T(xμc)
其中,x 为新的实例,μc\mu_cμc 是类的中心点,x 被分类为与他欧拉距离最近的类,每个类由他的中心点(平均值)来表示。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/386792.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker安装配置gitlab详细过程

1、方法一 1 docker pull beginor/gitlab-ce:11.0.1-ce.0 2、方法二 如果服务器网路不好或者pull不下来镜像,只能在其它网路比较好的机器上pull下来镜像,导出成一个文件, 再下载上传到网路不好的机器上,然后再从文件中导出来&am…

集合对偶律:分别用图文证明

集合几个法则: 求证: 注:右上角C表示此集合的补集/余集 语言描述:A 并 B的补集 A的补集 交 B的补集 A交B的补集 A的补集 并 B的补集 文字证明:(思路:证明两个集合相等,可证两集合…

keras实现嘴唇图像autoencoder

本文分享了我在silent speech 项目过程中实现的基于嘴唇图像数据集的autoencoder自编码器。输入输出都是64∗6464*6464∗64的嘴唇灰度图。自编码器由编码解码两个部分构成,同时实现了利用checkpoint在每个epoch运算时,自动保存测试集loss更小的模型。 数…

远程导表

exp ibmscm1/ibmscM123112.35.32.77:1532/JD3 file/home/scmimp.dmp tablesS4I_BPM.ACT_DE_MODEL url: jdbc:oracle:thin:112.35.32.77:1532:JD3 username: ibmscm1 password: ibmscM123 exp ibmscm1/ imp/exp user/pwd//host:port/sid fileurl exp 用户名/密码数据库…

historyReverser array reverse

historyReverser & array reverse "use strict";/**** author xgqfrms* license MIT* copyright xgqfrms** description historyReverser* augments Reverse 逆向 / Recursive 递归* example* link**/const historyReverser (datas [], text , debug false)…

pip国内加载速度慢解决方法

在国内使用pip安装包时有时会发现安装速度非常慢,甚至连接不上源。 为了加快pip的下载速度,我们可以主动使用 -i命令来切换到国内源。 下面放出实测好用的国内源 : 清华:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云:http:…

oracle--导出、导入blob类型的字段

oracle--导出、导入blob类型的字段 blob是oracle中的一个数据类型,保存的是压缩后的二进制形式的大数据。 数据迁移如果涉及到blob字段,都不好处理,因为无法用常规方法进行操作,如:使用select查看该字段,…

Feign Hystrix (HystrixCommonKey) 设置单独接口的超时时间和FallBack

Feign设置单独接口的超时时间和FallBack(HystrixCommonKey) HystrixCommonKey生成方法&#xff1a;类名#方法名(入参类型) final class Default implements SetterFactory { Override public HystrixCommand.Setter create(Target<?> target, Method method…

深度学习分布式训练小结

分布式训练本质上是为了加快模型的训练速度&#xff0c;面对较为复杂的深度学习模型以及大量的数据。单机单GPU很难在有限的时间内达成模型的收敛。这时候就需要用到分布式训练。 分布式训练又分为模型并行和数据并行两大类。 1. 数据并行 数据并行在于将不同batch的数据分别…

scrapy框架的理解

在每一次学习一个新东西之前&#xff0c;需要知道的几个问题。这个东西是什么(what),怎么使用(how)&#xff0c;为什么(why) scrapy的概念&#xff1a;Scrapy是一个为了爬取网站数据&#xff0c;提取结构性数据而编写的框架。 scrapy的作用&#xff1a;通过少量代码实现快速抓取…

MAC配置JCO,与找不到sapjco3异常

①到jco官网下载jco压缩包&#xff0c;解压 ②把libsapjco3.jnilib 放到一个文件夹中 把该路径配置到环境变量中 ③项目运行有可能会出现异常&#xff1a;找不到 sapjco3 &#xff1b; 第一种解决方式&#xff1a;配置虚拟机参数&#xff1a;-Djava.library.path之前环境变量路…

You must install pydot and graphviz for plotmodel to work报错如何处理

本文主要记录windows-anaconda环境下关于使用tensorflow.keras.utils.plot_model()方法时提示安装pydot 和 graphviz的解决方法。 pydot的安装非常简单&#xff0c;进入anaconda python环境中&#xff0c;用pip进行安装就可以了。 graphviz包的安装就要稍显复杂一些。 首先我们…

Java高并发之BlockingQueue

前言碎语 当系统流量负载比较高时&#xff0c;业务日志的写入操作也要纳入系统性能考量之内&#xff0c;如若处理不当&#xff0c;将影响系统的正常业务操作&#xff0c;之前写过一篇《spring boot通过MQ消费log4j2的日志》的博文&#xff0c;采用了RabbitMQ消息中间件来存储抗…

python中文字符串转list

本文主要记录了将中文字符串转换为list的过程&#xff0c;其中我们使用了keras preprocessing中的text_to_word_sequence方法。这个方法是完全适配中文的。需要注意的是&#xff0c;中文语料一般字符之间是没有空格分割的&#xff0c;这与英文是不同的。如下所示&#xff0c;如…

IP通信基础回顾2(第三周)

1.TCP报文 序号字段占4个字节。TCP连接中传送的数据流中每一个字节都编上一个序号。序号字段的值则是本报文段所发送的数据第一个字节的序号。 确认序号占4个字节。是期望收到的对方的下一个报文段字节胡序号。首部长度占4个字节。指出TCP首部长度在20-60字节之间&#xff0c;所…

ThreadPoolExecutor线程池 + Queue队列

1&#xff1a;BlockingQueue继承关系 java.util.concurrent 包里的 BlockingQueue是一个接口&#xff0c; 继承Queue接口&#xff0c;Queue接口继承 Collection BlockingQueue----->Queue-->Collection 图&#xff1a; 队列的特点是&#xff1a;先进先出&#xff08;FIFO…

python list pop方法

通过使用pop方法可以直接删除列表中的某一个对应元素并返回该元素值 s [a, b, c, d] # 通过使用pop方法可以移除list中的一个元素并返回它的值 result s.pop(1) print(result) print(s)结果如下 b [a, c, d]

linux基础文件管理软硬链接

一、文件系统的基本结构 1、文件和目录被组成一个单根倒置树目录结构 2、文件系统从根目录下开始&#xff0c;用“/”表示 3、根文件系统&#xff08;rootfs&#xff09;&#xff1a;root filesystem文件名区分大小写 4、以 . 开头的文件为隐藏文件 5、路径用/隔离 6文件有两类…

mybatis动态更新xml文件后热部署,不重启应用的方法

mybatis应用程序&#xff0c;由于是半自动化的sql, 有大量的sql是在xml文件中配置的&#xff0c;而在开发程序的过程中&#xff0c;通常需要边写sql变调试应用。但在默认情况下&#xff0c;xml文件里配置的sql语句是被放入到缓存中去了&#xff0c;每次更改有sql语句的xml文件&…

Leetcode 反转字符串 II python解法

题干&#xff1a; 给定一个字符串 s 和一个整数 k&#xff0c;从字符串开头算起&#xff0c;每计数至 2k 个字符&#xff0c;就反转这 2k 字符中的前 k 个字符。 如果剩余字符少于 k 个&#xff0c;则将剩余字符全部反转。 如果剩余字符小于 2k 但大于或等于 k 个&#xff0c;…