机器学习入门(第三天)——K近邻(物以类聚)

K-nearest neighbor

知识树

怎么区分红豆绿豆?

How to distinguish red beans and green beans?

之前我们构造了一个超平面来解决这个问题,既然超平面可以切分,是不是红豆之间和绿豆之间有着某种关联。即:物以类聚。

如果一个豆过来自然而然的到红豆堆,我们有理由认为它大概率是红豆。

  1. 同一标签的样本通常有很多相似的特征。

  2. 没进来一个样本,查看它周边的样本是什么类别,那么它就很有可能属于该类别。

那么某个点与其它点距离怎么计算。

距离度量

Distance measure

首先令

度量的方法有:

欧式距离(也称二范数):

xi里的x减去对应位置的xj里的x,然后全部平方,再求和,然后开根号。

如果两个点之间的距离很远,那么值就会很大

曼哈顿距离(也称一范数/也称城市街区距离):

相对上面欧式距离,不需要平方-相加-开根号,只要拿它的绝对值-相加即可

P范数:

引出P范数,p=1则是一范数,p=2则是二范数

还有3范数(也称切比雪夫距离/棋盘距离)

最常用的是欧式距离>曼哈顿距离>切比雪夫距离

总结

Summarization

  1. K近邻思想:物以类聚

  2. K近邻没有显式的训练过程

    1. 不需要先训练再预测,直接得到结果

  3. 距离度量

    1. 欧式距离:两点之间直线

    2. 曼哈顿距离:城市街区距离

    3. 切比雪夫距离:棋盘距离

K值的选择

How to chose K

选择较小的K值

用较小的邻域进行预测。预测结果对邻近的实例点非常敏感。如果邻近的实例点恰好是噪声,预测就会出错。

选择较大的K值

用较大的邻域进行预测。对于输入实例较远(已经不太相似)的样本点也会对预测起作用,使预测发生错误。

在应用中

先取一个较小的K值,再通过交叉验证法来选取最优的K值

分数表决规则

Majority voting rule

分类决策规则:多数表决

损失函数:

实心圆内都判断为红色的损失值

实心圆内都判断为蓝色的损失值

K近邻算法

K-nearest neighbor

输入:训练数据T = [(x1, y1),...,(xn,yn)]

实例特征向量x。

  1. 根据给定的距离度量,在训练集中找到与x最近的k个点,涵盖这k个点的邻域记作Nk(x)

  2. 在Nk(x)中根据分类决策规则(如多少表决)决定x的类别y

    输出实例x所属的类别y

总结

Summarization

  1. K近邻的思想:物以类聚

  2. K近邻没有显式的训练过场

  3. 距离度量:欧式距离、曼哈顿距离、切比雪夫距离

  4. 分类方式:多数表决规则

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

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

相关文章

docker启动链接sqlservr的镜像时报SSl错误

本次部署中遇到了老项目中的 net core 5.0 docker 镜像访问sql server 出现SSL Handshake failed with OpenSSL error - SSL_ERROR_SSL.问题 Microsoft.Data.SqlClient.SqlException (0x80131904): A connection was successfully established with the server, but then an e…

java video audio encoder

引言 在现代互联网的时代,视频和音频已经成为人们生活中不可或缺的一部分。而在计算机科学中,视频和音频编码器则是将原始的视频和音频数据转换为可压缩格式的关键技术。在本文中,我们将探讨基于Java的视频和音频编码器的使用。 什么是视频…

【Linux进阶之路】动静态库

文章目录 回顾一. 静态库1.代码传递的方式2.简易制作3.原理 二. 动态库1.简易制作2.基本原理 尾序 回顾 前面在gcc与g的使用中,我们简单的介绍了动态库与静态库的各自的优点与区别: 动态链接库,也就是所有的程序公用一份代码,虽然方便省空间&…

【追求卓越05】算法--复杂度

学习的目的 数据结构与算法的重要性,对于大部分刚接触工作的程序员而言,好像并没有什么太大的感触,其中也包括我。因为在刚开始的工作中,并不会用到什么复杂的数据结构和算法。也能完成我们工作中的需求。 但是人总是要有追求的&a…

Elasticsearch:FMA 风格的向量相似度计算

作者:Chris Hegarty 在 Lucene 9.7.0 中,我们添加了利用 SIMD 指令执行向量相似性计算的数据并行化的支持。 现在,我们通过使用融合乘加 (Fused Mulitply-Add - FMA) 进一步推动这一点。 什么是 FMA 乘法和加法是一种常见的运算,…

作品Demo:大全

实用小demo 1.3D-地图工程 获取连接:nullhttps://m.tb.cn/h.5kzPTgJ?tkRPBlWep4ZIf 2.3D-饼图 获取连接:https://m.tb.cn/h.5Pt4A8k?tkXRzWWepUnu4https://m.tb.cn/h.5Pt4A8k?tkXRzWWepUnu4

油封安装需要润滑吗?

油封是许多机械系统中的重要部件。它们可以防止润滑剂从机器和轴承内的间隙泄漏。但这些密封件本身需要润滑吗?本文将详细探讨这个问题。 1、润滑的作用 润滑对于油封的性能和寿命起着至关重要的作用。它减少密封件和轴之间的摩擦,防止磨损。它还有助于密封件保持…

深度学习之五(递归神经网络--Recursive Neural Networks,RvNNs)

概念 递归神经网络(Recursive Neural Networks,RvNNs)是一类神经网络,其结构允许数据之间的递归性关系。与循环神经网络(RNNs)专注于序列数据不同,递归神经网络更适用于树状或递归结构的数据,例如自然语言中的语法树、分子结构等。在递归神经网络中,网络结构能够递归…

一个月B站涨粉200万,品牌号不可错过的吸粉秘籍

越来越多品牌为了持续在B站营销而创建品牌官方账号,发布原创作品融入B站UP主中,吸引B站用户塑造品牌形象,提高品牌传播度、品牌声量。 据飞瓜数据(B站版)统计,B站有着超过2万个品牌号,本篇文章…

亚马逊买家号用邮箱怎么注册

想要用邮箱注册亚马逊买家号,那么准备好能接受验证码的邮箱后打开相应的亚马逊官网即可。打开官网后点击注册——输入昵称——输入邮箱——输入密码——接受邮箱验证码并输入,如果遇到需要手机号验证就输入手机号,如果不需要验证,…

7.Gin 路由详解 - 路由分组 - 路由文件抽离

7.Gin 路由详解 - 路由分组 - 路由文件抽离 前言 在前面的示例中,我们直接将路由的定义全部写在 main.go 文件中,如果后面 路由越来越多,那将会越来越不好管理。 所以,下一步我们应该考虑将路由进行分组管理,并且将其抽…

Vue3+ts学习笔记1

//父组件 <script setup lang"ts"> import Child from ./components/Child.vueconst fnInFather (msg:any) > {console.log("父组件的 fnInFather 函数触发了,拿到了后面的消息>", msg.value) } </script><template><div>&…

剧情继续:马斯克曝出OpenAI前员工举报信,董事会与奥特曼谈判回归

丰色 发自 凹非寺 量子位 | 公众号QbitAI 经过4天的极限拉扯、反转再反转&#xff0c;奥特曼有可能重新回归了。 据知情人士透露&#xff0c;OpenAI董事会正与奥特曼进行一场“富有成效”的新谈判。 如果奥特曼回到OpenAI&#xff0c;他将继续担任CEO。 与此同时&#xff0c…

【开源】基于JAVA的音乐偏好度推荐系统

项目编号&#xff1a; S 012 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S012&#xff0c;文末获取源码。} 项目编号&#xff1a;S012&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、系统设计2.1 功能模块设计2.1.1 音乐档案模块2.1…

Unsupervised Condition GAN

Unsupervised Condition GAN主要有两种做法&#xff1a; Direct Transformation 直接输入domain X图片&#xff0c;经过Generator后生成对应的domain Y的图像。这种转化input和output不能够差太多。通常只能实现较小的转化&#xff0c;比如改变颜色等。 Projection to Commo…

pyinstaller打包生成的.spec文件解析

PyInstaller是一个用于将Python程序打包为可执行文件的工具。它的.spec文件是用来配置打包过程的脚本文件。 .spec文件是一个Python脚本&#xff0c;用于指定PyInstaller如何处理源代码、依赖项、资源文件等。它包含了一系列的参数和选项&#xff0c;用于控制打包的行为和生成…

【C++】:STL中的string类的增删查改的底层模拟实现

本篇博客仅仅实现存储字符(串)的string 同时由于Cstring库设计的不合理&#xff0c;我仅实现一些最常见的增删查改接口 接下来给出的接口都是基于以下框架&#xff1a; private:char* _str;//思考如何不用constsize_t _size;size_t _capacity;//这样写可以const static size_t…

【Windows 常用工具系列 13 -- Confluence 如何快速输入代码块 code block】

文章目录 Confluence 如何快速输入代码块方法二 Confluence 如何快速输入代码块 在使用使用 confluence 进行文档编辑时&#xff0c;有时需要贴上部分代码&#xff0c;但是直接贴代码在 confluence上&#xff0c;显示效果不是太好看&#xff0c;所以confluence 给我们提供了符…

SpringBoot启动后自动打开浏览器访问项目

更简单的一个方法 Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " url); Springboot项目启动后自动打开浏览器访问(超实用)_浏览器访问springboot项目-CSDN博客 Springboot项目启动后自动打开浏览器访问 1、在Springboot项目中每次启动完项…