当前位置: 首页 > news >正文

机器学习-KNN

KNN:K最邻近算法(K-Nearest Neighbor,KNN)

用特征空间中距离待分类对象的最近的K个样例点的类别来预测。

投票法:K 个样例的对数类别。

  1. k=1:最近邻分类

  2. k 通常是奇数(因为我们根据这个K数据判断类别,如果是偶数可能出现类别对半的情况)

基于实例学习:不需要训练。

K 最邻近算法步骤:

  1. 计算待分类对象鱼所有样例点的距离,找出 K 个距离最近的点。(目前用欧氏距离)

  2. 通过这 K 个点的投票决定待分类对象的类别。

    1. 等权投票

    2. 加权投票:相似度加权

如图:K =3,分类结果是三角形

          k=5,分类结果是正方形

如果我们进行了加权,即便是K=5,由于实例点离三角形特别近,分类结果也有可能为三角形

如何确定K

  1. K 太小,对噪音点敏感(早点附近的点,将都被分错)

  2. K太大,模型不细致(如果 K 是所有样本数,那么分类结果将是训练数据中数量最多的类别,相当于朴素贝叶斯分类器中,只用了先验概率)

  3. K权限 模型复杂度和经验风险

  4. 交差验证

K-D Tree(K-Dimensional Tree)

KD Tree 是一种数据结构。对 k 维空间里的点进行组织,存储为树形的数据结构。

KD Tree 为K维空间进行分割,主要应用于多维空间关键数据的搜索(如:范围搜索和最近邻搜索)。

                                              图1

如图1:空间先按红线分割,然后前后两个空间分别按绿色线分割,然后在四个空间中再按蓝色线分割

建树:

  1. 对当前所有点,依次按照一个维度的中位数为切分线进行切割,将当前区域分为两个区域,小于中位数放到左边,大于中位数放到右边。

  2. 重复步骤1,直到没有点可分停止。

查找方法:(查找目标为x)

  1. 在KD 树中自上而下按照建树的规则,找 x 对应的叶子节点,当做最近点,计算当前最近距离。

  2. 从该叶节点开始,从底向上,重复直到根节点:计算当前节点的父节点的切分面到 x 的距离;如果该距离小于当前前最优距离,则在改父节点的另一子区域查找最近点,否则忽略该子区域,直接到上一层查找。

KD 树练习:

数据(2,3)(5,4)(9,6)(4,7)(8,1)(7,2)

查找最近邻近点:(4,5)(4,6)

                                      图2                                                              图3        

注意:

  1. 图2 示:分割维度是依次轮换换着的。 

  2. K>1:我们需要在KD Tree中维护一个数据,只要到分割面距离或者到其他节点的距离小于数组总最大距离,就必须计算,因有可能存在节点去替换数组中的节点。

  3. KD这个数组,我是在前几轮算节点距离时,给填满的。

相关文章:

机器学习-KNN

KNN:K最邻近算法(K-Nearest Neighbor,KNN) 用特征空间中距离待分类对象的最近的K个样例点的类别来预测。 投票法:K 个样例的对数类别。 k1:最近邻分类 k 通常是奇数(因为我们根据这个K数据判断类别,如果…...

python 安装包 site-packages

1. site-packages 文件夹的位置 当我们通过 pip 或其他方式安装一个 Python 包时,这些包的文件就会被复制到 site-packages 文件夹下。 site-packages 文件夹通常位于 Python 的安装目录下的 Lib 文件夹内。具体的路径会根据你使用的操作系统和 Python 版本的不同而…...

大数据-151 Apache Druid 集群模式 配置启动【上篇】 超详细!

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…...

CentOS8.5.2111(3)实验之DHCP服务器架设

一、实验目标 1.掌握DHCP服务器的主配置文件各项申明参数及操作及其含义 2. 具备DHCP 服务器、中继服务器的配置能力 3. 具备测试客户端正常获取服务器分配地址的能力 4. 具备DHCP服务器故障排除能力 二、实训原理/流程 (一)项目背景 …...

机器学习(4):机器学习项目步骤(一)——定义问题

1. 机器学习项目的五大步骤 定义问题 收集数据和预处理 选择算法和确定模型 训练拟合模型 评估优化模型性能 2. 定义问题的主要任务 刨析业务场景,设定清晰目标,同时还要确定当前问题属于哪一种机器学习类型。 3. “易速鲜花”项目案例 项目任务&a…...

C#中Socket通信常用的方法

创建Socket 在C#中创建一个Socket对象的基本步骤如下: 引入命名空间: 首先,确保你的文件顶部包含了以下命名空间的引用: using System.Net; using System.Net.Sockets; 创建Socket实例: 你可以创建一个Socket实例&am…...

【JavaEE】——单例模式引起的多线程安全问题:“饿汉/懒汉”模式,及解决思路和方法(面试高频)

阿华代码,不是逆风,就是我疯,你们的点赞收藏是我前进最大的动力!!希望本文内容能够帮助到你! 目录 一:单例模式(singleton) 1:概念 二:“饿汉模…...

huggingface实现中文文本分类

目录 1 自定义数据集 2 分词 2.1 重写collate_fn方法 3 用BertModel加载预训练模型 4 模型试算 5 定义下游任务 6 训练 7 测试 #导包 import torch from datasets import load_from_disk #用于加载本地磁盘的datasets文件 1 自定义数据集 #自定义数据集 #…...

基于python+控制台+txt文档实现学生成绩管理系统(含课程实训报告)

目录 第一章 需求分析 第二章 系统设计 2.1 系统功能结构 2.1.1 学生信息管理系统的七大模块 2.1.2 系统业务流程 2.2 系统开发必备环境 第三章 主函数设计 3.1 主函数界面运行效果图 3.2 主函数的业务流程 3.3 函数设计 第四章 详细设计及实现 4.1 学生信息录入模块的设计与实…...

Spring Boot 整合MyBatis-Plus 实现多层次树结构的异步加载功能

文章目录 1,前言2,什么是多层次树结构?3,异步加载的意义4,技术选型与实现思路5,具体案例5.1,项目结构5.2,项目配置(pom.xml)5.3,配置文件&#xf…...

网络工程师指南:防火墙配置与管理命令大全,零基础入门到精通,收藏这一篇就够了

本指南详细介绍了防火墙的配置与管理命令,涵盖了防火墙的工作原理、常见配置命令、安全策略与访问控制、日志管理与故障排查,并通过实战案例展示了如何有效防御网络攻击。通过学习本指南,网络工程师能够系统掌握防火墙的配置与管理技能&#…...

英特尔终于找到了Raptor Lake处理器崩溃与不稳定问题的根源

技术背景 在过去的几个月里,一些用户报告称他们的第13代和第14代Intel Core“Raptor Lake”处理器遇到了系统崩溃和不稳定的情况。这些问题最初在2024年7月底被英特尔识别出来,并且初步的诊断显示,这些问题与微码有关,该微码使CP…...

Shp2pb:Shapefile转Protocol Buffers的高效工具

Shp2pb是一个实用工具,专门用于将Shapefile(shp)格式转换为Protocol Buffers(protobuf)文件。这对于以更高效、更紧凑的方式处理地理数据特别有用。以下是关于如何安装和使用Shp2pb工具的详细说明,以及一个…...

Elasticsearch使用Easy-Es + RestHighLevelClient实现深度分页跳页

注意!!!博主只在测试环境试了一下,没有发到生产环境跑。因为代码还没写完客户说不用弄了( •̩̩̩̩_•̩̩̩̩ ) 也好,少个功能少点BUG 使用from size的时候发现存在max_result_window10000的限制&…...

基于ASRPRO的语音应答

做这个的起因是为了送女朋友,而且这东西本身很简单,所以在闲暇之余尝试了一下。 这个工程很简单,只通过对ASRPRO进行编程即可。 先看效果。(没有展示所有效果,后续会列出来所有对话触发) 语音助手示例1 语音助手示例2 代码部分使用天文Block编辑,找了一圈好像只…...

3D看车汽车案例,车模一键换皮肤,开关车门,轴距,电池功能

3D 汽车案例 网址: http://car.douchuanwei.com/...

数据结构-4.栈与队列

本篇博客给大家带来的是栈和队列的知识点, 其中包括两道面试OJ题 用队列实现栈 和 用栈实现队列. 文章专栏: Java-数据结构 若有问题 评论区见 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条, 如果分享不成功, 那我就会回你一下,那样你就分享成功啦. 你们的…...

芝士AI写作有什么特色? 大模型支撑,智能改写续写,让写作更轻松

又到了一年的毕业季,大学四年眨眼间匆匆就过去了,毕业,求职,考研,工作,升学,但是在这之前,我们必须要完成论文的写作,这也是每一位大学生都必须要面对~ 芝士AI官网&…...

【计网】从零开始学习http协议 --- http的请求与应答

如果你不能飞,那就跑; 如果跑不动,那就走; 实在走不了,那就爬。 无论做什么,你都要勇往直前。 --- 马丁路德金 --- 从零开始学习http协议 1 什么是http协议2 认识URL3 http的请求和应答3.1 服务端设计…...

记录linux环境下搭建本地MQTT服务器实现mqtt的ssl加密通讯

1、ubuntu安装mosquitto sudo apt-get update//安装服务端 sudo apt-get install mosquitto//安装客户端 sudo apt-get install mosquitto-clients 2、安装openssl 3、mqtts/tls加密传输 mosquitto原生支持了TLS加密,TLS(传输层安全)是SSL&…...

C++ 显式类型转换详解

C 显式类型转换详解一、C 显示类型转换详解1、static_cast2、dynamic_cast3、const_cast4、reinterpret_cast5、C 风格转换6、总体注意事项7、总结二、代码示例1、示例代码2、运行结果一、C 显示类型转换详解 在 C 中,类型转换是编程的核心概念之一。显示类型转换&…...

Python pip升级报错怎么办_强制更新与重新安装pip方法

...

Tree of Thoughts详解:思维树搜索算法

🌳 多路径探索 | 广度优先 深度优先搜索 | 自我评估 回溯机制 | LangChain实现 | 完整项目代码 📖 什么是Tree of Thoughts? 核心思想 ToT Tree of Thoughts(思维树) 传统LLM: 输入 → 线性思考 → 输出&#xf…...

Win2D文本渲染:从基础格式到高级排版的全方位教程

Win2D文本渲染:从基础格式到高级排版的全方位教程 【免费下载链接】Win2D Win2D is an easy-to-use Windows Runtime API for immediate mode 2D graphics rendering with GPU acceleration. It is available to C#, C and VB developers writing apps for the Wind…...

CipherGuard:编译器级密文侧信道攻击防护技术解析

1. CipherGuard技术背景与核心挑战密文侧信道攻击(Ciphertext Side-Channel Attacks)已成为现代可信执行环境(TEE)中最棘手的安全威胁之一。这类攻击不直接破解加密算法本身,而是通过分析加密操作执行过程中产生的内存…...

高效配置实战指南:全面掌握Cursor Pro功能解锁的专业部署方案

高效配置实战指南:全面掌握Cursor Pro功能解锁的专业部署方案 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached y…...

基于BS模式的小型房屋租赁系统(10016)

有需要的同学,源代码和配套文档领取,加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码(前后端源代码SQL脚本)配套文档(LWPPT开题报告/任务书)远程调试控屏包运行一键启动项目&…...

Arm调试寄存器架构详解与应用实践

1. Arm调试寄存器架构概述在Armv8/v9处理器架构中,调试寄存器是实现硬件级调试功能的核心组件。这些寄存器通过外部调试接口(External Debug Interface)为开发人员提供了对处理器内部状态的访问和控制能力。调试寄存器主要分为两类&#xff1…...

AI智能体技能库开发指南:模块化设计、安全实践与性能优化

1. 项目概述:一个面向AI智能体的技能库最近在折腾AI智能体(Agent)开发,发现一个挺有意思的项目:jdrhyne/agent-skills。这名字听起来就挺直白,一个“智能体技能库”。简单来说,它不是一个完整的…...

安全测试人员必备:手把手教你用WePE+Ghost镜像在VMware里快速部署Win7靶机环境

安全测试人员必备:手把手教你用WePEGhost镜像在VMware里快速部署Win7靶机环境 在网络安全学习和渗透测试领域,拥有一个随时可用的标准化测试环境至关重要。对于刚入门的安全研究员、白帽子或需要进行漏洞复现的技术人员来说,Windows 7系统仍然…...