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

news2024/11/30 10:35:37

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/2215433.html

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

相关文章

【Python爬虫系列】_028.Python玩Redis

课 程 推 荐我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)教程合集 👈👈

Redis原理篇之网络模型

Redis原理篇之网络模型 文章目录 Redis原理篇之网络模型1 用户空间和内核空间2 阻塞IO3 非阻塞IO4 IO多路复用4.1 IO多路复用-select4.2 IO多路复用-poll4.3 IO多路复用-epoll4.4 总结 5 信号驱动IO6 异步IO7 同步和异步8 Redis网络模型8.1 Redis是单线程吗?为什么要…

基于Opencv中的DNN模块实现图像/视频的风格迁移

一、DNN模块的介绍 1、简介 OpenCV中的DNN(Deep Neural Network)模块是一个功能强大的组件,它支持深度学习网络模型的加载和推理。虽然DNN模块不提供模型的训练功能,但它可以与主流的深度学习框架(如TensorFlow、Caf…

tigeR免疫治疗数据分析工具学习和整理

tigeR整合了多个肿瘤的数据集,用于探索生物标志物和构建预测免疫治疗反应模型。 该工具内置了 11 个黑色素瘤数据集、3 个肺癌数据集、2 个肾癌数据集、1 个胃癌数据集、1 个低级别胶质瘤数据集、1 个胶质母细胞瘤数据集和 1 个头颈鳞状细胞癌数据集的 1060 例具有…

网络资源模板--Android Studio 实现简易新闻App

目录 一、项目演示 二、项目测试环境 三、项目详情 四、完整的项目源码 一、项目演示 网络资源模板--基于Android studio 实现的简易新闻App 二、项目测试环境 三、项目详情 登录页 用户输入: 提供账号和密码输入框,用户可以输入登录信息。支持“记…

2022年10月自考《操作系统概论》02323试题

目录 一.选择题 二.填空题 三.简答题 四.综合体 一.选择题 1.以下各种操作系统中,对可靠性要求最高的是 (书中)P25页 A.分时操作系统 B.实时操作系统 C.多道批处理系统 D.单道批处理系统 2.一个进程正常执行完毕时,需要对其…

简述光密度仪日常中的用途及光密度测量方法

光密度仪在日常中的用途 光密度仪在众多领域发挥着重要作用。在医疗领域,它常用于检测生物样本中的物质浓度,如血液中特定成分的含量测定。在化学分析中,可精确测量溶液的浓度,为实验和研究提供准确数据。在工业生产中&#xff0…

go+bootstrap实现简单的注册登录和管理

概述 使用,gomysql实现了用户的登录,注册,和管理的简单功能,不同用户根据不同权限显示不同的内容 实战要求: 1、用户可以注册、登录; 2、登录后可以查看所有的注册的用户; 3、管理员操作对用…

PHP(一)从入门到放弃

参考文献:https://www.php.net/manual/zh/introduction.php PHP 是什么? PHP(“PHP: Hypertext Preprocessor”,超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML…

Qt/C++编写的mqtt调试助手使用说明

一、使用说明 第一步,选择协议前缀,可选mqtt://、mqtts://、ws://、wss://四种,带s结尾的是走ssl通信,ws表示走websocket通信。一般选默认的mqtt://就好。第二步,填写服务所在主机地址,可以是IP地址也可以…

使用LSPatch+PlusNE修改手机软件

一、问题概述 国内使用一些软件,即使科学上网,打开都是网络错误,更换节点同样如此。 二、软件下载 通过官网或者正规商店(如Google play)下载并且安装。 是的,先要下载一个无法使用的版本,后续对其进行修改。 三、下…

代码随想录(七) —— 二叉树部分

1. 二叉树的四种遍历方式的理解 前序遍历,中序遍历,后序遍历;层次遍历 结合另一篇博客,关于灵神的题单刷题 二叉树刷题记录-CSDN博客 理解: 在二叉树类型题目中,遍历顺序的选择需要根据具体问题来确定…

算法笔记day04

目录 1. 在字符串中找出连续最长的数字串 2.岛屿数量 3.拼三角 1. 在字符串中找出连续最长的数字串 字符串中找出连续最长的数字串_牛客题霸_牛客网 (nowcoder.com) 算法思路: 这是一道简单的双指针题目,首先用i遍历数组,当遍历到数字的时…

春日技术辅导:Spring Boot课程答疑

3系统分析 3.1可行性分析 通过对本课程答疑系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本课程答疑系统采用JAVA作为开发语言,Spring Boot框…

数据驱动,漫途能耗管理系统打造高效节能新生态!

在我国能源消耗结构中,工业企业所占能耗比例相对较大。为实现碳达峰、碳中和目标,工厂需强化能效管理,减少能耗与成本。高效的能耗管理系统通过数据采集与分析,能实时监控工厂能源使用及报警情况,为节能提供数据。构建…

JVM 调优篇10 使用arthas排优

一 Arthas的作用 1.1 作用 1. 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 2.是否有一个全局视角来查看系统的运行状况? 3. 有什么办法可以监控到JVM的实时运行状态? 4. 怎么快速定位应用的热点&#x…

TensorFlow详细配置

Anaconda 的安装路径配置系统环境变量 1 windows path配置 2 conda info C:\Users\Administrator>conda info active environment : None user config file : C:\Users\Administrator\.condarc populated config files : C:\Users\Administrator\.condarc …

【含文档】基于Springboot+Vue的高校科研信息管理系统(含源码+数据库+lw)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 系统定…

mybatis之入门(详细介绍)

1.Mybatis简介 MyBatis 是一个开源、轻量级的数据持久化框架,是 JDBC 和 Hibernate 的替代方案。MyBatis 内部封装了 JDBC,简化了加载驱动、创建连接、创建 statement 等繁杂的过程,开发者只需要关注 SQL 语句本身。 1.1.什么是Mybatis MyB…

VSCODE 导入cubeide工程

1.下载vscode及插件STM32 VS Code Ectersion 版本号1.0.0,之后这个有导入功能。 2.等待自动安装对应插件,提示缺少什么就补什么 3.在左侧出现stm32图标。点击Import a local project导入本地项目。 4.报错 [{"resource": "/f:V11/cmak…