yjs机器学习常见算法01——KNN(02)Kd树

news2024/11/28 14:48:34

1.什么是Kd树,为什么要引入Kd树

knn是寻找k个邻近的点,在这个过程中,需要一个点一个点的与未分类点进行比较,这样的时间复杂度非常高,因此引入了一种原理类似二叉树的Kd树,以减少比较搜索的次数。

kd树的本质思想:

A距离B远,B距离C近,那么A距离C也远

出处:黑马程序员: 5.kd树和kd树的构造过程_哔哩哔哩_bilibili

2.大致原理图:

3.具体过程

1>.树的建立

1.构造根结点(即上述的黄色结点),构造包括所有点的超矩形区域(外面的方框)。

2.通过递归的方法,对k维空间进行划分,生成子结点。

        在超矩形区域上选择一个坐标轴(找已知点散度较大的分量最大最小差较大的方差大的)的方向作为轴),和该方向的一个切分点(已知点中,该方向分量排中间的点(中位数)),过切分点垂直于坐标轴的方向画出一个超平面(垂线、面..),这个超平面将原超矩形区域划分为两个子区域A,B;

        对于A,B的划分,选择除了上次选择的分量方向的新轴(也是选择除了上次的,散度最大的),再找划分点,再垂直划分。。。。

3.重复上述过程,直到没有结点为止

举例:

2>.最近邻域搜索

来源黑马程序员的教学视频

例子:

简单不需要跨区域的:

来源黑马程序员的视频

 复杂的跨区域的:

来源黑马程序员的视频

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

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

相关文章

PyTorch求导相关

PyTorch是动态图,即计算图的搭建和运算是同时的,随时可以输出结果;而TensorFlow是静态图。 在pytorch的计算图里只有两种元素:数据(tensor)和 运算(operation) 运算包括了&#xf…

Psychophysiology:脑-心交互如何影响个体的情绪体验?

摘要 情绪的主观体验与对身体(例如心脏)活动变化的情境感知和评估相关。情绪唤醒增加与高频心率变异性(HF-HRV)降低、EEG顶枕区α功率降低以及心跳诱发电位(HEP)振幅较高有关。本研究使用沉浸式虚拟现实(VR)技术来研究与情绪唤醒相关的脑心相互作用,以实现自然而可…

SSM考研科目学习APP-计算机毕业设计源码90377

摘 要 基于Android的考研科目学习系统的设计与实现,旨在为广大考研学子提供一个便捷、高效的学习平台。该系统充分利用Android操作系统的广泛普及与灵活定制性,结合考研科目的特点和需求,实现了个性化的学习方案、丰富的题库资源以及智能化…

【个人同步与备份】电脑(Windows)与手机/平板(Android)之间文件同步

文章目录 1. syncthing软件下载2. syncthing的使用2.1. 添加设备2.1.1. syncthing具备设备发现功能,因此安装好软件,只需确认设备信息是否对应即可2.1.2. 如果没有发现到,可以通过设备ID连接2.1.3. 设置GUI身份验证用户,让无关设备…

LeetCode: 3274. 检查棋盘方格颜色是否相同

一、题目 给你两个字符串 coordinate1 和 coordinate2,代表 8 x 8 国际象棋棋盘上的两个方格的坐标。   以下是棋盘的参考图。   如果这两个方格颜色相同,返回 true,否则返回 false。   坐标总是表示有效的棋盘方格。坐标的格式总是先…

大模型技术学习过程梳理,零基础入门到精通,收藏这一篇就够了

“ 学习是一个从围观到宏观,从宏观到微观的一个过程 ” 今天整体梳理一下大模型技术的框架,争取从大模型所涉及的理论,技术,应用等多个方面对大模型进行梳理。 01 — 大模型技术梳理 这次梳理大模型不仅仅是大模型本身的技术…

接口测试(八)jmeter——参数化(CSV Data Set Config)

一、CSV Data Set Config 需求:批量注册5个用户,从CSV文件导入用户数据 1. 【线程组】–>【添加】–>【配置元件】–>【CSV Data Set Config】 2. 【CSV数据文件设置】设置如下 3. 设置线程数为5 4. 运行后查看响应结果

vue3项目页面实现echarts图表渐变色的动态配置

完整代码可点击vue3项目页面实现echarts图表渐变色的动态配置-星林社区 https://www.jl1mall.com/forum/PostDetail?postId202410151031000091552查看 一、背景 在开发可配置业务平台时,需要实现让用户对项目内echarts图表的动态配置,让用户脱离代码也…

基于Matlab 人脸识别技术

Matlab 人脸识别技术 算法流程: 本系统运用PCA算法来实现人脸特征提取,然后通过计算欧式距离来判别待识别测试人脸,本个系统框架图如下: 图: 人脸识别系统框架图 整个系统的流程是这样的,首先通过图像采…

给哔哩哔哩bilibili电脑版做个手机遥控器

前言 bilibili电脑版可以在电脑屏幕上观看bilibili视频。然而,电脑版的bilibili不能通过手机控制视频翻页和调节音量,这意味着观看视频时需要一直坐在电脑旁边。那么,有没有办法制作一个手机遥控器来控制bilibili电脑版呢? 首先…

基于SpringBoot+Vue+uniapp的时间管理小程序的详细设计和实现(源码+lw+部署文档+讲解等)

详细视频演示 请联系我获取更详细的演示视频 项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念,提供了一套默认的配置,让开发者可以更专注于业务逻辑而不…

【文件加密系统】华企盾DSC服务程序启动失败解决办法

问题原因: 1.sa账户密码错误导致连接数据数据库失败无法启动DSC服务 解决方法: 用windows身份验证进入数据库更改sa用户密码:安全性>登录名>sa>右键属性>更改密码 ※如果显示请输入秘钥更改,使用更改完密码的sa账户登…

从0开始深度学习(16)——暂退法(Dropout)

上一章的过拟合是由于数据不足导致的,但如果我们有比特征多得多的样本,深度神经网络也有可能过拟合 1 扰动的稳健性 经典泛化理论认为,为了缩小训练和测试性能之间的差距,应该以简单的模型为目标,即模型以较小的维度的…

机器学习与神经网络:科技的星辰大海

前提 近日,2024年诺贝尔物理学奖颁发给了机器学习与神经网络领域的研究者,这是历史上首次出现这样的情况。这项奖项原本只授予对自然现象和物质的物理学研究作出重大贡献的科学家,如今却将全球范围内对机器学习和神经网络的研究和开发作为了一…

RSocket vs WebSocket:Spring Boot 3.3 中的两大实时通信利器

RSocket vs WebSocket:Spring Boot 3.3 中的两大实时通信利器 随着现代互联网应用的不断发展,实时通信已经成为许多应用程序不可或缺的功能。无论是社交网络、在线游戏还是数据监控系统,实时通信都能提供快速、无缝的信息交换。而实现实时通…

“主升筹码”,底部建仓信号+主升加仓位置,不错过任何行情

使用技巧 指标分为主图和副图 其中,主图主升筹码信号较多,副图的信号较少。这里,我说一个选股思路,就是底部主升筹码共振进场,上升过程中主图信号当作加仓信号。 选股,提供一个主升筹码共振选股&#xff0…

Redis 5.0 安装配置(Windows)

Redis 5.0之后支持Redis Stream等功能 下载地址:Releases tporadowski/redis GitHub 点击运行redis-server.exe 此外:Redis 6.0及以后版本目前都没有Windows版

【越狱插件】内网穿透 frpc、frps插件

内网穿透、frp、frpc、frps https://zhaoboy9692.github.io/repo 越狱源 https://zhaoboy9692.github.io/repo 苦于在ios越狱下没有frp穿透使用 特地开发了的越狱插件 基于最新frp0.48编译 ios14.6测试没问题 有问题及时反馈

ubuntu中使用cmake编译报错No CMAKE_CXX_COMPILER could be found.的解决方法

ubuntu中使用cmake编译报错No CMAKE_CXX_COMPILER could be found.的解决方法 No CMAKE_CXX_COMPILER could be found.Could NOT find CUDA (missing: CUDA_NVCC_EXECUTABLE CUDA_CUDART_LIBRARY)Could not find a package configuration file provided by "OpenCV" …

【SQL|大数据|数据清洗|过滤】where条件中 “ != “ 和 “ NOT IN() ” 对NULL的处理

对数据进行清洗过滤的时候,NULL往往是一个很特殊的存在,对NULL值的存在通常有以下三种方式 1、保留NULL 2、过滤掉NULL 3、将NULL替换为其他符合业务需求的默认常量 下面是一些常用处理NULL的方式: 如下图所示数据源: car_vin&…