20241231 机器学习ML -(2)KNN(scikitlearn)

1. build DKTree

递推创建Tree;当前维度找中位数分割 数据集 left set,Node(mid), right set.

* 循环维度(当log(Nsample)>featureSize)

2. DKTree KNN search

* 理论部分向量几何有介绍。

每个维度列中,中位数对应的数据点 X[i]在这个分割超平面上,其他数据是对应数据点到这个超平面的垂直距离;这个分割期望是只用继续搜寻leftNode or rightNode(而不用全部)

   - 当目标点的最大球 <= 目标点到当前维度的分割超平面的最小距离;即球体与超平面不相交。这时可以只用搜索2个子节点中的1个。

    *rightNode 中任意点x 到 leftNode中任意点y 的距离 一定大于 x到分割超平面的距离

     leftset  mid  rightSet 

     mid  rightSet 最短距离: A=(R[fi] - mid[fi]) = ((R[fi] - mid[fi]) ^2)^1/2 >=0

     leftset rightse  任一right点的距离: B= ((L[fi] - R[fi])^2 + (L[fj] - R[fj])^2 + ... )^1/2

            R[fi] < mid[fi] <  L[fi]   

      =>  R[fi] -L[fi] >= R[fi] - mid[fi]    

      => (L[fi] - R[fi])^2 >= (R[fi] - mid[fi])^2

      => (L[fi] - R[fi])^2 + alpha  >= (R[fi] - mid[fi])^2   | alpha >=0

      => (L[fi] - R[fi])^2 + (L[fj] - R[fj])^2 + ...  >= (R[fi] - mid[fi])^2

      => B >=  A

  

   * fi轴时,法向量为  V=(0,0,0,1,  0,  0,  0, ...)  | V[fi] = 1;

     mid超平面 H: f = { V dot Mid = Mid[fi] }

     =>  H [f:Mid[fi]]

3. 代码实现

//教程有完整的代码

参考资料:《Python机器学习》

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

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

相关文章

4G报警器WT2003H-16S低功耗语音芯片方案开发-实时音频上传

一、引言 在当今社会&#xff0c;安全问题始终是人们关注的重中之重。无论是家庭、企业还是公共场所&#xff0c;都需要一套可靠的安全防护系统来保障人员和财产的安全。随着科技的飞速发展&#xff0c;4G 报警器应运而生&#xff0c;为安全防范领域带来了全新的解决方案。…

工业5G路由器让无人机数据传输 “飞” 起来

无人机上搭载5G通信模块&#xff0c;该模块与工业5G路由器通过5G网络建立连接。无人机的飞控系统、传感器以及摄像头等设备采集到的数据&#xff0c;如飞行姿态、高度、速度、环境图像、温度湿度等&#xff0c;经过编码、加密、调制等处理后转换为适合5G网络传输的信号形式。 …

Spring Certified Professional 2024 (2V0-72.22)

关于认证 Spring Certified Professional (2V0-72.22) 认证可证明您在 Spring Framework 方面的专业知识&#xff0c;Spring Framework 是构建企业级 Java 应用程序的领先平台。此认证在全球范围内得到认可&#xff0c;并证明您在 Spring 的各个方面都具有熟练程度&#xff0c;…

深信服云桌面系统的终端安全准入设置

深信服的云桌面系统在默认状态下没有终端的安全准入设置&#xff0c;这也意味着同样的虚拟机&#xff0c;使用云桌面终端或者桌面套件都可以登录&#xff0c;但这也给系统带来了一些安全隐患&#xff0c;所以&#xff0c;一般情况下需要设置终端的安全准入策略&#xff0c;防止…

通过 4 种方法将数据从 OnePlus 传输到Android

概括 由于它们是不同的品牌&#xff0c;因此将数据从 OnePlus 传输到Android是否很困难&#xff1f;也许您可以从这篇介绍 OnePlus 到Coolmuster Android数据传输的 4 个实用解决方案的文章中获得帮助。学习完它们后&#xff0c;您将有一个顺利的转移过程&#xff0c;所以为什…

springboot534售楼管理系统(论文+源码)_kaic

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本售楼管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信息&am…

自学记录:鸿蒙5使用ArkTS和ArkUI实现Live View功能

这次&#xff0c;我决定挑战一个全新的模块——Live View Kit&#xff0c;它提供了实况窗的创建、更新和管理功能。作为API 13的全新特性&#xff0c;我想用它开发一个智能餐厅的点餐和取餐提醒功能。 这篇文章不仅是我的学习记录&#xff0c;也是我探索HarmonyOS Next API 13的…

git的全通路线介绍

一、关系 1.git是代码版本管理工具&#xff0c;即可将项目切换到任意版本。 2.github与gitee是基于git技术构建的远程仓库网站。github是国外建立的&#xff0c;资源更丰富&#xff1b;gitee是国内建立的&#xff0c;免费功能更多。 3.gitlab与github类似&#xff0c;只不过…

新年快乐

今天是元旦&#xff0c;也是2025年的第一天&#xff0c;是旧的一年的结束&#xff0c;是新的一年的开始。 回顾2024年这一年&#xff0c;认认真真&#xff0c;勤勤恳恳&#xff0c;做出了一些成绩。 罗列一下2024年一年的里程表&#xff1a; 一月份&#xff0c;一边上班&…

SAKO搜索帮助增强(FB02科目搜索帮助)

SAKO搜索帮助增强&#xff08;FB02科目搜索帮助&#xff09; 一、 FB02的科目添加搜索帮助 FB02进入后&#xff0c;在填科目时添加搜索帮助。 二、增强步骤 SE11查看集中搜索帮助SAKO 菜单栏转到附加搜索帮助,添加新的搜索帮助&#xff0c;并添加对应的参数 使用SE11…

phpstudy2018问题(技巧)总结

目录 安装介绍注意操作 问题phpstudy待续、更新中...... 安装 软件下载&#xff08;新人推荐2018 版本phpstudy &#xff09; 官网下载 https://www.xp.cn/download.html 介绍 系统服务------开机自启 非服务模式------开机不自启 搭建好环境, 此时服务器与客户端同时存在 …

github提交不上去,网络超时问题解决

问题出现的原因&#xff1a; DNS服务器数据不同步&#xff0c;github的服务器发送迁移&#xff0c;在本地缓存的ip地址现在无效了。 解决方案&#xff1a; 1&#xff09;点击这里&#xff0c;查询github.com最新的ip地址 2.0&#xff09;编辑linux系统地址缓存文件&#x…

Flink operator实现自动扩缩容

官网文档位置&#xff1a; 1.Autoscaler | Apache Flink Kubernetes Operator 2.Configuration | Apache Flink Kubernetes Operator 1.部署K8S集群 可参照我之前的文章k8s集群搭建 2.Helm安装Flink-Operator helm repo add flink-operator-repo https://downloads.apach…

LeetCode--排序算法(堆排序、归并排序、快速排序)

排序算法 归并排序算法思路代码时间复杂度 堆排序什么是堆&#xff1f;如何维护堆&#xff1f;如何建堆&#xff1f;堆排序时间复杂度 快速排序算法思想代码时间复杂度 归并排序 算法思路 归并排序算法有两个基本的操作&#xff0c;一个是分&#xff0c;也就是把原数组划分成…

加密流量TLS1.2 和TLS1.3的握手区别

加密流量TLS1.2 和TLS1.3的握手区别 TLS1.2 握手均是明文 1&#xff09;Client Hello 2&#xff09;Server Hello 3&#xff09;Certificate TLS1.3 握手中Client Hello是明文&#xff0c;而Server Hello中Extensions以及后面的握手信息不可见 1&#xff09;Client Hello…

5分钟掌握python中的匿名函数

lambda表达式&#xff0c;又称匿名函数&#xff0c;常用来表示内部仅包含1行表达式的函数。如果一个函数的函数体仅有 1 行表达式&#xff0c;则该函数就可以 用 lambda 表达式来代替。 lambda 表达式的语法格式如下&#xff1a; name lambda [list] : 表达式 其中&#xff…

单元测试3.0+ @RunWith(JMockit.class)+mock+Expectations

Jmockit使用笔记_基本功能使用Tested_Injectable_Mocked_Expectations_jmockit.class-CSDN博客 测试框架Jmockit集合junit使用 RunWith(JMockit.class) 写在测试案例类上的注解 Tested 在测试案例中,写在我们要测试的类上面, 一般用实现类 Injectable 在测试案例中声明…

保姆级教程Docker部署ClickHouse镜像

目录 1、安装Docker及可视化工具 2、创建挂载目录 3、获取配置文件 4、运行ClickHouse容器 5、Compose运行ClickHouse容器 6、查看ClickHouse运行状态 7、安装包部署 1、安装Docker及可视化工具 Docker及可视化工具的安装可参考&#xff1a;Ubuntu上安装 Docker及可视化…

如何通过深度学习提升大分辨率图像预测准确率?

随着科技的不断进步&#xff0c;图像处理在各个领域的应用日益广泛&#xff0c;特别是在医疗影像、卫星遥感、自动驾驶、安防监控等领域中&#xff0c;大分辨率图像的使用已经成为了一项不可或缺的技术。然而&#xff0c;大分辨率图像带来了巨大的计算和存储压力&#xff0c;同…

Spring实现Logback日志模板设置动态参数

版权说明&#xff1a; 本文由博主keep丶原创&#xff0c;转载请保留此块内容在文首。 原文地址&#xff1a; https://blog.csdn.net/qq_38688267/article/details/144842327 文章目录 背景设计日志格式实现配置动态取值logback-spring.xml 背景 多个单体服务间存在少量交互&…