【人工智能】knn算法

目录

一、对[1.0,1.1],[1.0,1.0],[0,0],[0,0.1],[0.1,0.1],[1.1,1.1]六个点用knn进行聚类,并显示。

1. 未调用KNN算法前,绿色为未知分类

2. 调用KNN算法

3. 运行结果

二、使用knn算法分类手写数字文件

1. 第一个temp的含义

2. 第二个temp的含义

3. 第三个temp的含义

4. 第四个temp的含义

5. argsort

三、使用knn算法分类约会数据,选择不同的k值,看看正确率有什么变化

1. 常用的特征归一化方法MinMaxScaler 实现公式如下

2. 将txt文件转换为特征矩阵存储起来

3. 用KNN算法计算正确率

四、K均值聚类算法分类80个二维数据

1. means聚类算法的工作流程

五、模拟第一题,对ppt中P3页的电影例子进行分类并显示分类结果。标签中不再显示坐标,而是显示电影名字。

1. 处理数据

2. 未分类之前

3. 用KNN算法分类之后


一、对[1.0,1.1],[1.0,1.0],[0,0],[0,0.1],[0.1,0.1],[1.1,1.1]六个点用knn进行聚类,并显示。

[[1.0,1.1],[1.0,1.0],[0,0],[0,0.1],[0.1,0.1],[1.1,1.1]]为样本集,标签集为:[0,0,1,1,2,2]

前两个元素[1.0,1.1],[1.0,1.0]为一类,中间两个元素[0,0],[0,0.1]为另一类,[0.1,0.1],[1.1,1.1]为待分类的样本。

在”简单kNN.ipynb”最后一个单元格基础上,将绿色为分类样本通过调用knn算法实现分类并按类别显示.

1. 未调用KNN算法前,绿色为未知分类

2. 调用KNN算法

3. 运行结果

二、使用knn算法分类手写数字文件

knn算法中的几个temp分别表示什么意义,temp.shape是否有变化分别对应着什么?

argsort是什么,记录的数据对应着什么?

1. 第一个temp的含义

矩阵相减的时候,由于_x是一个1*1024的矩阵,而x是一个1934*1024的矩阵,_x的维度会变成1934*1024,每行都是一样的,再减掉x矩阵。

其实就是求所求点与各点之间的坐标差,x0-x, y0-y,.....

Temp.shape = (1934 , 1024)

2. 第二个temp的含义

求平方,(x0-x)^2,(y0-y)^2,.......

Temp.shape = (1934 , 1024)

3. 第三个temp的含义

矩阵变为1934行1列,(x0-x)^2 +(y0-y)^2+.......

Temp.shape = (1934 , 1)

4. 第四个temp的含义

给矩阵每个数开根,算出所求点与已有各点的距离

Sqrt(x0-x)^2 +(y0-y)^2+.......)

Temp.shape = (1934 , 1)

5. argsort

将列表中的元素进行排序,返回列表索引号为0的值表示原列表中最小的数字的索引号,依此类推。例如temp列表为[0. 0.1 1.48660687 1.41421356],则temp.argsort()返回值为[0 1 3 2] 第一个元素值为0,表示temp中最小的元素所在索引号为0,第二个元素值为1,表示temp中第二小的元素所在索引号为1,第三小元素所在索引号为3,第四小元素所在索引号为2

三、使用knn算法分类约会数据,选择不同的k值,看看正确率有什么变化

1. 常用的特征归一化方法MinMaxScaler 实现公式如下

X_std = (X - X.min(axis=0)) / (X.max(axis=0) - X.min(axis=0))

X_scaled = X_std * (max - min) + min

2. 将txt文件转换为特征矩阵存储起来

3. 用KNN算法计算正确率

测试1-200之间的k值的准确率:

结果如下:

可以发现不是线性关系,随着数字变大,准确率也会下降。

四、K均值聚类算法分类80个二维数据

1. means聚类算法的工作流程

(1)首先随机选择初心质心,其中K是用户指定的参数(需要分成几类)

(2)将数据集中的每个点指派到最近的质心,而指派到一个质心的点就为一个

(3)根据指派到簇的点,将每个簇的质心更新为该簇所有点的平均值

(4)重复指派和更新步骤,直到簇不发生变化,或者等价的,直到质心不发生变化

五、模拟第一题,对ppt中P3页的电影例子进行分类并显示分类结果。标签中不再显示坐标,而是显示电影名字。

1. 处理数据

2. 未分类之前

3. 用KNN算法分类之后

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

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

相关文章

记录一次服务器一直向外发送大量请求(挖矿病毒)排除

1、症状 服务器一直向外发送SYN请求,并且无法通过netstat -anplt获取到对应的PID服务器CPU一直很低,通过PS查找不到异常程序安装NetHogs,工具卡死,无法显示是那个程序发起的请求(因为请求都是SYN_SEND,并且…

【ARM】使用JasperGold和Cadence IFV科普

#工作记录# 原本希望使用CCI自带的验证脚本来验证修改过后的address map decoder,但是发现需要使用JasperGold或者Cadence家的IFV的工具,我们公司没有,只能搜搜资料做一下科普了解,希望以后能用到吧。这个虽然跟ARM没啥关系不过在…

基于神经网络的分类和预测

基于神经网络的分类和预测 一、基础知识(一)引言(二)神经网络的基本概念(1)神经网络(2)神经元(3)常用的激活函数(非线性映射函数)&…

【代码随想录算法训练营第六十六天|卡码网97.小明逛公园、127.骑士的攻击】

文章目录 97.小明逛公园127.骑士的攻击 97.小明逛公园 之前的题目都是只有一个出发点和到达点,这道题是有多个起始对,用之前的算法把每一对结果算出来也是可行的,在这里使用Floyd算法。 本质上是一种动态规划,dp数组dp[i][j][k]中…

webpack terser-webpack-plugin 不打包注释及log

踩坑记录:注意 terser-webpack-plugin": "^4.2.3" 对应着webpack4及版本一下的,5点多版本的对应webpack5,版本不对会报ERROR TypeError: Cannot read property javascript of undefined 1.安装三方包 npm install terser-web…

【Linux网络】IP协议{初识/报头/分片/网段划分/子网掩码/私网公网IP/认识网络世界/路由表}

文章目录 1.入门了解2.认识报头3.认识网段4.路由跳转相关指令路由 该文诸多理解参考文章:好文! 1.入门了解 用户需求:将我的数据可靠的跨网络从A主机送到B主机 传输层TCP:由各种方法(流量控制/超时重传/滑动窗口/拥塞…

RAG 召回提升相关方案分享

最近大半年时间都在做RAG的工作,分享一点个人探索的方向。和提升的方案。文章中会分享是如何做的,以及对应的效果。 核心问题 如何提升RAG的效果? 如何提升召回的准确率。 写在前边:已验证的方案 方案 优化方向 效果 备注 3.1…

iPad锁屏密码忘记怎么办?有什么方法可以解锁?

当我们在日常使用iPad时,偶尔可能会遇到忘记锁屏密码的尴尬情况。这时,不必过于担心,因为有多种方法可以帮助您解锁iPad。接下来,小编将为您详细介绍这些解决方案。 一、使用iCloud的“查找我的iPhone”功能 如果你曾经启用了“查…

07-7.5.3 处理冲突的方法

👋 Hi, I’m Beast Cheng 👀 I’m interested in photography, hiking, landscape… 🌱 I’m currently learning python, javascript, kotlin… 📫 How to reach me --> 458290771qq.com 喜欢《数据结构》部分笔记的小伙伴可以…

Biz-Logger操作日志框架

文章目录 前言一、设计 / 对比 / 实现1.1 注解1.1.1 EnableBizLogger1.1.2 BizLogger1.1.3 BizLoggerComponent1.1.4 BizLoggerFunction 1.2 自定义函数1.2.1 IBizLoggerFunctionRegistrar1.2.2 AbstractBizLoggerFunctionResolver 1.3 日志上下文1.3.1 BizLoggerContext 1.4 S…

SSM学习6:Spring事务

简介 事务作用:在数据层保障一系列的数据库操作同成功同失败Spring事务作用:在数据层或业务层保障一系列的数据库操作同成功同失败 public interface PlatformTransactionManager{void commit(TransactionStatus status) throws TransactionStatus ;vo…

Elasticsearch 角色和权限管理

在大数据和云计算日益普及的今天,Elasticsearch 作为一款强大的开源搜索引擎和数据分析引擎,被广泛应用于日志分析、全文搜索、实时监控等领域。随着业务规模的扩大和数据敏感性的增加,对 Elasticsearch 的访问控制和权限管理也变得越来越重要…

【人工智能】Transformers Pipeline概述

欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏: 欢迎关注微信公众号:野老杂谈 V: LAF20151116 进行更多交流学习 ⭐️ 全网最全IT互联网公司面试宝典:收集整理全网各大IT互联网公司技术、项目、HR面试真…

【网络文明】关注网络安全

在这个数字化时代,互联网已成为我们生活中不可或缺的一部分,它极大地便利了我们的学习、工作、娱乐乃至日常生活。然而,随着网络空间的日益扩大,网络安全问题也日益凸显,成为了一个不可忽视的全球性挑战。认识到网络安…

Python数据分析案例52——基于SSA-LSTM的风速预测(麻雀优化)

案例背景 又要开始更新时间序列水论文的系列的方法了,前面基于各种不同神经网络层,还有注意力机制做了一些缝合模型。 其实论文里面用的多的可能是优化算法和模态分解,这两个我还没出专门的例子,这几天正好出一个优化算法的例子来…

uboot学习:(四)顶层makefile分析

目录 版本号 MAKEFLAGS变量 命令输出 静默输出 设置编译结果输出目录 代码检查(一般不需要使用,了解就行) 模块编译(一般不用uboot编译模块,了解就行) 获取主机架构和系统 设置目标架构、交叉编译…

隔离驱动-视频课笔记

目录 1、需要隔离的原因 1.2、四种常用的隔离方案 2、脉冲变压器隔离 2.1、脉冲变压器的工作原理 2.2、泄放电阻对开关电路的影响 2.3、本课小结 3、光耦隔离驱动 3.1、光耦隔离驱动原理 3.2、光耦隔离驱动的电源进行分析 3.3、本课小结 4、自举升压驱动 4.1…

JS【详解】对象(含对象的存储原理,对象的常用操作,判断对象是否为空对象,对象的深拷贝,对象的创建、遍历、合并、拷贝等)

简介 任何事物都可以看作一个对象,用属性描述它的特征,用方法描述它的行为,如下方代码所示: let obj {name: "朝阳",sayHi: function () {console.log("你好!");}, }; typeOf obj // object变量…

大数据开发中的元数据:从基础到高级应用的全面指南

在大数据开发中,元数据(Metadata)是指描述数据的数据。元数据可以提供有关数据结构、数据类型、数据约束和数据关系的重要信息。合理利用元数据可以显著提高数据建模和管理的效率。本文将详细介绍如何根据元数据建表,并提供一些代…

2024年公司电脑屏幕监控软件推荐|6款好用的屏幕监控软件盘点!

在当今的商业环境中,确保员工的工作效率和数据安全是每个企业管理者的重要任务。屏幕监控软件通过实时监控和记录员工的电脑活动,帮助企业有效地管理和优化工作流程。 1.固信软件 固信软件https://www.gooxion.com/ 主要特点: 实时屏幕监控…