【集成学习】Bagging算法详解及代码实现
文章目录
- 1. Bagging集成学习算法
- 1.1 简介
- 1.2 基本步骤
- 1.3 Bagging优缺点
- 1.4 随机森林:Bagging的一个重要应用
- 1.5 总结
- 2. Python代码实现
- 3. 如何理解偏差与方差
- 3.1 偏差(Bias)
- 3.2 方差(Variance)
- 3.3 方差与偏差的权衡
- 3.4 举例说明
- 3.5 如何调整偏差和方差
- 3.6 偏差与方差的计算
- 4. Bagging是如何减少方差的?
集成学习(Ensemble Learning)是一种通过结合多个模型的预测结果来提高整体预测性能的技术。常见的集成学习框架有:Bagging、Boosting、Stacking。每种方法都有其独特的优势和适用场景,本文主要聚焦于介绍 Bagging 算法
1. Bagging集成学习算法
1.1 简介
Bagging
全称叫做 Bootstrap aggregating,通过训练多个相同类型的基学习器,并将他们的预测结果进行集成,从而提高模型整体性能的集成学习方法。Bagging的核心思想是通过并行训练多个基学习器,每个基学习器在训练集的不同子集上进行训练,最终通过这些基学习器的预测结果进行平均(回归任务)或投票(分类任务)得到最终预测结果。
Bagging基本特点如下:
- 训练n个模型,每个模型在不同训练子集上独立训练
- 所有基学习器的预测结果进行平均(回归任务)或投票(分类任务)得到最终决策。
- 采用 bootstrap 采样(有放回采样)从原始数据集中随机抽取样本,通常每个基学习器都基于不同的数据子集进行训练。对于每个基学习器来说,大约有63%的样本会被重复采样到,而剩余的样本则可用作模型的验证集。
1.2 基本步骤
数据采样:
从原始数据中通过自助法随即有放回的抽取多个子集,每个子集的大小与原始数据相同。由于是有放回的抽样,所以每个子集可能包含重复的数据点,而一些数据点可能未被抽取训练多个基学习器:
使用不同的子集训练多个基学习器。常见的基学习器是决策树,但也通常可以是其它模型算法集成预测:
对于分类问题,通过投票的方式决定最终分类结果,对于回归问题,则通常通过取平均的方式得到最终的预测结果
1.3 Bagging优缺点
优点:
降低模型的方差
: 通过训练多个基学习器,Bagging能够有效减少模型的方差,特别是在高方差模型(如决策树)上尤为有效。通过集成多个基学习器,能够平滑预测结果,从而提高模型的稳定性,减少过拟合并行化
:Bagging中的每个基学习器都可以独立训练,因而具有很好的并行化特性。可以充分利用多核处理器和分布式计算平台,显著加快训练过程使用性强
:Bagging方法对数据的异常值和噪声具有较好的鲁棒性。由于每个基学习器只依赖于部分数据,因此个别样本的噪声不会对最终结果产生过大影响
缺点:
- 无法减少模型的偏差: 虽然Bagging能够减少方差,但对于已经有较高偏差的模型(如线性模型),Bagging无法显著提升性能,可能不会有效提高模型的整体准确性。
1.4 随机森林:Bagging的一个重要应用
随机森林(Random Forest)是Bagging算法的一个重要应用,它通过使用决策树作为基学习器并结合Bagging技术来构建集成模型。
- 随机森林不仅利用了Bagging的思想,还在每次进行bootstrap采样时,额外对特征进行随机选择。具体来说,在每个决策树的节点分裂时,随机选择一部分特征进行训练,这种做法进一步增强了不同决策树之间的差异性
- 通过引入特征的随机选择,随机森林避免了模型过度拟合,提高了决策树之间的多样性,从而增强了集成模型的性能和稳定性
1.5 总结
- 适用于高方差模型: Bagging非常适合用于那些本身方差较高、不稳定的模型(如决策树)。通过集成多个模型,能够减少过拟合,增强模型的鲁棒性
- 对噪声具有鲁棒性: 由于每个基学习器都在不同的数据子集上进行训练,因此Bagging能够有效地应对数据中的噪声和异常值
- 不适用于高偏差模型: 对于一些本身偏差较大的模型(如线性回归),Bagging无法显著提高其性能,因为它主要减少的是方差,而不改变偏差。
2. Python代码实现
class Bagging:def __init__(self, base_learner, n_learners):self.learners = [clone(base_learner) for _ in range(n_learners)]def fit(self, X, y):for learner in self.learners:examples = np.random.choice(np.arange(len(X)), int(len(X)), replace=True)learner.fit(X.iloc[examples, :], y.iloc[examples])def predict(self, X):preds = [learner.predict(X) for learner in self.learners]return np.array(preds).mean(axis=0)
3. 如何理解偏差与方差
在机器学习中,偏差(Bias)和方差(Variance)是衡量模型表现的两个重要概念,它们分别衡量了模型的预测误差和模型对数据变化的敏感度。这两个概念通常用于描述模型的泛化能力和在不同数据集上的表现,理解它们有助于分析和改进模型。
3.1 偏差(Bias)
偏差是指模型的预测结果与真实值之间的差距,反映了模型在拟合训练数据时的系统性误差。简而言之,偏差衡量的是模型的假设与真实数据之间的差异。
-
高偏差:如果模型的偏差较高,说明它的预测结果与真实值之间存在较大的系统性误差,模型的假设或结构太简单,无法捕捉到数据的复杂性,简单的模型通常会有较高的偏差。
-
低偏差:如果模型的偏差较低,说明模型能够较好地拟合数据,预测结果接近真实值。复杂的模型通常会有较低的偏差,但可能会导致过拟合。
3.2 方差(Variance)
方差是指模型对训练数据集波动的敏感度。方差大的模型过于关注训练数据,在捕捉潜在模式的同时,也捕捉到了噪声。这种现象被称为过度拟合,即模型在训练数据上表现异常出色,但无法推广到新的、未见过的数据。方差大会导致模型过于复杂,从而降低预测的可靠性。
- 高方差:如果模型的方差较高,说明它对训练数据集的变化非常敏感,即在不同的训练集上表现差异较大。高方差的模型容易过拟合训练数据,对训练集中的细节(包括噪声)进行了过度拟合
- 低方差:如果模型的方差较低,说明它的预测结果在不同的训练集之间比较一致,表现出较强的泛化能力
方差的影响:
- 高方差通常意味着过拟合(Overfitting),即模型过度拟合训练集的噪声和异常值,无法在新的数据上良好表现
- 低方差通常意味着模型具有较好的泛化能力,但如果方差过低,可能表示模型过于简单
3.3 方差与偏差的权衡
偏差和方差之间通常存在权衡关系。在实际应用中,我们常常需要在偏差和方差之间找到一个平衡点,以获得最佳的模型性能。这种权衡被称为偏差-方差权衡(Bias-Variance Tradeoff)。
- 高偏差、低方差: 模型过于简单,无法拟合数据的复杂性,容易导致欠拟合
- 低偏差、高方差: 模型过于复杂,容易拟合训练数据中的噪声,导致过拟合
- 适中偏差、适中方差: 模型能够捕捉数据的规律,既不缺乏复杂性,也不对训练数据过度敏感,通常是最佳的情况
3.4 举例说明
假设现在正在做一个分类问题,模型的目标是预测某个数据点属于哪个类别
- 高偏差例子:使用一个线性模型(例如线性回归)来解决一个非常复杂的非线性分类问题。由于模型无法捕捉到数据的非线性关系,预测结果和真实标签之间存在很大的差异。这种情况下,模型的偏差很高,方差很低,属于欠拟合。
- 高方差的例子:使用一个非常复杂的模型(例如深度神经网络或非常深的决策树)来拟合训练数据。虽然训练误差很小,但当你用新数据测试时,模型的表现大幅下降,因为它在训练过程中学到了过多的噪声和细节。此时,模型的方差较高,偏差较低,属于过拟合。
3.5 如何调整偏差和方差
降低偏差:
- 增加模型的复杂度,例如使用非线性模型、增加模型的参数数量、增加更多的特征等
- 提供更多的训练数据,帮助模型学习数据中的复杂关系
- 减少正则化的强度,允许模型学习更多的细节
降低方差:
- 减少模型复杂度,例如使用简单的模型(如线性回归、朴素贝叶斯等),避免过度拟合
- 使用集成学习方法(如Bagging、Boosting等),通过多个模型的集成来减少方差
- 增加训练数据量,以使模型能够更好地学习数据的整体规律而非细节
- 使用正则化技术来限制模型复杂度
3.6 偏差与方差的计算
E [ ( y ^ − y ) 2 ] = ( E [ y ^ ] − y ) 2 ⏟ 偏差 2 + E [ ( y ^ − E [ y ^ ] ) 2 ] ⏟ 方差 + Var ( y ) ⏟ 噪声 \mathbb{E}[(\hat{y} - y)^2] = \underbrace{(\mathbb{E}[\hat{y}] - y)^2}_{\text{偏差}^2} + \underbrace{\mathbb{E}[(\hat{y} - \mathbb{E}[\hat{y}])^2]}_{\text{方差}} + \underbrace{\text{Var}(y)}_{\text{噪声}} E[(y^−y)2]=偏差2 (E[y^]−y)2+方差 E[(y^−E[y^])2]+噪声 Var(y)
其中:
- y ^ \hat{y} y^ 是模型的预测值。
- y y y 是真实值。
- E [ y ^ ] \mathbb{E}[\hat{y}] E[y^] 是模型预测值的期望。
4. Bagging是如何减少方差的?
方差是一个随机变量与其均值之间的平方偏差的期望值,表达式如下:
V a r ( X ) = E ( X − E ( X ) ) 2 Var(X)=E(X-E(X))^2 Var(X)=E(X−E(X))2
V a r ( X ) = E ( X 2 ) − ( E ( X ) ) 2 Var(X) = E(X^2) - (E(X))^2 Var(X)=E(X2)−(E(X))2
假设有多个模型的预测结果 X 1 , X 2 , X 3 . . . . . . X n X_1,X_2,X_3......X_n X1,X2,X3......Xn,每个变量的方差为 σ 2 \sigma^2 σ2。每个变量对应于一个弱学习器的预测结果,那么我们对这些弱学习器进行平均:
X ˉ = X 1 + X 2 + . . . + X n n \bar X = \frac {X_1+X_2+...+X_n}{n} Xˉ=nX1+X2+...+Xn
由于 V a r ( a X ) = a 2 V a r ( X ) Var(aX)=a^2Var(X) Var(aX)=a2Var(X),我们有:
V a r ( X ˉ ) = V a r ( X 1 + X 2 + . . . + X n n ) = 1 n 2 V a r ( X 1 + X 2 + . . . . + X n ) Var(\bar X) = Var(\frac {X_1+X_2+...+X_n}{n}) = \frac 1 {n^2}Var(X_1+X_2+....+X_n) Var(Xˉ)=Var(nX1+X2+...+Xn)=n21Var(X1+X2+....+Xn)
由于每个 X i X_i Xi 是独立的,我们可以写成:
1 n 2 V a r ( X 1 + X 2 + . . . + X n ) = 1 n 2 ( V a r ( X 1 ) + V a r ( X 2 ) + . . . + V a r ( X n ) ) = n σ 2 n 2 = σ 2 n \frac 1 {n^2}Var(X_1+X_2+...+X_n) = \frac {1}{n^2}(Var(X_1)+Var(X_2)+...+Var(X_n)) = \frac {n\sigma^2}{n^2} = \frac {\sigma^2}{n} n21Var(X1+X2+...+Xn)=n21(Var(X1)+Var(X2)+...+Var(Xn))=n2nσ2=nσ2
因此,我们有:
V a r ( X ˉ ) = σ 2 n < σ 2 Var(\bar X) = \frac {\sigma^2}{n} < \sigma^2 Var(Xˉ)=nσ2<σ2
换句话说,对一组观察值取平均可以减少方差。因此,减少方差并提高预测准确性的自然方法是从总体中抽取多个训练集,使用每个训练集构建一个单独的预测模型,然后对结果进行平均。
相关文章:
【集成学习】Bagging算法详解及代码实现
文章目录 1. Bagging集成学习算法1.1 简介1.2 基本步骤1.3 Bagging优缺点1.4 随机森林:Bagging的一个重要应用1.5 总结 2. Python代码实现3. 如何理解偏差与方差3.1 偏差(Bias)3.2 方差(Variance)3.3 方差与偏差的权衡…...
HTML5实现好看的中秋节网页源码
HTML5实现好看的中秋节网页源码 前言一、设计来源1.1 网站首页界面1.2 登录注册界面1.3 节日由来界面1.4 节日习俗界面1.5 节日文化界面1.6 节日美食界面1.7 节日故事界面1.8 节日民谣界面1.9 联系我们界面 二、效果和源码2.1 动态效果2.2 源代码 源码下载结束语 HTML5实现好看…...
OBS Zoom to Mouse 脚本安装与使用指南
前言:OBS有两个不错的放大插件,经过多台电脑测试发现,唯一好用的就是下面介绍的obs-zoom-to-mouse.lua这个插件,因为它安装简单,不需要python,设置更人性化性价比极高。 zoom_and_follow_mouse.py 这个pyth…...
使用codeblock+wxwidgets做的界面,运行时额外出现了一个cmd窗口
如何不让cmd窗口出现? 定位到Workspace project,选择菜单Project->Properties 将Type从Console application改为GUI application, 然后rebuild 这个project 之后再运行就没有cmd窗口了: 原因是在创建Project的时候选择了console mode application, 可…...
AI眼镜赛马,谁是C位,谁在边缘?
CES2025正在火热开展,智能眼镜成为最受关注的赛道之一。 去年8月,Meta曾一枝独秀引领AI眼镜爆发了一次大行情,带动AI眼镜市场百花齐放,近几个月更是爆发新品潮。 据悉,包括国内的雷神科技、恺英网络投资的乐相科技&a…...
Linux中彻底卸载Oracle 19.25单实例数据库
Linux中彻底卸载Oracle 19.25单实例数据库 1、关闭数据库实例2、关闭数据库监听3、执行deinstall卸载脚本4、删除相关目录5、删除数据库相关的用户和组 1、关闭数据库实例 su - oracle sqlplus / as sysdba shutdown immediate2、关闭数据库监听 su - oracle lsnrctl stop3、…...
分享:osgb倾斜数据转cesium-3dtiles 小工具.
背景: 很多知识殊途同归,在三维软件这块,少不了要和各种各样的数据格式打交道.osgb,stl,obj,3dtiles,3ds等等..虽然里面本质核心基本都是几何数据拓扑数据材质纹理数据等等,但是由于其组织方式不同和特殊的应用场景,导致很多模型需要转来转去...相信很多人在这方面都或多或少吃…...
基于单片机的客车载客状况自动检测系统(论文+源码)
1系统整体设计 本课题为客车载客状况自动检测系统,在此以STM32单片机为核心控制器,结合压力传感器、红外传感器、蜂鸣器、语音提示模块、继电器、液晶等构成整个客车载客状况自动检测系统,整个系统架构如图2.1所示,在此通过两个红…...
Chrome访问https页面显示ERR_CERT_INVALID,且无法跳过继续访问
在访问网页的时候,因为浏览器自身的安全设置问题, 对于https的网页访问会出现安全隐私的提示, 甚至无法访问对应的网站,尤其是chrome浏览器, 因此本文主要讲解如何设置chrome浏览器的设置,来解决该问题&…...
中国省级产业结构高级化及合理化数据测算(2000-2023年)
一、数据介绍 数据名称:中国省级产业结构高级化、泰尔指数 数据年份:2000-2023年 数据范围:31个省份 数据来源:中国统计年鉴、国家统计局 数据整理:内含原始版本、线性插值版本、ARIMA填补版本 数据说明…...
云手机 —— 手机矩阵的 “超级外挂
如何打造手机矩阵 打造手机矩阵主要包括以下几个步骤: 1.确定目标与需求:首先,明确打造手机矩阵的目的和需求,是为了进行电商运营、自媒体推广、任务管理还是其他目的。这将决定后续的手机数量、操作系统选择以及应用安装等。 2.选择手机与操作系统:根据…...
Ruby语言的编程范式
Ruby语言的编程范式 在软件开发的世界里,编程语言不仅仅是实现功能的工具,更是一种表达思想和解决问题的方式。Ruby语言凭借其简洁优雅的语法和强大的功能,广受开发者喜爱,并逐步形成了一种独特的编程范式。本文将深入探讨Ruby语…...
【微服务】SpringBoot 整合Redis实现延时任务处理使用详解
目录 一、前言 二、延迟任务的高频使用场景 三、延迟任务常用解决方案 3.1 Quartz 3.2 DelayQueue 3.2.1 Timer + TimerTask 3.2.2 ScheduledExecutorService 3.3 Redis sorted set 3.4 RabbitMQ 四、Redis实现延时队列操作实战 4.1 Redis Sorted Set 概述 4.1.1 Re…...
STM32烧写失败之Contents mismatch at: 0800005CH (Flash=FFH Required=29H) !
一)问题:用ULINK2给STM32F103C8T6下载程序,下载方式设置如下: 出现下面两个问题: 1)下载问题界面如下: 这个错误的信息大概可以理解为,在0x08000063地址上读取到flash存储为FF&am…...
图像分割综述
1. 简述 图像分割(Image Segmentation)是计算机视觉领域中的一项基本任务,旨在将图像划分为多个具有语义或视觉意义的区域。这项任务在医学影像分析、自动驾驶、遥感图像处理、视频监控等领域都有着广泛的应用。随着深度学习技术的发展&…...
计算机毕业设计hadoop+spark知网文献论文推荐系统 知识图谱 知网爬虫 知网数据分析 知网大数据 知网可视化 预测系统 大数据毕业设计 机器学习
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
STM32-笔记38-I2C-oled实验
一、什么是I2C? I2C总线,全称Inter-Integrated Circuit(互连集成电路),是一种由Philips(现NXP半导体)公司在1980年代初开发的同步 串行 半双工通信总线。 二、有了串口通信为什么要使用I2C&…...
Vue Amazing UI 组件库(Vue3+TypeScript+Vite 等最新技术栈开发)
Vue Amazing UI 一个 Vue 3 组件库 使用 TypeScript,都是单文件组件 (SFC),支持 tree shaking 有点意思 English | 中文 Vue Amazing UI 是一个基于 Vue 3、TypeScript、Vite 等最新技术栈开发构建的现代化组件库,包含丰富的 UI 组件和常…...
Android NDK开发实战之环境搭建篇(so库,Gemini ai)
文章流程 音视频安卓开发首先涉及到ffmpeg编译打包动态库,先了解动态库之间的cpu架构差异性。然后再搭建可运行的Android 环境。 So库适配 ⽇常开发我们经常会使⽤到第三库,涉及到底层的语⾳,视频等都需要添加so库。⽽so库的体积⼀般来说 ⾮…...
Word中所有的通配符使用方式[Word如何批量删除中文标点符号,英文标点符号,英文字母符号,数字符号,中文汉字符号]
Word中所有的通配符使用方式 概念讲解通配符一览表详细介绍通配符的使用使用通配符搜索简洁通配符链接操作演示链接 概念讲解 Word中的通配符是用在查找和替换中的正则表达式。通配符可以实现高级的查找替换,快速整理和排版文档。常用的通配符包括: “*…...
ElasticSearch内存占用率过高怎么办?
文章目录 1,先用top看看各个进程的内存占用情况2,不能简单的杀死进程,然后再重启。3,查看一下ElasticSearch进程的具体启动情况4,修改Elasticsearch 的Java堆内存 1,先用top看看各个进程的内存占用情况 先…...
svelte5中使用react组件
在svelet5中导入并使用react组件库 svelte5中使用react组件 svelte5中使用react组件 在svelet5中导入并使用react组件库, 示例项目地址:https://github.com/shenshouer/my-svelte-react 在svelte5中当前还有问题,无法将children传递到react中渲染 使用…...
Linux 文件的特殊权限—ACL项目练习
本文为Ubuntu Linux操作系统- 第二十一期~~ 上期回顾: 【ACL权限控制详解】 更多Linux 相关内容请点击👉【Linux专栏】~ 主页:【练小杰的CSDN】 文章目录 项目项目要求具体的设置命令如下问题2问题3第一步:设置默认ACL前,在projec…...
游戏引擎学习第76天
确保一切正常并计划今天的内容 在本次开发中,我们正在集中精力处理引擎中的三维功能,尤其是如何有效地处理多层结构,比如在多个楼层之间行走,或者在房间上方可以看到下方的房间。我们的目标是避免使用临时解决方案或黑客方式&…...
【Linux-多线程】POSIX信号量-基于环形队列生产消费模型
POSIX信号量 POSIX信号量和System V信号量作用相同,都是用于同步操作,达到无冲突的访问共享资源的目的。但POSIX可以用于线程间同步 1.快速认识信号量接口 POSIX信号量分为两种类型: 命名信号量(Named Semaphores)&…...
电脑32位和64位之区别(Difference between 32-Bit and 64 Bit Computers)
电脑32位和64位之区别 很多小伙伴还不知道电脑32位和64位是什么意思,今天小编就来普及一下。 32位和64位是指电脑处理器(CPU)和操作系统的架构,决定了电脑如何处理数据、存储信息、运行程序等。 32位和64位是指电脑系统中每个处…...
1688平台商品关键词搜索的多样性与Python爬虫应用实践
在当今这个信息化、数字化飞速发展的时代,电子商务平台已经成为人们日常生活中不可或缺的一部分。而1688作为国内知名的B2B电商平台,凭借其庞大的商品种类和丰富的供应链资源,为无数商家和消费者提供了便捷的交易渠道。除了广受关注的女装品类…...
2025年:AI化浪潮中的社会变迁与商业革新
随着人工智能(AI)技术的迅猛发展,2025年将成为一个转折点。这一年,AI不仅将深入到日常生活和商业运营的各个角落,还将引发一系列深刻的社会、经济和技术变革。以下是对未来一年可能出现的“AI化”现象的预测与展望。 AI进入主流文化的标志 超级碗广告:在2025年的超级碗上…...
JS scrollIntoView 技巧揭秘:解锁网页流畅交互
文章目录 一.基本概念二.语法和参数基本语法:element.scrollIntoView();参数详解: 三.应用场景和示例场景一:点击目录点位到相应的位置React 示例代码:Vue3 示例代码: 场景二:轮播图定位到指定图片示例代码…...
精选2款.NET开源的博客系统
前言 博客系统是一个便于用户创建、管理和分享博客内容的在线平台,今天大姚给大家分享2款.NET开源的博客系统。 StarBlog StarBlog是一个支持Markdown导入的开源博客系统,后端基于最新的.Net6和Asp.Net Core框架,遵循RESTFul接口规范&…...
1.CSS的复合选择器
1.1 什么是复合选择器 在CSS中,可以根据选择器的类型把选择器分为基础选择器和复合选择器,复合选择器是建立在基础选择器之上,对基础选择器进行组合形成的。 复合选择器可以更精准、更高效的选择目标元素(标签) 复…...
sys.dm_exec_connections:查询与 SQL Server 实例建立的连接有关的信息以及每个连接的详细信息(客户端ip)
文章目录 引言I 基于dm_exec_connections查询客户端ip权限物理联接时间范围dm_exec_connections表see also: 监视SQL Server 内存使用量资源信号灯 DMV sys.dm_exec_query_resource_semaphores( 确定查询执行内存的等待)引言 查询历史数据库客户端ip应用场景: 安全分析缺乏…...
gitee 使用教程
前言 Gitee 是一个中国的开源代码托管平台,类似于 GitHub,旨在为开发者提供一个高效、稳定、安全的代码管理和协作开发环境。Gitee 支持 Git 协议,可以托管 Git 仓库,进行版本控制、代码协作、项目管理等操作。 1. Gitee 的主要…...
HTMLHTML5革命:构建现代网页的终极指南 - 0. 课程目录设计
结构清晰,层层递进 课程从基础知识(如HTML学前必知)开始,逐步深入到高级应用(如PWA配置和WebApp优化)。每个模块都有明确的目标,适合零基础学员逐步掌握HTML。 覆盖范围广 这套课程涵盖了HTM…...
嵌入式系统 (2.嵌入式硬件系统基础)
2.嵌入式硬件系统基础 2.1嵌入式硬件系统的组成 嵌入式硬件系统以嵌入式微处理器为核心,主要由嵌入式微处理器、总线、存储器、输入/输出接口和设备组成。 嵌入式微处理器 嵌入式微处理器采用冯诺依曼结构或哈佛结构:前者指令和数据共享同一存储空间…...
Vue3轮播图的实现:vue3-carousel的使用和配置
vue3-carousel 是一个用于 Vue 3 的轻量级、响应式、功能强大的轮播组件。它允许你轻松创建可以滚动的图片或内容滑块。下面是关于如何安装、使用以及配置 vue3-carousel 的一些示例和详细说明。 目录 一、安装 vue3-carousel 二、引入 三、轮播全局样式修改 一、安装 vue3-…...
Spring AI ectorStore
Spring AI中的VectorStore是一种用于存储和检索高维向量数据的数据库或存储解决方案,它在AI应用中扮演着至关重要的角色。以下是对Spring AI VectorStore的详细解析: 一、VectorStore的基本概念 定义:VectorStore特别适用于处理那些经过嵌入…...
uniapp vue2版本如何设置i18n
如何设置i18n在该软件设置过语言的情况下优先选择所设置语言,在没有设置的情况下,获取本系统默认语言就,将系统默认语言设置为当前选择语言。 1、下载依赖: npm install vue-i18n --save 2、创建相关文件(在最外层&…...
【2024华为OD-E卷-100分-boss的收入】(题目+思路+JavaC++Python解析)
题目描述 题目:boss的收入 在一个公司中,有一个老板(boss)和若干名员工(employees)。老板和员工的收入信息存储在一个数组中,其中数组的每个元素表示一个人的收入。数组的第0个元素表示老板的…...
若依 ruoyi-vue HandlerInterceptor 拦截器 文件接口自定义权限
文件资源添加自定义权限 package com.huida.framework.config;import com.huida.framework.interceptor.FileInterceptor; import com.huida.framework.interceptor.RequestInterceptor; import org.springframework.beans.factory.annotation.Autowired; import org.springfr…...
在离线环境中安装 `.rpm` 包的步骤
在一些环境中,可能无法直接通过网络安装软件包。特别是在没有互联网连接的情况下,我们仍然可以手动下载 .rpm 安装包并进行离线安装。本文将介绍如何在离线环境中安装多个 .rpm 包,确保软件的顺利安装和依赖关系的处理。 1. 将 .rpm 文件复制…...
Python----Python爬虫(selenium的使用,定位元素,层级定位)
一、介绍与安装 Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium 可以直接运行在浏览器上,它支持所有主流的浏览器。 Sele…...
Docker 服务、镜像、容器之命令(Docker Services, Images, and Container Commands)
Docker 服务、镜像、容器之命令 Docker是一个强大的容器化平台,能够帮助开发者高效地构建、部署和管理应用程序。本文将详细介绍Docker的服务命令、镜像命令和容器命令,帮助你快速上手Docker。 一、Docker的服务相关命令 在使用Docker之前,…...
当歌 - RSS 订阅分发平台开发
以下将详细介绍当歌平台的技术架构、功能实现以及相关代码逻辑。 一、项目概述 当歌是一个极简的 RSS 订阅分发平台,旨在为用户提供便捷的 RSS 管理和订阅服务,帮助用户轻松获取和分享最新资讯。 二、技术架构 后端语言:PHP 数据库&#…...
vue3使用AntV X6 (图可视化引擎)历程[二]
通过h函数动态展示自定义节点内容 一、案例效果 二、案例代码 父组件. BloodTopology.vue <template><div><TopologyCompact><template #main-board-box><TopologyDependent domId"featureBloodContainer" :nodeData"originalNode…...
爬虫学习记录
1.概念 通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程 通用爬虫:抓取的是一整张页面数据聚焦爬虫:抓取的是页面中的特定局部内容增量式爬虫:监测网站中数据更新的情况,只会抓取网站中最新更新出来的数据 robots.txt协议: 君子协议,网站后面添加robotx.txt…...
Erlang语言的函数实现
Erlang语言函数实现的深度探讨 引言 Erlang是一种并发编程语言,最初由爱立信公司为电信系统开发。它以其强大的并发处理能力和容错机制而闻名,广泛应用于实时系统和分布式系统。本文将详细探讨Erlang语言中的函数实现,包括函数的定义、调用…...
LLM之RAG实战(五十一)| 使用python和Cypher解析PDF数据,并加载到Neo4j数据库
一、必备条件: python语言Neo4j数据库python库:neo4j、llmsherpa、glob、dotenv 二、代码: from llmsherpa.readers import LayoutPDFReaderfrom neo4j import GraphDatabaseimport uuidimport hashlibimport osimport globfrom datetime …...
单例模式-如何保证全局唯一性?
以下是几种实现单例模式并保证全局唯一性的方法: 1. 饿汉式单例模式 class Singleton { private:// 私有构造函数,防止外部创建对象Singleton() {}// 静态成员变量,存储单例对象static Singleton instance; public:// 公有静态成员函数&…...
05、Docker学习,常用安装:Mysql、Redis、Nginx、Nacos
Docker学习,常用安装:Mysql、Redis、Nginx、Nacos 一、Docker安装Mysql 1、docker search mysql ##查找mysql版本都有哪些 2、docker pull mysql:5.6 ##下载5.6版本的mysql镜像 3、docker run -p 13306:3306 --name mysql ##运行…...