yjs机器学习常见算法01——KNN(K—近邻算法)

news2025/1/16 16:54:25

1.K—近邻算法 的含义:

简单来说就是通过你的邻居的“类别”,来推测你的“类别”

定义:如果一个样本在特征空间中的k个最相似(即特征空间中最临近)的样本中大多数属于某一类别,则该样本也属于这个类别。

2.距离公式(欧式公式):

3.KNN算法的流程:

1>.计算已知类别数据集中的 当前点 之间的距离

2>.按照距离递增的次序进行排序

3>.选取与当前最近k个点

4>.统计k个点所在的类别 ,以及类别出现的频率

5>.返回4中频率出现最高的类别 作为当前点的预测分类

4.KNN算法API及简单代码

用到的库:scikit-learn

实例化分类器:

K=sklearn.neighbors.KNeighborsClassifier(n_neighbors=xx)

已知点:

X=[1],[2],[3]...        //注意这里是“二维”数组形式

对应的分类:

Y=0,1,1...        //对应的分类是“一维数组”形式

如何将X与Y对应起来:

K.fit(X,Y)

如何预测未知点

z=【[5],[6]...】:

K.predict(z)

5.代码:

import sklearn
from sklearn.neighbors import KNeighborsClassifier

#实例化“分类器”
K_NN=KNeighborsClassifier(n_neighbors=3)

#已知类别的点
x=[[1],[2],[3],[10],[20],[100]]
#对应的类别
y=[0,0,0,1,1,1]

#将点和类别一一对应
K_NN.fit(x,y)

#将要预测的点
z=[[1],[40]]

#预测
pre=K_NN.predict(z)
print(pre)

结果:

6.K值大小说明:

        k值过小,那么预测的点就会非常依赖相近的点,一旦相近的点出现错误或者选择的数据集不合适,那么就会产生错误预测,k值过小时往往近似误差比较小,因此他就可能会出现过拟合的现象。

        k值过大,举一个夸张地例子来说,如果已知数据集的样本有n个,k=n,那么输出的结果很大程度上取决于已知数据集的类别,比如说一个班一共30个人,有2个女生,28个男生,新来一名同学(实际是女),k=30,那么预测值就会是男。所以,k值过大,容易发生欠拟合现象。

        一般我们会取较小的数作为k值,使用交叉验证法找到最合适的k,具体步骤见后篇。

新名词:

近似误差:

主要注重的是训练集的误差,近似误差越小,不能说明模型越好,只能说是在训练集上表现良好,所以近似误差特别小时,很可能出现过拟合现象,并且此时的模型也不是最佳的。

估计误差:

主要关注的是训练集的误差估计误差越小,说明预测能力越好,模型也接近最佳

因此我们一般看的是估计误差。

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

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

相关文章

Linux系统:本机(物理主机)访问不了虚拟机中的apache服务问题的解决方案

学习目标: 提示:本文主要讲述-本机(物理主机)访问不了虚拟机中的apache服务情况下的解决方案 Linux系统:Ubuntu 23.04; 文中提到的“本机”:代表,宿主机,物理主机; 首先&#xff0c…

SAM 2视觉大模型:图像和视频一键抠图,本地部署整合包

在人工智能和计算机视觉领域,图像和视频的分割技术一直是研究的热点。最近,Meta公司(原Facebook)推出了一款名为Segment Anything Model 2(简称SAM 2)的新型AI模型,它在图像和视频分割领域取得了…

layui table 自定义表头

自定义表头-查询 js/css静态文件引用 <!-- 引入 layui.css --> <link href"//unpkg.com/layui2.9.16/dist/css/layui.css" rel"stylesheet"> <!-- 引入 layui.js --> <script src"//unpkg.com/layui2.9.16/dist/layui.js"…

【C++打怪之路Lv9】-- vector

&#x1f308; 个人主页&#xff1a;白子寰 &#x1f525; 分类专栏&#xff1a;重生之我在学Linux&#xff0c;C打怪之路&#xff0c;python从入门到精通&#xff0c;数据结构&#xff0c;C语言&#xff0c;C语言题集&#x1f448; 希望得到您的订阅和支持~ &#x1f4a1; 坚持…

Flink系统架构和应用部署方式

目录 概述 Flink集群架构组件 Client JobManager TaskManagers 算子、Task和Subtask三者关系 概念 算子和Task的关系 Task和SubTask的关系 算子和SubTask的关系 样例 Task Slots和资源的关系 Flink应用程序部署 Flink Session 集群 Flink Job 集群 Flink Appli…

「Java服务」快速接入SkyWalking方法指南

一、背景 背景&#xff1a;Apache SkyWalking 是一个开源的分布式应用性能监控&#xff08;APM&#xff09;系统&#xff0c;主要用于监控微服务、云原生和容器化应用的性能。接入SkyWalking可以排查以智能投放服务为主的服务响应问题 技术架构 SkyWalking 的核心架构包括以…

[含文档+PPT+源码等]精品基于ssm实现的原生微信小程序线上养花系统的设计与实现

基于SSM&#xff08;Spring、SpringMVC、MyBatis&#xff09;实现的原生微信小程序线上养花系统的设计与实现背景&#xff0c;可以从以下几个方面进行阐述&#xff1a; 一、选题背景 随着人们生活水平的提高和环境保护意识的增强&#xff0c;养花已经成为一种流行的休闲活动。…

UE5 猎户座漂浮小岛 04 声音 材质

UE5 猎户座漂浮小岛 04 声音 材质 1.声音 1.1 导入 wav格式 1.2 循环播放 1.3 mp3转wav 1.4 新手包素材&#xff08;火焰 &#xff09; particle&#xff1a;颗粒 2.材质 2.1 基本颜色 M_Yellow 2.2 混合模式与双面材质 2.3 金属感、高光、粗糙度 M_AluminumAlloy 2.4 自…

【JAVA毕业设计】基于Vue和SpringBoot的课程管理平台

本文项目编号 T 006 &#xff0c;文末自助获取源码 \color{red}{T006&#xff0c;文末自助获取源码} T006&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析5.4 数据库设计 六、…

CyberRt实践之Hello Apollo(Apollo 9.0版本)

apollo9.0环境安装参考官方网站 apollo.baidu.com/community/Apollo-Homepage-Document?docBYFxAcGcC4HpYIbgPYBtXIHQCMEEsATAV0wGNkBbWA5UyRFdZWVBEAU0hFgoIH0adPgCY%2BADwCiAVnEAhAILiAnABZxEgOzK1Y%2BQA51M3ROUnJBsbK2WZoyUdkBhcXoAMhlwDFlARnUXZdzE9AGY%2BbFINADYpUhCEFW…

(Java企业 / 公司项目)阿里云aliyun-对象存储OSS详细从开通到配置(微服务架构选用)

OSS配置文档 注册阿里云账号 https://www.aliyun.com/ 注册成功登录阿里云。 配置bucket 进入控制台&#xff1a; 搜索OSS 点击上图中控制台“对象存储OSS”&#xff0c;立即创建Bucket: 点击“立即创建”&#xff0c;填写bucket的信息&#xff0c;如下图&#xff1a; 注意…

机器学习拟合过程

import numpy as np import matplotlib.pyplot as plt# 步骤1: 生成模拟数据 np.random.seed(0) X 2 * np.random.rand(100, 1) y 4 3 * X 2 * X**2 np.random.randn(100, 1)# 步骤2: 定义线性模型 (我们从随机权重开始) w np.random.randn(2, 1) b np.random.randn(1)#…

C++11中的原子操作及其底层缓存一致性

C中的原子变量&#xff08;atomic variables&#xff09;是一种并发编程中用于保证数据一致性和线程安全的机制。在多线程环境下&#xff0c;当多个线程同时访问或修改同一个变量时&#xff0c;可能会产生竞争条件&#xff08;race condition&#xff09;&#xff0c;导致未定义…

Javascript 使用 Jarvis 算法或包装的凸包(Convex Hull using Jarvis’ Algorithm or Wrapping)

给定平面中的一组点&#xff0c;该集合的凸包是包含该集合所有点的最小凸多边形。 我们强烈建议您先阅读以下文章。 如何检查两个给定的线段是否相交&#xff1f; c https://blog.csdn.net/hefeng_aspnet/article/details/141713655 java https://blog.csdn.net/hefeng_aspne…

C#中判断的应用说明二(switch语句)

一.判断的定义说明 判断结构要求程序员指定一个或多个要评估或测试的条件&#xff0c;以及条件为真时要执行的语句&#xff08;必需的&#xff09;和条件为假时要执行的语句&#xff08;可选的&#xff09;。下面是大多数编程语言中典型的判断结构的一般形式&#xff1a; 二.判…

六、设置弹窗显示队列

实现原理&#xff1a; 把弹窗放置在一个队列中&#xff0c;通过设置UI方法&#xff0c;直接调用这个队列中的文本 Queue是一个先进先出的队列。 一、队列的使用 写一个增加提示的方法 在这里使用锁来执行这个语句&#xff0c;向这个队列里面增加一个提示文本 在这里进行文本…

Llama3-Factory模型部署新手指南

一、介绍 为了保持其公司在人工智能开源大模型领域的地位&#xff0c;社交巨头Meta推出了旗下最新开源模型。当地时间4月18日&#xff0c;Meta在官网上宣布公布了旗下最新大模型Llama 3。目前&#xff0c;Llama 3已经开放了80亿&#xff08;8B&#xff09;和700亿&#xff08;…

报表控件stimulsoft操作:使用 Stimulsoft 产品连接到 Json数据源

我们继续我们的系列文章&#xff0c;介绍如何在 Stimulsoft 产品中连接各种类型的数据源。在上一篇文章中&#xff0c;我们讨论了如何连接 OData。今天&#xff0c;我们将深入研究另一种类型的数据源 - JSON。 Stimulsoft Ultimate &#xff08;原Stimulsoft Reports.Ultimate…

Bat To Exe Converter软件:将批处理文件bat转换成exe应用程序

Bat To Exe Converter软件&#xff1a; 将批处理文件bat转换成exe应用程序&#xff08;文章最后附软件下载地址&#xff09;Bat To Exe Converter软件可以把批处理文件bat转换为exe可执行文件&#xff0c;甚至运用密码保护文件&#xff0c;生成的.EXE是独立的文件&#xff0c;…

DevExpress WinForms中文教程:Data Grid - 如何点击获取信息?

在使用DevExpress WinForms的Data Grid之类控件时&#xff0c;可能需要实现自定义用户交互&#xff0c;例如显示数据行的上下文菜单&#xff0c;或者在双击一行时调用编辑表单。在这些情况下&#xff0c;您需要在指定的坐标处标识网格元素。 在本教程中&#xff0c;您将学习如…