【人工智能】机器学习中的评价指标
机器学习中的评价指标
在机器学习中,评估指标(Evaluation Metrics)是衡量模型性能的工具。选择合适的评估指标能够帮助我们更好地理解模型的效果以及它在实际应用中的表现。
一般来说,评估指标主要分为三大类:分类、回归和聚合。
分类问题
分类,顾名思义,就是将输入数据识别并分配到不同的类别上去,以下是它的评估指标:
一、混淆矩阵(Confusion Matrix)
核心概念
混淆矩阵(Confusion Matrix),又称为误差矩阵,是一种特定的表格布局,用于描述分类模型的性能。在监督学习中,特别是分类问题中,混淆矩阵给出了分类器预测结果与实际类别之间的差异对比,它能够帮助我们全面了解分类器的表现。
元素 | 定义 | 应用场景示例 |
---|---|---|
TP (True Positive) | 正类样本被正确预测的数量 | 电商用户流失预测中的真实流失用户 |
FP (False Positive) | 负类样本被错误预测为正类的数量 | 垃圾邮件过滤中的正常邮件误判 |
FN (False Negative) | 正类样本被错误预测为负类的数量 | 医疗诊断中的漏诊病例 |
TN (True Negative) | 负类样本被正确预测的数量 | 信用卡欺诈检测中的正常交易识别 |
公式表示:
实际\预测 | 正类(1) | 负类(0) |
---|---|---|
正类(1) | TP | FN |
负类(0) | FP | TN |
示例分析:
在用户流失预测中,若测试集包含:
- TP=150(正确识别的流失用户)
- FP=30(误判的正常用户)
- FN=50(漏检的流失用户)
- TN=770(正确识别的正常用户)
通过混淆矩阵可快速定位模型的召回能力缺陷(漏检率10%)。
二、基础评估指标
1. 准确率(Accuracy)
公式:
Accuracy = T P + T N T P + T N + F P + F N \text{Accuracy} = \frac{TP + TN}{TP + TN + FP + FN} Accuracy=TP+TN+FP+FNTP+TN
特点:
- ✅ 适用场景:类别均衡数据(如MNIST手写数字识别)
- ❌ 局限性:癌症筛查中若健康样本占99%,全预测为健康准确率可达99%但完全漏检癌症
2. 精确率(Precision)
公式:
Precision = T P T P + F P \text{Precision} = \frac{TP}{TP + FP} Precision=TP+FPTP
应用场景:
- 垃圾邮件过滤:预测100封为垃圾邮件,其中90封真实为垃圾,则精确率90%
- 法律文书分类:高精确率减少错误归档风险
3. 召回率(Recall)
公式:
Recall = T P T P + F N \text{Recall} = \frac{TP}{TP + FN} Recall=TP+FNTP
应用场景:
- 信用卡欺诈检测:识别45/50笔欺诈交易,召回率90%
- 地震预测:容忍较高误报率以降低漏报风险
三、复合评估指标
1. F1分数(F1-Score)
公式:
F 1 = 2 × Precision × Recall Precision + Recall F1 = \frac{2 \times \text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}} F1=Precision+Recall2×Precision×Recall
变体:
- Fβ分数:通过β调整召回率权重(β>1时更重视召回)
- 案例:新闻推荐系统中,精确率80%+召回率70% → F1=74.8%
2. ROC曲线与AUC值
核心参数:
- TPR(真正率): T P T P + F N \frac{TP}{TP + FN} TP+FNTP
- FPR(假正率): F P F P + T N \frac{FP}{FP + TN} FP+TNFP
特性:
- 曲线越接近左上角性能越好
- AUC=0.85表示85%概率将正类样本排在负类前
3. PR曲线与AUPR
优势:在类别极度不平衡时(如新冠检测阳性率1%)比AUC更敏感
四、多分类评估策略
1. 宏平均(Macro-Average)
计算方式:各类别指标取算术平均
适用场景:强调类别平等(如多语言文本分类)
2. 微平均(Micro-Average)
计算方式:汇总所有类别TP/FP/FN后计算全局指标
特点:样本量差异大时更稳定(如商品评论情感分析)
3. 加权平均(Weighted Average)
公式:
Weighted = ∑ i = 1 N Samples i Total × Metric i \text{Weighted} = \sum_{i=1}^N \frac{\text{Samples}_i}{\text{Total}} \times \text{Metric}_i Weighted=i=1∑NTotalSamplesi×Metrici
应用:电商用户分级(VIP客户样本少但权重大)
回归问题
均方误差(Mean Squared Error, MSE)
定义与公式
均方误差(MSE)是回归任务中最常用的评价指标之一,其计算公式为预测值与真实值差的平方的均值:
MSE = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 \text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 MSE=n1i=1∑n(yi−y^i)2
MSE通过平方操作放大了较大误差的权重,使得模型在训练过程中更关注极端错误。例如,若真实值为 [200, 300, 400]
,预测值为 [210, 290, 410]
,则 MSE 计算为:
MSE = ( 10 ) 2 + ( − 10 ) 2 + ( 10 ) 2 3 = 100 + 100 + 100 3 ≈ 100 \text{MSE} = \frac{(10)^2 + (-10)^2 + (10)^2}{3} = \frac{100 + 100 + 100}{3} \approx 100 MSE=3(10)2+(−10)2+(10)2=3100+100+100≈100
此时 MSE 的单位是目标变量的平方(如房价的平方值),导致解释性较差,但能有效反映模型的整体误差水平。
优点与缺点
- 优点:对大误差敏感,适用于需要严格避免大偏差的场景(如金融风控)。
- 缺点:量纲不直观,且异常值会显著拉高 MSE(例如某个预测误差为 100,其平方贡献为 10000)。
均方根误差(Root Mean Squared Error, RMSE)
定义与公式
RMSE 是 MSE 的平方根,公式为:
RMSE = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 \text{RMSE} = \sqrt{\frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2} RMSE=n1i=1∑n(yi−y^i)2
RMSE 解决了 MSE 量纲问题,使其与目标变量单位一致。例如,若预测温度(单位:℃)的 MSE 为 25,则 RMSE 为 5℃,可直接解读为“平均误差约为 5 摄氏度”。
实际案例
假设预测某城市日平均温度,真实值为 [20, 22, 25]
,预测值为 [18, 23, 24]
,则:
RMSE = ( 2 ) 2 + ( − 1 ) 2 + ( 1 ) 2 3 = 4 + 1 + 1 3 ≈ 1.41 ℃ \text{RMSE} = \sqrt{\frac{(2)^2 + (-1)^2 + (1)^2}{3}} = \sqrt{\frac{4 + 1 + 1}{3}} \approx 1.41 \,℃ RMSE=3(2)2+(−1)2+(1)2=34+1+1≈1.41℃
RMSE 的优势在于直观性,但依然受异常值影响。例如,若某个预测误差为 10℃,其平方项将主导计算结果。
平均绝对误差(Mean Absolute Error, MAE)
定义与公式
MAE 计算预测值与真实值绝对误差的平均值:
MAE = 1 n ∑ i = 1 n ∣ y i − y ^ i ∣ \text{MAE} = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i| MAE=n1i=1∑n∣yi−y^i∣
MAE 对异常值的鲁棒性优于 MSE/RMSE。例如,预测房价时,若数据中存在少量极端高价(如 1000 万美元),MAE 仅线性放大这些误差,而 MSE 会因平方操作使其影响剧增。
实际案例
假设真实房价为 [200, 300, 1000]
(单位:万美元),预测值为 [210, 290, 950]
,则:
MAE = ∣ 10 ∣ + ∣ − 10 ∣ + ∣ 50 ∣ 3 = 10 + 10 + 50 3 ≈ 23.3 万美元 \text{MAE} = \frac{|10| + |-10| + |50|}{3} = \frac{10 + 10 + 50}{3} \approx 23.3 \,万美元 MAE=3∣10∣+∣−10∣+∣50∣=310+10+50≈23.3万美元
MAE 的缺点是忽略误差方向(如高估或低估),且无法区分多个小误差和一个大误差的差异。
决定系数(R² Score)
定义与公式
R² 衡量模型对目标变量方差的解释能力,公式为:
R 2 = 1 − ∑ i = 1 n ( y i − y ^ i ) 2 ∑ i = 1 n ( y i − y ˉ ) 2 R^2 = 1 - \frac{\sum_{i=1}^{n} (y_i - \hat{y}_i)^2}{\sum_{i=1}^{n} (y_i - \bar{y})^2} R2=1−∑i=1n(yi−yˉ)2∑i=1n(yi−y^i)2
其中 y ˉ \bar{y} yˉ 是真实值的均值。R² 越接近 1,说明模型拟合越好。例如,若 R²=0.85,表示模型能解释 85% 的数据波动。
实际案例
假设某商品销量预测的 R²=0.75,说明模型解释了 75% 的销量变化,剩余 25% 由未考虑的因素(如促销活动)导致。但需注意:R² 随特征数量增加可能虚高,此时需结合调整后 R²(Adjusted R²)使用。
平均绝对百分比误差(Mean Absolute Percentage Error, MAPE)
定义与公式
MAPE 计算相对误差的绝对值均值,公式为:
MAPE = 100 % n ∑ i = 1 n ∣ y i − y ^ i y i ∣ \text{MAPE} = \frac{100\%}{n} \sum_{i=1}^{n} \left| \frac{y_i - \hat{y}_i}{y_i} \right| MAPE=n100%i=1∑n yiyi−y^i
MAPE 适用于不同量纲数据的横向比较。例如,预测销售额时,若 MAPE=10%,表示平均误差为实际值的 10%。
实际案例
假设某商品日销售额真实值为 [100, 200, 300]
(单位:美元),预测值为 [90, 210, 280]
,则:
MAPE = 100 % 3 ( 10 100 + 10 200 + 20 300 ) ≈ 8.33 % \text{MAPE} = \frac{100\%}{3} \left( \frac{10}{100} + \frac{10}{200} + \frac{20}{300} \right) \approx 8.33\% MAPE=3100%(10010+20010+30020)≈8.33%
但需注意:当真实值接近零时,MAPE 可能无限大(如真实值为 0 时,分母为零)。
调整后决定系数(Adjusted R²)
定义与公式
调整后 R² 在 R² 基础上引入特征数量惩罚,公式为:
Adjusted R 2 = 1 − ( ( 1 − R 2 ) ( n − 1 ) n − k − 1 ) \text{Adjusted } R^2 = 1 - \left( \frac{(1 - R^2)(n - 1)}{n - k - 1} \right) Adjusted R2=1−(n−k−1(1−R2)(n−1))
其中 k k k 为特征数量。当模型中添加无关特征时,调整后 R² 会下降,从而避免过拟合。
实际案例
假设某模型在 100 个样本上使用 5 个特征得到 R²=0.8,调整后 R² 计算为:
Adjusted R 2 = 1 − ( 1 − 0.8 ) ( 99 ) 94 ≈ 0.787 \text{Adjusted } R^2 = 1 - \frac{(1 - 0.8)(99)}{94} \approx 0.787 Adjusted R2=1−94(1−0.8)(99)≈0.787
若新增一个无关特征后 R² 升至 0.805,调整后 R² 可能降至 0.78,说明新增特征无实际贡献。
聚类问题
纯度(Purity)
定义与公式
纯度衡量聚类结果与真实类别的一致性,通过统计每个聚类簇中占多数的真实类别样本数占比实现:
Purity = 1 N ∑ k max j ∣ w k ∩ c j ∣ \text{Purity} = \frac{1}{N} \sum_{k} \max_j |w_k \cap c_j| Purity=N1k∑jmax∣wk∩cj∣
其中 N N N 是总样本数, w k w_k wk 表示第 k k k 个聚类簇, c j c_j cj 表示第 j j j 个真实类别。例如,某聚类结果中三个簇的多数类别样本数分别为 5、4、3,总样本数 17,则纯度为 ( 5 + 4 + 3 ) / 17 ≈ 0.706 (5+4+3)/17 \approx 0.706 (5+4+3)/17≈0.706。
优点与缺点
- 优点:计算简单,直观反映聚类与真实标签的匹配程度。
- 缺点:未考虑类簇数量影响,可能因簇数过多虚高(如极端情况每个样本单独成簇,纯度=1)。
归一化互信息(Normalized Mutual Information, NMI)
定义与公式
NMI 通过信息熵衡量聚类结果与真实类别的信息共享程度:
NMI = I ( Ω ; C ) ( H ( Ω ) + H ( C ) ) / 2 \text{NMI} = \frac{I(\Omega; C)}{(H(\Omega) + H(C))/2} NMI=(H(Ω)+H(C))/2I(Ω;C)
其中 I ( Ω ; C ) I(\Omega; C) I(Ω;C) 是互信息, H ( Ω ) H(\Omega) H(Ω) 和 H ( C ) H(C) H(C) 分别为聚类簇和真实类别的熵。NMI 值域为 [0,1],越接近 1 表示聚类与真实分布越一致。
实际案例
若真实类别分布为 [6,6,5]
,聚类结果分布为 [8,5,4]
,通过计算联合概率分布和熵值,可得 NMI≈0.564。
优点:对簇数量敏感,避免因簇数过多导致的虚高问题。缺点:计算复杂度较高,需依赖概率分布模型。
兰德系数(Rand Index, RI)与调整兰德系数(Adjusted Rand Index, ARI)
定义与公式
RI 通过样本对的一致性评估聚类质量:
RI = T P + T N T P + F P + F N + T N \text{RI} = \frac{TP + TN}{TP + FP + FN + TN} RI=TP+FP+FN+TNTP+TN
其中 T P TP TP 表示同类样本在同一簇中的对数, T N TN TN 表示异类样本在不同簇中的对数。RI 值域 [0,1],但随机聚类结果可能不为 0。因此引入 ARI 进行修正:
ARI = R I − E [ R I ] max ( R I ) − E [ R I ] \text{ARI} = \frac{RI - E[RI]}{\max(RI) - E[RI]} ARI=max(RI)−E[RI]RI−E[RI]
ARI 值域 [-1,1],0 表示随机水平,1 表示完美匹配。
实际案例
某聚类结果中 T P = 20 TP=20 TP=20、 T N = 72 TN=72 TN=72、 F P = 20 FP=20 FP=20、 F N = 24 FN=24 FN=24,则 R I ≈ 0.68 RI≈0.68 RI≈0.68,而 ARI 通过期望值修正后可能降至 0.48。
优点:综合考量同类/异类样本对的分布。缺点:计算复杂度高,需遍历所有样本对。
F值(F-score)
定义与公式
F-score 是准确率(Precision)和召回率(Recall)的调和平均,用于平衡聚类结果的精确性与覆盖率:
F β = ( 1 + β 2 ) ⋅ Precision ⋅ Recall β 2 ⋅ Precision + Recall F_{\beta} = (1+\beta^2) \cdot \frac{\text{Precision} \cdot \text{Recall}}{\beta^2 \cdot \text{Precision} + \text{Recall}} Fβ=(1+β2)⋅β2⋅Precision+RecallPrecision⋅Recall
其中 β \beta β 为权重参数(常取 1)。Precision 表示同一簇中同类样本占比,Recall 表示同类样本被正确聚类的占比。
实际案例
若某聚类结果中 T P = 20 TP=20 TP=20、 F P = 20 FP=20 FP=20、 F N = 24 FN=24 FN=24,则 Precision=0.5,Recall≈0.46, F 1 ≈ 0.48 F_1≈0.48 F1≈0.48。
优点:适用于类别不平衡场景。缺点:依赖样本对的统计,计算成本较高。
互信息(Mutual Information, MI)与调整互信息(AMI)
定义与公式
MI 直接衡量聚类结果与真实类别的信息相关性:
I ( Ω ; C ) = ∑ k , j ∣ w k ∩ c j ∣ N log N ∣ w k ∩ c j ∣ ∣ w k ∣ ∣ c j ∣ I(\Omega; C) = \sum_{k,j} \frac{|w_k \cap c_j|}{N} \log \frac{N|w_k \cap c_j|}{|w_k||c_j|} I(Ω;C)=k,j∑N∣wk∩cj∣log∣wk∣∣cj∣N∣wk∩cj∣
为消除随机聚类影响,AMI 引入调整项:
AMI = I ( Ω ; C ) − E [ I ] ( H ( Ω ) + H ( C ) ) / 2 − E [ I ] \text{AMI} = \frac{I(\Omega; C) - E[I]}{(H(\Omega) + H(C))/2 - E[I]} AMI=(H(Ω)+H(C))/2−E[I]I(Ω;C)−E[I]
AMI 值域 [0,1],更鲁棒。
优点:无需假设数据分布,适应复杂结构。缺点:计算复杂,需依赖概率估计。
相关文章:
【人工智能】机器学习中的评价指标
机器学习中的评价指标 在机器学习中,评估指标(Evaluation Metrics)是衡量模型性能的工具。选择合适的评估指标能够帮助我们更好地理解模型的效果以及它在实际应用中的表现。 一般来说,评估指标主要分为三大类:分类、…...
shell脚本运行方式 bash 和./区别
在 Linux 或 macOS 这类基于 Unix 的系统里,使用 ./ 运行脚本和使用 bash 运行脚本存在一些差异,下面为你详细说明: 1. 语法与使用方式 使用 ./ 运行脚本: 若要使用 ./ 来运行脚本,需要确保脚本文件具备可执行权限&a…...
ShardingSphere+达梦数据库分表操作
背景 随着数字经济时代的全面到来,数据量呈现爆炸式增长,传统单机数据库在性能、扩展性和可用性方面面临严峻挑战。分布式数据库技术应运而生,成为解决海量数据存储与处理的关键方案。在这一背景下,Apache ShardingSphere作为一款…...
WordPress上传图片时显示“未提供数据”错误
在WordPress中上传图片时显示“未提供数据”的错误,通常是由多种原因引起的,以下是一些常见的问题及其解决方法: 1. 文件权限问题 WordPress需要正确的文件和目录权限才能正常上传图片。如果权限设置不正确,可能会导致无法上传图…...
AP CSA FRQ Q2 Past Paper 五年真题汇总 2023-2019
Author(wechat): bigshuang2020 ap csa tutor, providing 1-on-1 tutoring. 国际教育计算机老师, 擅长答疑讲解,带学生实践学习。 热爱创作,作品:ap csa原创双语教案,真题梳理汇总, AP CSA FRQ专题冲刺, AP CSA MCQ小题…...
海量数据场景题--查找两个大文件的URL
查找两个大文件共同的URL 给定 a、b 两个文件,各存放 50 亿个 URL,每个 URL 各占 64B,找出 a、b 两个文件共同的 URL。内存限制是 4G。 操作逻辑: 使用哈希函数 hash(URL) % 1000 将每个URL映射到0-999的编号 文件A切割为a0, a1…...
Spring AI Alibaba 工具(Function Calling)使用
一、工具(Function Calling)简介 Spring AI Alibaba工具(Function Calling):https://java2ai.com/docs/1.0.0-M6.1/tutorials/function-calling/ 1、工具(Function Calling) “工具(Tool)”或“功能调用(Function Calling…...
汽车方向盘开关功能测试的技术解析
随着汽车智能化与电动化的发展,方向盘开关的功能日益复杂化,从传统的灯光、雨刷控制到智能语音、自动驾驶辅助等功能的集成,对开关的可靠性、耐久性及安全性提出了更高要求。本文结合北京沃华慧通测控技术有限公司(以下简称“慧通…...
9-100V输入替代CYT5030/LM5030高压双路电流模式PWM控制器
产品描述: PC3530高压 PWM 控制器包含实现推挽和桥式拓扑所需的所有功能,采用电流模式控制,提供两个交替栅极驱动器输出。PC3530内置高压启动稳压器,可在 9V~100V 的宽输入电压范围内工作。芯片内部还集成有误差放大器、精密基准、两级过流保…...
详细讲解c++中线程类thread的实现,stl源码讲解之thread
Thread 本节我们来详细介绍一下c中的线程类thread,在讲解的过程中会用到大量模板的知识,可以去看c详解模板泛型编程,详解类模板的实现为什么不能放在cpp文件_泛型函数 cpo-CSDN博客 源码: template <class _Fn, class... _Args, enable_…...
PostgreSQL详解
第一章:环境部署与基础操作 1.1 多平台安装详解 Windows环境 图形化安装 下载EnterpriseDB安装包(含pgAdmin) 关键配置项说明: # postgresql.conf优化项 max_connections 200 shared_buffers 4GB work_mem 32MB 服务管理命…...
系统思考—第五项修炼
感谢【汇丰】邀请,为其高阶管理者交付系统思考系列项目。这不仅是一次知识的传递,更是一次认知的升级。 系统思考,作为《第五项修炼》的核心能力,正在帮助越来越多的管理者突破碎片化决策的困局,建立看见全貌的智慧与…...
如何使用QuickAPI生成带参数的数据API(基于原生SQL)
目录 一、示例表结构 二、准备工作 三、创建带参数的数据API 步骤 1:登录 QuickAPI 平台 步骤 2:连接数据库 步骤 3:配置基础信息 步骤 4:编写 SQL 并添加参数 步骤 5:测试并发布API 步骤 6:验证A…...
RHINO 转 STL,解锁 3D 打印与工业应用新通道
一、RHINO 格式介绍 RHINO 是一款功能强大的三维建模软件,其对应的文件格式(.3dm)能够精确地存储复杂的三维模型数据。它支持多种几何类型,包括 NURBS(非均匀有理 B 样条曲线)、多边形网格等。这种格式的优…...
PySide6属性选择器设置样式避坑
总所周知,Qt中qss语法支持属性选择器,通过setProperty设置key和value,支持在多种样式之前切换。今天使用了一下PySide6的属性选择器,发现了一个问题。完整代码见最后。 首先,先写一段qss样式,用来设置按键样…...
BKA-CNN-BiLSTM、CNN-BiLSTM、BiLSTM、CNN四模型多变量时序光伏功率预测,附模型报告
BKA-CNN-BiLSTM、CNN-BiLSTM、BiLSTM、CNN四模型多变量时序光伏功率预测,附模型报告 目录 BKA-CNN-BiLSTM、CNN-BiLSTM、BiLSTM、CNN四模型多变量时序光伏功率预测,附模型报告预测效果基本介绍程序设计参考资料 预测效果 基本介绍 BKA-CNN-BiLSTM、CNN-…...
ADS 学习和培训资源 - Keysight ADS
在 Signal Edge Solutions,我们是 Keysight ADS 的忠实用户,因此我们明白,使用和学习这款强大的仿真工具有时可能非常困难。 因此,我们编制了一份清单,列出了一些我们最喜欢的 ADS 学习和培训资源,以帮助您…...
【leetcode刷题记录】(java)数组 链表 哈希表
文章目录 四、题目之:代码随想录(1) 代码随想录:数组[704. 二分查找](https://leetcode.cn/problems/binary-search/)[27. 移除元素](https://leetcode.cn/problems/remove-element/)暴力解:双指针: [977. 有序数组的平方](https://leetcode.…...
ngx_http_core_root
定义在 src\http\ngx_http_core_module.c static char * ngx_http_core_root(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) {ngx_http_core_loc_conf_t *clcf conf;ngx_str_t *value;ngx_int_t alias;ngx_uint_t …...
大模型在支气管肺癌预测及临床决策中的应用研究报告
目录 一、引言 1.1 研究背景与意义 1.2 研究目的 二、大模型预测支气管肺癌的原理与技术基础 2.1 大模型简介 2.2 数据收集与预处理 2.3 模型训练与优化 三、术前预测 3.1 病情评估 3.1.1 肿瘤大小、位置及分期预测 3.1.2 转移风险预测 3.2 手术风险预测 3.2.1 患…...
机器人原点丢失后找回原点的解决方案与步骤
机器人原点丢失后找回原点的解决方案与步骤 在机器人运行过程中,原点丢失可能导致定位错误、运动失控等问题,常见于机械臂、AGV(自动导引车)、3D打印机等设备。以下是针对原点丢失问题的系统性解决方案及详细步骤,涵盖…...
CSS SEO、网页布局、媒体查询
目录 一、SEO 头部三大标签 1. Title 标签(标题) 核心作用 优化规范 示例 2. Meta Description(描述) 核心作用 优化规范 示例 3. Viewport 标签(视口) 核心作用 优化规范 4. 完整 SEO 头部模…...
SolidJS 深度解析:高性能响应式前端框架
SolidJS 是一个新兴的响应式前端框架,以其极致的性能、简洁的语法和接近原生 JavaScript 的开发体验而闻名。它结合了 React 的声明式 UI 和 Svelte 的编译时优化,同时采用细粒度响应式更新,避免了虚拟 DOM(Virtual DOM࿰…...
基于Spring Boot + Vue的银行管理系统设计与实现
基于Spring Boot Vue的银行管理系统设计与实现 一、引言 随着金融数字化进程加速,传统银行业务向线上化转型成为必然趋势。本文设计并实现了一套基于Spring Boot Vue的银行管理系统,通过模块化架构满足用户、银行职员、管理员三类角色的核心业务需求…...
解决 Ubuntu/Debian 中 `apt-get` 报错 “无法获得锁 /var/lib/dpkg/lock“
问题描述 在 Ubuntu/Debian 系统中运行 sudo apt-get install 或 sudo apt update 时,遇到以下错误: E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用) E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它&#…...
OpenGL 着色器
一、着色器基础结构 版本声明与入口函数 首行版本声明:必须指定 GLSL 版本和模式(如 #version 450 core)。 #version 450 core // 声明使用 OpenGL 4.5 Core Profile 入口函数:所有着色器的入口均为 main() 函…...
代码随想录刷题day53|(二叉树篇)105.从前序与中序遍历序列构造二叉树(▲
目录 一、二叉树基础知识 二、构造二叉树思路 2.1 构造二叉树流程(先序中序 2.2 递归思路 三、相关算法题目 四、易错点 一、二叉树基础知识 详见:代码随想录刷题day34|(二叉树篇)二叉树的递归遍历-CSDN博客 二、构造二叉…...
【leetcode刷题日记】lc.560-和为 K 的子数组
目录 1.题目 2.代码 1.题目 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1: 输入:nums [1,1,1], k 2 输出:2示例 2: 输入…...
计算机期刊推荐 | 计算机-人工智能、信息系统、理论和算法、软件工程、网络系统、图形学和多媒体, 工程技术-制造, 数学-数学跨学科应用
Computers, Materials & Continua 学科领域: 计算机-人工智能、信息系统、理论和算法、软件工程、网络系统、图形学和多媒体, 工程技术-制造, 数学-数学跨学科应用 期刊类型: SCI/SSCI/AHCI 收录数据库: SCI(SCIE),EI,Scopus,知网(CNK…...
K8S安装及部署calico(亲测有用[特殊字符])
一、 基础部署(三台均部署) 1. 关闭防火墙并修改网络为aliyun 要保证网络可以使用,可以将DNS的指向修改为114.114.114.114和8.8.8.8这两个。 systemctl stop firewalld && systemctl disable firewalld sed -i s/enforcing/disabl…...
etcd性能测试
etcd性能测试 本文参考官方文档完成etcd性能测试,提供etcd官方推荐的性能测试方案。 1. 理解性能:延迟与吞吐量 etcd 提供稳定、持续的高性能。有两个因素决定性能:延迟和吞吐量。延迟是完成一项操作所花费的时间。吞吐量是在某个时间段内…...
在shell脚本内部获取该脚本所在目录的绝对路径
目录 需求描述 方法一:使用 dirname 和 readlink 命令 方法二:使用 BASH_SOURCE 变量 方法三:仅使用纯 Bash 实现 需求描述 工作中经常有这样情况,需要在脚本内部获取该脚本自己所在目录的绝对路径。 假如有一个脚本/a/b/c/…...
JavaEE企业级开发 延迟双删+版本号机制(乐观锁) 事务保证redis和mysql的数据一致性 示例
提醒 要求了解或者熟练掌握以下知识点 spring 事务mysql 脏读如何保证缓存和数据库数据一致性延迟双删分布式锁并发编程 原子操作类 前言 在起草这篇博客之前 我做了点功课 这边我写的是一个示例代码 数据层都写成了 mock 的形式(来源于 JUnit5) // Dduo import java.u…...
SCI一区 | Matlab实现DBO-TCN-LSTM-Attention多变量时间序列预测
SCI一区 | Matlab实现DBO-TCN-LSTM-Attention多变量时间序列预测 目录 SCI一区 | Matlab实现DBO-TCN-LSTM-Attention多变量时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.【SCI一区级】Matlab实现DBO-TCN-LSTM-Attention多变量时间序列预测(程…...
【Python】天气数据可视化
1. Python进行数据可视化 在数据分析和科学计算领域,Python凭借其强大的库和简洁的语法,成为了众多开发者和科研人员的首选工具。数据可视化作为数据分析的重要环节,能够帮助我们更直观地理解数据背后的规律和趋势。本文将详细介绍如何使用P…...
c#的.Net Framework 的console 项目找不到System.Window.Forms 引用
首先确保是建立的.Net Framework 的console 项目,然后天健reference 应用找不到System.Windows.Forms 引用 打开对应的csproj 文件 在第一个PropertyGroup下添加 <UseWindowsForms>true</UseWindowsForms> 然后在第一个ItemGroup 下添加 <Reference Incl…...
Ubuntu 重置密码方法
目录 修改过 root 密码,重置密码的方法没改过 root 密码,重置密码的方法 修改过 root 密码,重置密码的方法 Ubuntu 默认禁用root用户,意思就是安装好Ubuntu系统后,root用户默认是没有密码的,普通用户通过…...
电机控制常见面试问题(二十)
文章目录 一.整流电路绕组接法二.电机为什么需要转速器三.电机转矩产生原理四.电机控制中载波频率大小的确定五.开关周期 Tpwm 一.整流电路绕组接法 为了引出直流的输出,一定要在整流变压器的二次侧引出零线,所以二次侧绕组必须接成星形 一次绕组必须要…...
Linux系统之yum本地仓库创建
目录 一.Linux软件安装 1.Rpm包安装 2.yum本地仓库安装 二.yum本地仓库建立 三.编译 一.Linux软件安装 软件安装共2种安装方式,通过rpm包安装或通过yum仓库库安装。 先下载安装包命令的方式去安装软件包安装结束 得到一个可以执行程序 绝对路径下的程序 1.…...
未来技术的发展趋势与影响分析
区块链技术在版权中的应用越来越受到关注。它的基本原理是通过分布式账本将每一份作品的版权信息储存起来,确保这些信息不可篡改、不可删除。这就意味着,当创作者发布作品时,可以在区块链上登记相关信息。这样,任何人都能验证版权…...
ROS2 架构梳理汇总整理
文章目录 前言正文机器人平台整体架构(ROS2)图一、个人理解整体架构 ROS2架构图一、个人理解ROS2整体架构图二、开发者整理ROS2整体架构图三、Intel整理ROS2整体架构图四、DDS具体架构说明 ROS2 Control架构图一、官方整整理ROS2 Control整体架构 总结 前…...
蓝桥杯算法精讲:二分查找实战与变种解析
适合人群:蓝桥杯备考生 | 算法竞赛入门者 | 二分查找进阶学习者 目录 一、二分查找核心要点 1. 算法思想 2. 适用条件 3. 算法模板 二、蓝桥杯真题实战 例题:分巧克力(蓝桥杯2017省赛) 三、二分查找变种与技巧 1. 查找左边…...
多层感知机实现
激活函数 非线性 ReLU函数 修正线性单元 rectified linear unit relu(x)max(0,x) relu的导数: sigmoid函数 s i g m o i d ( x ) 1 1 e − x sigmoid(x)\frac{1}{1e^{-x}} sigmoid(x)1e−x1 是一个早期的激活函数 缺点是: 幂运算相对耗时&…...
Linux进程控制--进程创建 | 进程终止 | 进程等待 | 进程替换
1.进程创建 现阶段我们知道进程创建有如下两种方式,起始包括在以后的学习中有两种方式也是最常见的: 1、命令行启动命令(程序、指令)。 2、通过程序自身,使用fork函数创建的子进程。 1.1 fork函数 在linux操作系统中,fork函数是…...
Linux 网络编程(二)——套接字编程简介
文章目录 2 Socket 套接字 2.1 什么是 Socket 2.2 Socket编程的基本操作 2.3 地址信息的表示 2.4 网络字节序和主机字节序的转换 2.4.1 字节序转换 2.4.2 网络地址初始化与分配 2.5 INADDR_ANY 2.6 Socket 编程相关函数 2.7 C标准中的 main 函数声明 2.8 套接字应用…...
串行通信 与 并行通信 对比
总目录 一、并行通信 1. 定义与核心特点 1) 定义 并行通信是指通过多条数据线同时传输一组数据的各个位(如8位、16位或更多),以字节或字为单位进行数据交换的通信方式。 2)核心特点 特点描述传输速度快多位同时传…...
基于springboot+vue的北部湾地区助农平台
开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…...
Docker技术系列文章,第七篇——Docker 在 CI/CD 中的应用
在当今快速发展的软件开发领域,持续集成与持续部署(CI/CD)已经成为提高软件交付效率和质量的关键实践。而 Docker 作为一种流行的容器化技术,为 CI/CD 流程提供了强大的支持。通过将应用及其依赖项打包成容器,Docker 确…...
Hive SQL中 ?+.+ 的用法,字段剔除
一、含义 ?. 的用法代表剔除表中的特定字段,建议按照字段顺序列出以确保正确性。 二、参数设置 -- 首先需要设置一个参数: set hive.support.quoted.identifiersNone; --然后指定要剔除哪个字段 select (dateline)?. from test.dm_user_add三、举例…...
Vue学习笔记集--pnpm包管理器
pnpm包管理器 官网: https://www.pnpm.cn/ pnpm简介 pnpm全称是performant npm,意思为“高性能的npm”,它通过硬链接和符号链接共享依赖,提升安装速度并减少存储占用。 功能特点 节省磁盘空间:依赖包被存放在一个统…...