python学智能算法(七)|KNN邻近算法
【1】引言
前述学习进程中,已经了解了一些非常经典的智能算法,相关文章包括且不限于:
python学智能算法(三)|模拟退火算法:深层分析_模拟退火 动画演示-CSDN博客
python学智能算法(四)|遗传算法:原理认识和极大值分析_遗传算法和模拟退火时间复杂度-CSDN博客
python学智能算法(五)|差分进化算法:原理认识和极小值分析-CSDN博客
python学智能算法(六)|神经网络算法:BP神经网络算法入门-CSDN博客
这些算法一定程度上都非常关注自变量和因变量的内在关系,今天换一个方向,不区分自变量因变量,或者就只有因变量。因为只有一个,叫它变量也能完整描述。现在的主要关注点是:变量和变量之间的位置关系。按这种关注方式运行的智能算法,就是KNN算法。
【2】原理解释
如果一个样本在特征空间中的K个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。
除了看CSDN的博文,也可以到以下网址学习:
第2章 k-近邻算法 - 《机器学习实战(Machine Learning in Action)》 - 书栈网 · BookStack
What is k-Nearest Neighbor (kNN)? | A Comprehensive k-Nearest Neighbor Guide | Elastic
以及未来会反复用到的scikit-learn的官网学习:
KNNImputer — scikit-learn 1.6.1 documentation
【3】代码测试
理解一个算法的最简单途径就是用代码跑一次。
【3.1】准备工作
首先引入必要模块:
import numpy as np #引入numpy模块
import matplotlib.pyplot as plt #引入matplotlib模块
from sklearn.datasets import load_iris #引入sklearn模块
这里和以前不同的是,在数字处理模块numpy和画图模块matplotlib之外,新增加了一个sklearn模块。
sklearn模块是一个免费的数据库,里面存储了可以公开使用的数据。
学习sklearn模块就直接去官网:Examples — scikit-learn 1.6.1 documentationr
为了实现对sklearn模块中数据的调用,还需要处理一下:
# 加载鸢尾花数据集
# 从免费的sklearn库中存储的鸢(yuān)尾花数据集
iris = load_iris()
# X存储了iris的特征数据
# X的形状是(150行,4列)的矩阵数组
# 意味着有 150 个样本,每个样本有 4 个特征,分别是花萼长度、花萼宽度、花瓣长度和花瓣宽度
# 这些特征是用于描述每个鸢尾花样本的属性,是模型进行学习和预测的依据
X = iris.data # 特征数据
# y中存储了150个数,相当于150个标签
y = iris.target # 标签数据
X取到的鸢尾花统计数据是固定的150行4列矩阵;4列代表了四个详细特征,可以理解为每一种鸢尾花样本都有4个特征,150行数据代表150种鸢尾花样本,y的值就是150。
【3.2】主函数
为了实现对整体算法的掌握,推荐的方式是先读主函数,然后再去读子函数。主函数会告知算法会调用哪些子函数,通过对主函数结构的阅读,会理解整个算法的原理。
# 设置 k 值
k = 5
# 进行预测
y_pred = knn_predict(X_train, y_train, X_test, k)
主函数先设置了k=5,代表取最邻近的5个样本量一起归类,然后预测数据y_pred直接调用了子函数knn_predict()。
【3.3】子函数
【3.3.1】knn_predict()
在主函数的指引下,直奔子函数knn_predict():
# 定义 KNN 分类器
def knn_predict(X_train, y_train, X_test, k):y_pred = []for test_sample in X_test:# 计算测试样本与所有训练样本的欧氏距离# test_sample 是一个一维数组(形状为 (n_features,))从数学上看是一个一行n_features的行向量# X_train 是一个(形状为 (n_train_samples, n_features))数组,从数学上看X_train的每一行也是一个一行n_features的行向量# X_train的每一行都会和test_sample作差,作差过程是同一位置元素相减# X_train 是一个(形状为 (n_train_samples, n_features))数组,所以会有n_train_samples行计算结果# 作差得到的数组形状为 (n_train_samples, n_features)# axis=1的意思是,在作差得到的数组内,每一个行内部求和,一共会得到n_train_samples行1列的数据distances = np.sqrt(np.sum((X_train - test_sample) ** 2, axis=1))# 获取距离最近的 k 个样本的索引# np.argsort会对distances进行从小到大的排序,但是排序后输出的数据原来对应的位置索引# 由于数据从小到大排序,输出的位置索引成为了输出矩阵数据,这时候对输出矩阵取出前k个# k_indices就是获得最小距离中的前k个距离对应的位置索引k_indices = np.argsort(distances)[:k]# 获取这 k 个样本的标签# 将k_indices 带回y_train,用位置索引的形式,找出距离test_sample最近的k行数据k_nearest_labels = y_train[k_indices]# 统计每个标签出现的次数# k_nearest_labels中的所有数据会被逐一统计归类# 输出unique_labels代表一共有unique_labels个不同的数据,每个数据出现的次数为countsunique_labels, counts = np.unique(k_nearest_labels, return_counts=True)# 选择出现次数最多的标签作为预测结果predicted_label = unique_labels[np.argmax(counts)]# y_pred是个空矩阵,往里面叠加出现次数最多的标签y_pred.append(predicted_label)return np.array(y_pred)
首先会看到除了定义一个空列表y_pred=[],剩下的是一个大的for循环。
在for循环里面:
第一步,x_train-test_sample作差后平方求和,作差过程是同一位置相减,求和是按照行的形式,把一行内部的所有列加在一起,所以最后会获得和x_train行数一样多的一个单列数组,这个数组还要再开方一次才会赋值给distance。distance是按照数学里面欧几里得距离求解的公式定义的。
第二步,调用np.argsort()函数对所有的distance元素从小到大排个序,这里通过索引的形式调用了k,意思是只选用前k个元素,也就是距离最近的k个元素。但此时输出的是前k个元素的位置索引k_indices。
第三步,通过k_indices,可以直接访问到y_train,因为x_train和y_train在行数上其实一一对应。此时获得的最近的k个元素都存储在k_nearest_labels中。
第四步,调用np.unique()函数,对存储最近的k个元素k_nearest_labels进行分类,因为k个元素可能有一些是相等的,所以会合并一些相等元素,获得独特的unique_labels和具体的数量counts。
第五步,在所有counts中,调用np.argmax()函数分析出最大的counts,找出这个counts对应的具体unique_lables赋值给predicted_lablel。这个predicted_lablel指向次轮距离计算中k个最近值出现频次最高的元素。
第六步,将predicted_lablel存储进y_pred列表。
重复上述六步,直至所有的x_train都通过计算。
虽然在这个函数里可以很直白理解knn运算过程,但几个参数的来源还需进一步追溯来加深理解。这就需要学习train_test_split()函数。
【3.3.2】train_test_split()
# 划分数据集为训练集和测试集
def train_test_split(X, y, test_size=0.3, random_state=42):# 设置随机数的种子目的是保证每次生成的随机数一致np.random.seed(random_state)# len(X)=150# indices是[0,len(X)-1]中的每一个整数组成的数组indices = np.arange(len(X))# 调用np.random.shuffle()函数将indices顺序随机打乱np.random.shuffle(indices)# test_size在函数的输入参数中提前给出,此处和len(X)相乘后取整# test_size在经int()函数取正时,采用的是向下1取正方式# test_size本身要比indices小test_size = int(len(X) * test_size)# test_indices按照索引的形式,只取出indices数组中索引位置从0到test_size-1的部分test_indices = indices[:test_size]# train_indices按照索引的形式,取出indices数组中索引位置从test_size开始到末尾所有的数据train_indices = indices[test_size:]# X_train按照索引的形式,取出X数组中train_indices所包含数据对应的行数# train_indices是indices数组中索引位置从test_size开始到末尾所有的数据# X_train取出X数组中行数=【从test_size开始到末尾所有的数据】的行X_train = X[train_indices]# y_train按照索引的形式,取出y数组中train_indices所包含数据对应的行数# train_indices是indices数组中索引位置从test_size开始到末尾所有的数据# y_train取出X数组中行数=【从test_size开始到末尾所有的数据】的行y_train = y[train_indices]# X_test按照索引的形式,取出X数组中test_indices所包含数据对应的行数# test_indices是indices数组中索引位置从0到test_size所有的数据# X_train取出X数组中行数=【从0到test_size所有的数据】的行X_test = X[test_indices]# y_test按照索引的形式,取出y数组中test_indices所包含数据对应的行数# test_indices是indices数组中索引位置从0到test_size所有的数据# y_test取出X数组中行数=【从0到test_size所有的数据】的行y_test = y[test_indices]return X_train, X_test, y_train, y_testX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
train_test_split()函数直接读取了X,y,还增加了参数test_size=0.3以及random_state=42。test_size是用来划定X和y的测试集大小;random_state=42则是在机器学习中随机数种子的一个习惯性定义,传说和电影有关,大家其实可以随意改动这个数字。
在生成随机数之后,用indices直接取得了X的所有行数索引。
然后调用np.random.shuffle()函数对indices进行了随机换序,这样做的目的其实是让用于训练的数据集对整体样本量具有代表性。
之后定义的test_size调用了test_size=0.3来设定一个较小的位置索引范围,test_indices则提取了前test_size行数据。由于之前已经打乱了indices的顺序,所以前test_size行数据对整体样本量具有代表性。
剩余的数据则由train_indices存储。
具体的:
X_test存储了X的前test_size行数据;
y_test存储了y的前test_size行数据;
X_train存储了X的从第test_size行开始到结束的所有数据;
y_train存储了y的从第test_size行开始到结束的所有数据。
train_test_split()将X和y分解为测试部分和训练部分。
【3.4】预测
在主函数的运行过程中,因为x_test是参考位置点,所以经过计算获得的训练数据y_pred数量和x_test一样多,自然也和y_test一样多。
所以,直接调用np.mean()函数计算y_pred == y_test,就可以获得计算的准确率。
【3.5】可视化
在预测部分,实际上所有计算过程已经结束。运行代码在控制台也会获得输出:
NN 模型的准确率: 1.00
可见KNN算法准确识别出了鸢尾花的类型。
为了进一步图片展示,选取了鸢尾花的两个特征来画散点图,实际上这话总选择是随机的,只要选择两个特征可以画散点图即可。同一类别是根据欧氏距离来的,所以用欧氏距离来控制颜色,就可以获得鸢尾花的分类效果:
# 可视化预测结果(这里只选取前两个特征进行可视化)
plt.figure(figsize=(10, 6))
plt.scatter(X_test[:, 0], X_test[:, 1], c=y_pred, cmap='viridis', edgecolor='k', s=50)
plt.title('KNN Classification Results')
plt.xlabel('Sepal length')
plt.ylabel('Sepal width')
plt.show()
运行代码获得的图像为:
图1 KNN运行效果
【4】细节说明
tes-size和k都是随机定义的数据,可以自由修改测试KNN算法运行效果。
【5】总结
学习了KNN算法的基本原理,使用python通过KNN算法实现了对鸢尾花的分类。
相关文章:
python学智能算法(七)|KNN邻近算法
【1】引言 前述学习进程中,已经了解了一些非常经典的智能算法,相关文章包括且不限于: python学智能算法(三)|模拟退火算法:深层分析_模拟退火 动画演示-CSDN博客 python学智能算法(四&#x…...
LabVIEW闭环控制系统硬件选型与实时性能
在LabVIEW闭环控制系统的开发中,硬件选型直接影响系统的实时性、精度与稳定性。需综合考虑数据采集速度(采样率、接口带宽)、计算延迟(算法复杂度、处理器性能)、输出响应时间(执行器延迟、控制周期&#x…...
JavaScript(Web APIs)
这个阶段两天也能看完 目录 壹_DOM-获取元素 00、获取DOM元素(根据CS选择器来获取DOM元素) 01、修改元素内容 02、修改CSS 03、H5自定义属性 04、定时器 贰_DOM-事件基础 00、事件监听 01、事件类型 02、事件对象 03、环境对象 04、回调函数 叁_DOM-事…...
创建Electron35 + vue3 + electron-builder项目,有很过坑,记录过程
环境: node v20.18.0 npm 11.1.0 用到的所有依赖: "dependencies": {"core-js": "^3.8.3","vue": "^3.2.13","vue-router": "^4.5.0"},"devDependencies": {"ba…...
机器视觉条形光源应用解析
在机器视觉中,条形光源是一种常见的照明设备,通过其特殊的形状和光路设计,能够有效解决检测中的光照均匀性、反光抑制、对比度增强等问题。以下是关于条形光源的详细解析: 1. 条形光源的基本结构与类型 结构:由多个LED灯珠沿直线或弧形排列,通常封装在长条形外壳中,可单…...
苹果商店上架流程,app上架发布流程
苹果商店地址 https://appstoreconnect.apple.com/login 其他地址:开发 - Apple Developer 1.更新代码 将项目的代码更新到最新,更新成功后右下角会给出提示 2.打开模拟器 鼠标右键可以选择设备(Device) 3.测试运行 如下图可以看到已经识别到设备了,点击运行即可,运行到模…...
大数据技术在土地利用规划中的应用分析
大数据技术在土地利用规划中的应用分析 一、引言 土地利用规划是对一定区域内的土地开发、利用、整治和保护所作出的统筹安排与战略部署,对于实现土地资源的优化配置、保障社会经济的可持续发展具有关键意义。在当今数字化时代,大数据技术凭借其海量数据处理、高效信息挖掘等…...
【Axure资料】110套优质可视化大屏模板+图表组件+科技感元件等
本作品集包含110套高保真可视化大屏模板,以及丰富的图表组件和科技感元件,旨在满足各行业对数据可视化展示的需求。所有模板和组件均基于Axure RP 9软件设计,确保高质量的交互体验和视觉效果。 作品类型:Axure原型模板 兼容版本&…...
TCP-IP协议通信模型
一、TCP/IP协议概述 TCP/IP协议即传输控制协议/互联网协议,也被称为网络通讯协议。它包含了一系列构成互联网基础的网络协议,是Internet的核心协议。 二、TCP/IP协议通信模型 文件中提到了TCP/IP协议通信模型,但未详细展开其具体层次结构和…...
VMware下载安装Ubuntu详解
一、Linux简介 1、不同领域的主流操作系统 桌面操作系统服务器操作系统移动设备操作系统嵌入式操作系统 1.1、桌面操作系统 Windows(用户数量最多)Mac OS(苹果电脑操作系统)Linux(用户数量少) 1.2、服…...
wpf label 内容绑定界面不显示
<Label Content"{Binding LabelText}" /> ... public string LabelText {get;set;}后端改变值后,界面内容并不显示 查看资料后改动如下 private string _labelText; public string LabelText{get { return _labelText; }set { _labelText value; OnPropertyCh…...
VC++ 获取目的IP的路由
GetBestRoute 函数获取到目的IP的最佳匹配路由。 第一个参数为:destination(目的IP) 第二个参数为:source(源IP) 通常不需要指定第二个source,这个一般用来匹配具体某一个网卡接口路由的&…...
海外跨境专线是什么?如何搭建海外跨境专线?
网络跨境专线——这一名词你听说过吗?如果你在跨境经济、国际贸易或网络通信领域工作,那它一定是你日常工作的一个重要话题。今天我们就来聊聊网络跨境专线的概念和搭建方法,希望能够为你在这一领域的探索提供一些帮助。 一、什么是网络跨境…...
【神经网络】python实现神经网络(二)——正向推理的模拟演练
一.神经网络假设 在开始讲解之前,首先我们假设有这样一套神经网络,一共有三层: 其中,关于神经网络的权重、偏置的符号定义如下(如果不知道什么是权重和偏置,可以参考我之前写过的一篇文章:【机器学习】机器学习是什么意思): 以下文章将沿用以上这个设…...
【从零开始学习计算机科学】操作系统(八)IO管理
【从零开始学习计算机科学】操作系统(八)IO管理 IO管理IO设备IO设备的分类IO控制器设备控制器的IO端口编址设备数据传输控制方法缓冲技术缓冲区的分类常用的缓冲技术虚拟设备IO设备的分配IO相关的软件的设计IO管理 IO设备 IO设备就是可以将数据输入到计算机,或者可以接收计…...
MySQL的安装及配置
一.以安装包方式下载 1.进入MySQL官网,下载安装包 官网链接:https://downloads.mysql.com/archives/installer/ 2.安装MySQL 二.压缩包方式下载 下载位置:mysql下载位置 解压缩后位置:D:\mysql-8.0.15-winx64 在主目录下复制…...
macOS 终端优化
macOS 安装、优化、还原、升级 Oh My Zsh 完全指南 🚀 Oh My Zsh 是 macOS 终端增强的利器,它能提供强大的自动补全、主题定制和插件支持,让你的终端更高效、更炫酷。本文将全面介绍 如何安装、优化、还原、重新安装和升级 Oh My Zsh&#x…...
Java三种注释方式
Java有三种注释:单行注释(//,从//到行尾被忽略,用于简单说明),多行注释(/* */,可包含多行内容,用于解释逻辑或禁用代码),文档注释(/**…...
Java 无 GUI 浏览器:HtmlUnit 入门及实战 [特殊字符]
文章目录 HtmlUnit 入门功能简介入门案例更多功能HtmlUnit 实战需求页面分析编码参考⭐ 本文目标: HtmlUnit 框架入门HtmlUnit 框架实战:实现 HtmlUnit 访问 Web 页面,并实现 Web 页面按钮点击,同时获取到下载的文件。HtmlUnit 入门 🚀 官网:https://htmlunit.sourcefo…...
前端如何发布npm包
1. 初始化项目 确保你的项目已经初始化,并生成 package.json 文件。如果没有,运行以下命令: npm init -y 按照提示填写项目信息(如项目名称、版本、描述等),生成 package.json 文件。 2. 安装 Webpack 在项目目录下安装 Webpack 及其相关工具: npm install webpack…...
光谱相机检测肉类新鲜度的原理
光谱相机通过分析肉类样本在特定波长范围内的光谱反射特性,结合化学与生物指标的变化规律,实现对其新鲜度的无损检测。其核心原理可概括为以下方面: 一、光谱特征与物质成分的关联性 物质特异性吸收/反射 不同化学成分(如水分…...
【计算机网络】深入解析 HTTP 请求中的 header 类型:Cookie 的概念、特点和应用场景:登录和用户认证
网络原理— HTTP 请求“报头”(header) Cookie 是什么 HTTP报头中的Cookie,用大白话来说,就像你去餐厅吃饭时拿到的一张会员卡: 初次访问 (清除该网站的所有 Cookie 后重新访问该网站,效果相同): 当你第一次访问一个网…...
红队OPSEC(安全运营)个人总结
OPSEC又称:运营安全,是指在红队的视角下,蓝队对我方的威胁。 OPSEC漏洞的五个流程: 关键信息识别:指红队的关键信息不泄露,包括但不限于红队的攻击意图,能力,人员,活动及…...
《Python基础教程》附录B笔记:Python参考手册
《Python基础教程》第1章笔记👉https://blog.csdn.net/holeer/article/details/143052930 附录B Python参考手册 Python标准文档是完整的参考手册。本附录只是一个便利的速查表,当你开始使用Python进行编程后,它可帮助你唤醒记忆。 B.1 表…...
GWO-CNN-BiLSTM-Attention多变量多步时间序列预测 | Matlab实现灰狼算法优化卷积双向长短期记忆融合注意力机制
GWO-CNN-BiLSTM-Attention多变量多步时间序列预测 | Matlab实现灰狼算法优化卷积双向长短期记忆融合注意力机制 目录 GWO-CNN-BiLSTM-Attention多变量多步时间序列预测 | Matlab实现灰狼算法优化卷积双向长短期记忆融合注意力机制预测效果基本介绍程序设计参考资料 预测效果 基…...
Python实例:PyMuPDF实现PDF翻译,英文翻译为中文,并按段落创建中文PDF
基于PyMuPDF与百度翻译的PDF翻译处理系统开发:中文乱码解决方案与自动化排版实践 一 、功能预览:将英文翻译为中文后创建的PDF 二、完整代码 from reportlab.lib.pagesizes import letter from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle...
【数据结构】初识集合框架及背后的数据结构(简单了解)
目录 前言 如何学好数据结构 1. 什么是集合框架 2. 集合框架的重要性 3. 背后所涉及的数据结构以及算法 3.1 什么是数据结构 3.2 容器背后对应的数据结构 3.3 相关java知识 3.4 什么是算法 3.5 基本关系说明(重要,简单了解) 前言 …...
Go语言集成DeepSeek API和GoFly框架文本编辑器实现流式输出和对话(GoFly快速开发框架)
说明 本文是GoFly快速开发框架集成Go语言调用 DeepSeek API 插件,实现流式输出和对话功能。为了方便实现更多业务功能我们在Go服务端调用AI即DeepSeek接口,处理好业务后再用Gin框架实现流失流式输出到前端,前端使用fetch请求接收到流式的mar…...
ClickHouse 数据倾斜实战:案例分析与优化技巧
目录 ClickHouse 数据倾斜问题总结与优化措施 1. 分片键选得不好,埋下隐患 2. 数据本身就“偏心” 3. 查询习惯加剧失衡 4. 硬件差异“雪上加霜” 表现形式一览 优化措施:从根源到实践 优化分片键:让数据均匀“落户” 数据预处理:写入前先“理顺” 查询优化:别让…...
数据结构(蓝桥杯常考点)
数据结构 前言:这个是针对于蓝桥杯竞赛常考的数据结构内容,基础算法比如高精度这些会在下期给大家总结 数据结构 竞赛中,时间复杂度不能超过10的7次方(1秒)到10的8次方(2秒) 空间限制&#x…...
Flink之水印(watermark)的补充理解
水印(Watermark):用于事件时间处理,标记数据流的进度,解决乱序和延迟问题,触发窗口计算 一、Flink 水印的作用 处理乱序事件 水印(Watermark)是 Flink 用于处理事件时间&…...
革新音频技术,引领智能录音新时代—广州唯创电子WT2605芯片深度解析
在万物互联的智能时代,音频处理技术作为人机交互的核心载体,正不断推动消费电子、物联网设备及行业工具的升级迭代。广州唯创电子凭借多年深耕音频芯片领域的经验,推出了一款集多功能、高集成度与灵活扩展性于一体的音频处理芯片——WT2605。…...
jumpserver 网络安全 网络安全 authenticity
1.1 计算机安全的概念 1.1.1 计算机安全最核心的三个关键目标(CIA): 保密性(Confidentiality)--①数据保密性(确保隐私或秘密不向非授权者泄密或使用); ②隐私性(确保个人能够控制或确定其自身相关的信息)…...
文件上传漏洞(条件竞争)
[TCO]catalog 文件上传漏洞简介 文件上传漏洞是一种常见的 Web 安全漏洞,攻击者可以通过该漏洞上传恶意文件,如 WebShell、木马或其他恶意代码脚本,以实现远程控制服务器、窃取数据或发起进一步攻击。这类漏洞通常源于 Web 应用在文件上传功…...
向量数据库的选择与应用:AI工程实践
一、向量数据库:AI时代的核心基础设施 1.1 从关系型到向量型:数据库的技术演进 传统数据库与向量数据库的对比: 特性关系型数据库向量数据库数据模型结构化表格高维向量元数据核心操作CRUD相似性搜索典型场景交易系统推荐系统/图像检索性能…...
文件上传复现
1、什么是文件上传漏洞? 答:文件上传漏洞是指攻击者通过上传恶意文件到服务器、从而执行任意代码、获取系统权限或者破坏系统安全的漏洞、常见于允许用户上传文件的Web应用程序中。 2. 文件上传漏洞形成原因 未验证文件类型:未对上传文件的…...
数据结构全解析:从线性到非线性,优缺点与应用场景深度剖析
1. 线性数据结构 (1)数组(Array)(适合静态数据) 优点: 随机访问高效:通过索引可以直接访问元素,时间复杂度为 O(1)。 内存连续:数组在内存中是连续存储的&…...
JAVA面试_进阶部分_Ibatis与Hibernate的区别
一、 hibernate与ibatis之间的比较: hibernate 是当前最流行的o/r mapping框架,它出身于sf.NET,现在已经成为jboss的一部分了。 ibatis 是另外一种优秀的o/r mapping框架,目前属于apache的一个子项目了。 相对hibernate“o/r”而…...
页面刷新时 选择值或输入值不丢失
视图完整代码 <body><h1>查询员工信息</h1><form action"SearchForm" style"text-align: center;">所属部门:<select name"ddlDept" id"ddlDept"><option value"">--请选择…...
通用人工智能(AGI):定义、挑战与未来展望
文章目录 引言AGI的定义与特征实现AGI的挑战AGI与ASI的区别AGI的潜在影响结语 引言 通用人工智能(Artificial General Intelligence, AGI)是人工智能领域的终极目标,代表着一种能够执行人类所有智力任务的系统。与当前的任务导向型人工智能&…...
考研数学复习之定积分定义求解数列极限(超详细教程)
定积分求解数列极限是一种将数列极限问题转化为定积分问题进行求解的方法。这种方法通常适用于那些和式数列极限,其主要思路是将数列的项看作是某个函数在某一点或某一段区间上的取值或某种形式的和,然后利用定积分的性质和计算方法,来求解这类数列的极限。 定积分定义 设函数在…...
【redis】应用场景:共享会话和手机验证码
文章目录 共享会话实现思路 手机验证码实现思路伪代码实现生成验证码验证验证码 共享会话 实现思路 如果每个应用服务器,维护自己的会话数据,此时彼此之间胡共享,用户请求访问到不同的服务器上,就可能会出现一些不能正确处理的情…...
vscode带参数调试
转载:【深度学习环境】VSCode 调试python 带args参数的程序_vscode args-CSDN博客 ctrlshiftf全局搜索...
音视频软件工程师面试题
一、基础知识 编解码相关 H.264 和 H.265(HEVC)的主要区别是什么?视频编解码的基本流程是什么?关键技术有哪些?音频编解码(如 AAC、MP3、Opus)的区别和应用场景?什么是 B 帧、P 帧、I 帧?它们的作用是什么? 流媒体协议RTMP、HTTP-FLV、HLS、WebRTC 的区别和应用场景…...
mac用docker跑sql server
网上的各个文章跑下来都有一些问题,记录一下我成功跑起来的过程。 省略Docker安装 修改docker源: {"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"experimental"…...
【技海登峰】Kafka漫谈系列(八)Controller:Zookeeper模式与KRaft模式
【技海登峰】Kafka漫谈系列(八)Controller:Zookeeper模式与KRaft模式 在上述学习过程中,我们知道完整的Kafka集群架构中包含了Broker、Topic、Partition、Replica、Producer、Consumer等众多组件,它们之间的关系又非常复杂:比如Topic由多个Partition组成、Partition又包含…...
c# txt文档的实时显示,用来查看发送接收指令
通讯历史按钮 private void uiButton1_Click(object sender, EventArgs e){try{logf new logF();logf.Show();}catch (Exception){throw;} }主页面关闭函数(点击保存就为true true就不删除) private void page1_FormClosed(object sender, FormClos…...
LabVIEW变频器谐波分析系统
随着工业自动化的发展,变频器在电力、机械等领域的应用日益广泛,但谐波问题直接影响系统效率与稳定性。传统谐波检测设备(如Norma5000)精度虽高,但价格昂贵且操作复杂,难以适应现场快速检测需求。本项目基于…...
搜广推校招面经四十三
快手主站推荐算法 一、因果推荐和偏差消除在推荐系统中的应用 1.1. 因果推荐 因果推荐(Causal Recommendation)是指利用因果推断的方法来理解和优化推荐系统的行为。不同于传统的基于关联分析的推荐方法,因果推荐旨在揭示用户行为背后的真…...
Android打造易用的 WiFi 工具类:WifiUtils 封装实践
Android在全局范围内使用WifiUtils工具类,我们可以将其设计为一个单例,并通过Application类进行初始化。这样可以确保在整个应用程序中只有一个WifiUtils实例,并且可以在任何地方访问它。以下是实现全局使用的步骤和代码示例: 记…...