机器学习算法-----K-近邻算法

news2024/12/25 9:01:43

1.1 K-近邻算法简介

1.定义:
       就是通过你的"邻居"来判断你属于哪个类别

2.如何计算你到你的"邻居"的举例
        一般时候,都是使用欧氏距离


1.2k近邻算法api初步使用

1.sklearn

优势:
      1.文档多,且规范,       
      2.包含的算法多     
      3.实现起来容易

2.sklearn中包含内容

        分类、聚类、回归特征工程
        模型选择、调优

3.knn中的api

sklearn.neighbors .KNeighborsClassifier(n_neighbors=5)
             参数:
                n_beighbors --选定参考几个邻居

4.机器学习中实现的过程

       1.实例化一个估计器
       2.使用fit方法进行训练
 

1.3距离度量


1.欧式距离

通过距离平方值进行计算


2.曼哈顿距离(Manhattan Distance):

通过举例的绝对值进行计算


3.切比雪夫距离(Chebyshev Distance):

维度的最大值进行计算


4.颍可夫斯基距离(Minkowski Distance):

当p=1时,就是曼哈顿距离;
当p=2时,就是欧氏距离;当p-~时,就是切比雪夫距离。
小结:前面四个距离公式都是把单位相同看待了,所以计算过程不是很科学


5.标准化欧氏距离(StandardizedEuclideanDistance) :

           在计算过程中添加了标准差,对量刚数据进行处理


6.余弦距离(Cosine Distance)

通过cos思想完成


7.汉明距离( Hamming Distance)【了解】∶

一个字符串到另一个字符串需要变换几个字母,进行统计


8.杰卡德距离(Jaccard Distance)【了解】∶

通过交并集进行统计


9.马氏距离(Mahalanobis Distance)【了解】

通过样本分布进行计算
 

1.4 k值选择

     k值过小:    容易受到异常点的影响过拟合
     k值过大:    受到样本均衡的问题欠拟合

拓展:
      近似误差--过拟合 --在训练集上表现好,测试集表现不好 
     估计误差好才是真的好!


1.5 kd树

        1.构建树
        2.最近领域搜索

案例:
        —,构建树

             第一次:
                 ×轴--2,5,9,4,8,7 --> 2,4,5,7,8,9
                 y轴--3,4,6,7,1,2 --> l,2,3,4,6,7
                 首先选择x轴,找中间点,发现是(7,2)

           第二次:
                  左面:(2,3), [ 4,7],[5,4 ] --> 3,4,7
                  右面:(8,1) , (9,6)--> 1,6
                 从y轴开始选择,
                 左边选择点是(5,4),  右边选择点(9,6)

           第三次:
                从x轴开始选择


       二,搜索
             1.在本域内,没有进行跨域搜索

             2.要跨到其他域搜索

1.6案例:鸢尾花种类预测--数据集介绍


1.获取数据集

     sklearn . datasets.

          小数据:
              sklearn . datasets . load_*
               注意:该数据从本地获取

         大数据集:
              sklearn.datasets. fetch_*
              注意: 该数据从网上下载
              subset--表示获取到的数据集类型


2.数据集返回值介绍

          返回值类型是bunch--是一个字典类型

     返回值的属性:

           data︰特征数据数组,是In_samples * n_features]的二维 numpy.ndarray 数组
           target︰标签数组,是n_samples的一维numpy.ndarray数组
           DESCR:数据描述
           feature_names:特征名,新闻数据,手写数字、回归数据集没有
           target_names:标签名


 

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

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

相关文章

谷达冠楠:抖音开店怎么运营好

在数字营销的海洋中,抖音如同一艘快艇,以其独特的视频形式和庞大的用户基础成为商家们的新宠。开店容易,运营难。要想在抖音上成功运营店铺,需要掌握一些核心技巧。 首当其冲的是内容创意。抖音的用户喜好多变,因此&am…

AI 神助攻,协同办公神器 ---- ONLYOFFICE

人工智能不会取代人,只会淘汰那些不会使用人工智能的人。 – 鲁迅 一、人工智能重新定义办公新模式 随着GPT的横空出世,AI的应用场景已经无处不在,从智能客服、智能语音助手、智能家居到自动驾驶汽车等,AI正在不断地拓展其应用领…

关于缓存数据一致性的解决方案

缓存数据一致性 引入缓存会导致一些比如修改/删除内容后缓存还是之前的数据,这会导致缓存和数据库数据不一致的情况,本文将提到相关的解决方案,而且还提供了canal去实现每次在更新数据库的时候自动同步缓存,而无需将代码都写在后…

操作系统基础:进程同步【上】

🌈个人主页:godspeed_lucip 🔥 系列专栏:OS从基础到进阶 1 进程同步(上)1.1 进程同步与互斥1.1.1 进程同步1.1.1.1 必要性1.1.1.2 什么是进程同步 1.1.2 进程互斥1.1.2.1 必要性1.1.2.2 什么是进程互斥1.1.…

RTC 滴答计时器

1. RTC 滴答计时器 1.1 寄存器配置 RTCCON RTC控制寄存器 [7:4] 0000 设置频率 [8] 1 使能滴答计时器 TICNT 32位滴答时间计数值。 滴答计时器是一个上行计数器。如果当前的滴答数达到这个值,滴答时间中断发生。 备注:该值必须大于3 周期 (n 1)/滴答时钟…

文件制作二维码的图文教学,多种格式都可以使用

现在我们经常会发现在扫描二维码的时候,可能一个二维码中会存在多个文件或者多个二维码中会显示不同的文件的,那么这些文件存入二维码中是用什么方法制作的呢? 文件二维码的制作方法其实很简单,只需要通过文件二维码生成器工具的…

这都2024年了 你还要多久才能领悟 LinkedList 源码

这都2024年了 你还要多久才能领悟 LinkedList 源码 文章目录 这都2024年了 你还要多久才能领悟 LinkedList 源码LinkedList 简介LinkedList 插入和删除元素的时间复杂度?LinkedList 为什么不能实现 RandomAccess 接口? LinkedList 源码分析初始化插入元素…

【数据结构之二叉树的构建和遍历】

数据结构学习笔记---009 数据结构之二叉树1、二叉树的概念和结构1.1、回顾二叉树的重要性质1.2、回顾二叉树的主要分类1.1、如何实现二叉树? 2、二叉树的实现2.1、二叉树的BinaryTree.h2.2、二叉树的BinaryTree.c2.2.1、二叉树的构建2.2.2、二叉树销毁2.2.3、二叉树…

RabbitMQ入门概念

目录 一、RabbitMQ入门 1.1 rabbitmq是啥? 1.2 应用场景 1.3 AMQP协议与RabbitMQ工作流程 1.4 Docker安装部署RabbitMQ 二、SpringBoot连接MQ配置 2.1 示例1 2.1 示例2 —— 发送实体 一、RabbitMQ入门 1.1 rabbitmq是啥? MQ(Message…

Hutool导入导出用法

整理了下Hutool导入导出的简单使用。 导入maven或jar包&#xff08;注意这里导入的poi只是为了优化样式&#xff09; <!-- https://mvnrepository.com/artifact/cn.hutool/hutool-all --> <dependency><groupId>cn.hutool</groupId><artifactId&g…

Kube-Promethus配置Nacos监控

Kube-Promethus配置Nacos监控 前置&#xff1a;Kube-Promethus安装监控k8s集群 一.判断Nacos开启监控配置 首先通过集群内部任一节点访问Nacos的这个地址<NacosIP>:端口号/nacos/actuator/prometheus&#xff0c;查看是否能够获取监控数据。 如果没有数据则修改Nacos集群…

qt中使用mysql 数据库

QT 版本介绍 虽然版本是这个&#xff0c;但是工作目录确是&#xff1a; 下面陈述安装步骤 第一步&#xff1a; 就是安装MYSQL 数据库&#xff0c;在此不再赘述了&#xff0c;很多博主已经上传了。 第二步&#xff1a; 就是拷贝QT 对应mysql 的版本驱动到 QT 的编译器文件中…

基于人工智能的质量保证(QA)流程

AI模型质量保证需知 推出准确、可靠、公正的人工智能&#xff08;AI&#xff09;模型无疑是一项挑战。设法成功实施AI计划的企业很可能意识到&#xff0c;AI质量保证&#xff08;QA&#xff09;流程与传统QA流程迥然不同。 质量保证对于AI模型的准确性至关重要&#xff0c;不…

SD卡写保护无法格式化怎么办?

一般来说&#xff0c;写保护&#xff08;也称为只读&#xff09;是数据存储设备防止写入新数据或修改旧信息的能力。换句话说&#xff0c;您可以读取存储在磁盘上的信息&#xff0c;但是却不能删除、更改或复制它们&#xff0c;因为访问会被拒绝。那么SD卡有写保护怎么格式化呢…

【图像拼接 精读】Parallax-Tolerant Unsupervised Deep Image Stitching

【精读】Parallax-Tolerant Unsupervised Deep Image Stitching 在这篇论文中&#xff0c;"warp"&#xff08;变形&#xff09;和"composition"&#xff08;组合&#xff09;是两个关键的概念。"Warp"指的是图像变形的过程&#xff0c;用于调整…

【乳腺肿瘤诊断分类及预测】基于LVQNN学习向量量化神经网络

课题名称&#xff1a;基于LVQ神经网络的乳腺肿瘤诊断&#xff08;类型分类&#xff09; 版本日期&#xff1a;2023-03-10 运行方式: 直接运行0501_LVQ0501.m 文件即可 代码获取方式&#xff1a;私信博主或QQ&#xff1a;491052175 模型描述&#xff1a; 威斯康辛大学医学院…

NetCore实现输入用户名和密码后访问Swagger页面

1 原理说明 在后端编程时&#xff0c;通常使用swagger文档来呈现接口文档。为了接口的安全性&#xff0c;可通过输入用户名和密码的方式来进行验证。 这里用到了Basic认证方式。原理图如下&#xff1a; 步骤 1&#xff1a; 当请求的资源需要 B A S I C \textcolor{red}{BA…

力扣238. 除自身以外数组的乘积(前后缀和)

Problem: 238. 除自身以外数组的乘积 文章目录 题目描述思路复杂度Code 题目描述 思路 思路1&#xff1a; 1.先求取数组的包括当前下标值得前后缀乘积&#xff08;利用两个数组记录下来分别为leftProduct和rightProduct&#xff09; 2.当求取一个下标为i的数组中的元素&#x…

正则表达式补充以及sed

正则表达式&#xff1a; 下划线算 在单词里面 解释一下过程&#xff1a; 在第二行hello world当中&#xff0c;hello中的h 与后面第一个h相匹配&#xff0c;所以hello中的ello可以和abcde匹配 在world中&#xff0c;w先匹配h匹配不上&#xff0c;则在看0&#xff0c;r&#…

【Java 数据结构】LinkedList与链表

LinkedList与链表 1. ArrayList的缺陷2. 链表2.1 链表的概念及结构2.2 链表的实现 3. LinkedList的模拟实现4.LinkedList的使用4.1 什么是LinkedList4.2LinkedList的使用 5. ArrayList和LinkedList的区别 1. ArrayList的缺陷 上节课已经熟悉了ArrayList的使用&#xff0c;并且…