当前位置: 首页 > news >正文

机器学习:回归模型和分类模型的评估方法介绍

回归模型和分类模型评估方法详解

一、回归模型评估方法

(一)均方误差(MSE)

  1. 原理
    • 均方误差是衡量回归模型预测值与真实值之间平均平方差的指标。它通过计算预测值与真实值之差的平方的平均值来评估模型的性能。其数学公式为:
      M S E = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 MSE = \frac{1}{n}\sum_{i = 1}^{n}(y_i - \hat{y}_i)^2 MSE=n1i=1n(yiy^i)2
      其中, n n n是样本数量, y i y_i yi是第 i i i个样本的真实值, y ^ i \hat{y}_i y^i是第 i i i个样本的预测值。MSE的值越小,说明模型在平均意义上对数据的拟合越好,预测值与真实值之间的差异越小。
  2. 特点
    • MSE对误差进行了平方操作,这使得较大的误差会被放大,因此它对异常值比较敏感。如果数据中存在少量离群点(异常值),可能会对MSE的值产生较大影响,导致模型评估结果不准确。
  3. 应用场景与举例
    • 场景:常用于预测连续数值的任务,如房价预测、股票价格预测、销售预测等。在这些场景中,我们关心模型预测值与实际值的接近程度,MSE可以作为一个重要的评估指标来衡量模型的性能。
    • 举例:假设我们正在建立一个模型来预测某地区房屋的价格。我们有一个包含100个房屋样本的数据集,其中每个样本都有对应的实际房价和模型预测房价。对于第 i i i个房屋,实际房价为 y i = 500000 y_i = 500000 yi=500000元,模型预测房价为 y ^ i = 510000 \hat{y}_i = 510000 y^i=510000元。那么该样本的误差为 ( y i − y ^ i ) = 500000 − 510000 = − 10000 (y_i - \hat{y}_i) = 500000 - 510000=-10000 (yiy^i)=500000510000=10000元,其平方误差为 ( − 10000 ) 2 = 100000000 (-10000)^2 = 100000000 (10000)2=100000000元。对所有100个样本进行计算后,假设总平方误差为 1500000000 1500000000 1500000000元,则MSE为 1500000000 100 = 15000000 \frac{1500000000}{100}=15000000 1001500000000=15000000元。这个值反映了模型在整体上对房价预测的平均误差水平。

(二)均方根误差(RMSE)

  1. 原理
    • 均方根误差是MSE的平方根,其数学公式为:
      R M S E = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 RMSE=\sqrt{\frac{1}{n}\sum_{i = 1}^{n}(y_i - \hat{y}_i)^2} RMSE=n1i=1n(yiy^i)2
      由于它与目标变量的单位相同,所以在解释模型误差时更加直观。例如,如果目标变量是房价(以元为单位),那么RMSE的单位也是元,它直接表示了模型预测值与真实值平均相差的数值大小。
  2. 特点
    • 与MSE相比,RMSE的优点在于它的量纲与原始数据一致,更容易理解模型误差的实际大小。但是,它仍然对异常值敏感,因为它是基于MSE计算得到的。
  3. 应用场景与举例
    • 场景:广泛应用于各种回归任务中,特别是在需要直观地了解模型预测误差大小的情况下。例如,在预测产品销售量、能源消耗等场景中,RMSE可以帮助我们快速了解模型的预测精度。
    • 举例:继续以上述房价预测为例,已知MSE为15000000元,则RMSE为 15000000 ≈ 3873 \sqrt{15000000}\approx3873 15000000 3873元。这意味着平均来说,模型预测的房价与真实房价相差约3873元。

(三)平均绝对误差(MAE)

  1. 原理
    • MAE是预测值与真实值之差的绝对值的平均值,其计算公式为:
      M A E = 1 n ∑ i = 1 n ∣ y i − y ^ i ∣ MAE=\frac{1}{n}\sum_{i = 1}^{n}|y_i - \hat{y}_i| MAE=n1i=1nyiy^i
      它通过计算绝对误差的平均值来衡量模型的性能,与MSE不同,MAE不涉及平方操作,因此对异常值的敏感性相对较低。
  2. 特点
    • MAE的优点是它更能反映模型预测误差的实际情况,尤其是在数据存在异常值时,它比MSE和RMSE更稳健。但是,由于它对误差进行了绝对值处理,在数学上的计算性质不如MSE和RMSE那么好,例如在求导等操作时相对复杂一些。
  3. 应用场景与举例
    • 场景:适用于对异常值较为敏感的数据集,或者在需要更关注平均误差大小而不是误差平方的情况下。例如,在一些金融领域的风险预测中,MAE可以更好地反映预测误差的实际影响。
    • 举例:还是以房价预测为例,对于那100个房屋样本,假设第一个样本的预测误差为 − 10000 -10000 10000元(如前面计算),其绝对误差为 ∣ − 10000 ∣ = 10000 | - 10000| = 10000 10000∣=10000元。对所有样本计算绝对误差并求平均值,假设得到MAE为25000元。这表示平均每个样本的预测房价与实际房价的绝对误差为25000元。

(四)决定系数( R 2 R^2 R2

  1. 原理
    • R 2 R^2 R2衡量了模型对数据的拟合程度,它表示因变量的变异中可以由自变量解释的比例。其计算公式为:
      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 - \overline{y})^2} R2=1i=1n(yiy)2i=1n(yiy^i)2
      其中, y ‾ \overline{y} y是真实值的平均值。 R 2 R^2 R2的取值范围是 [ 0 , 1 ] [0,1] [0,1],越接近1表示模型拟合效果越好,即模型能够解释的因变量变异越多;当 R 2 = 1 R^2 = 1 R2=1时,表示模型完全拟合数据;当 R 2 = 0 R^2 = 0 R2=0时,表示模型完全无法解释因变量的变异,等同于使用均值来预测。
  2. 特点
    • R 2 R^2 R2是一个相对综合的评估指标,它不仅考虑了模型的预测值与真实值之间的差异,还考虑了数据本身的变异情况。但是, R 2 R^2 R2也有一些局限性,例如在数据集中包含无关特征时, R 2 R^2 R2可能会高估模型的性能,而且它对于样本数量和特征数量的比例比较敏感。
  3. 应用场景与举例
    • 场景:在回归分析中广泛应用,特别是在需要评估模型整体拟合优度的情况下。例如,在科学研究中,当我们建立一个回归模型来解释某个现象与多个因素之间的关系时, R 2 R^2 R2可以帮助我们判断模型的解释能力。
    • 举例:假设有一个数据集用于研究学生的考试成绩与学习时间、复习次数等因素的关系。我们建立了一个回归模型来预测考试成绩,共有50个学生样本。学生的实际考试成绩平均值为 y ‾ = 70 \overline{y} = 70 y=70分。通过模型预测后,计算得到 ∑ i = 1 n ( y i − y ^ i ) 2 = 800 \sum_{i = 1}^{n}(y_i - \hat{y}_i)^2 = 800 i=1n(yiy^i)2=800 ∑ i = 1 n ( y i − y ‾ ) 2 = 2000 \sum_{i = 1}^{n}(y_i - \overline{y})^2 = 2000 i=1n(yiy)2=2000。则 R 2 = 1 − 800 2000 = 0.6 R^2 = 1 - \frac{800}{2000}=0.6 R2=12000800=0.6,这说明模型能够解释60%的考试成绩变异,即学习时间和复习次数等因素能够解释60%的考试成绩差异,还有40%的差异可能由其他未考虑到的因素或随机因素引起。

二、分类模型评估方法

(一)准确率(Accuracy)

  1. 原理
    • 准确率是分类正确的样本数占总样本数的比例,是最直观和常用的分类模型评估指标之一。其数学公式为:
      A c c u r a c y = T P + T N T P + T N + F P + F N Accuracy=\frac{TP + TN}{TP + TN + FP + FN} Accuracy=TP+TN+FP+FNTP+TN
      其中, T P TP TP(True Positive)是真正例,即实际为正类且被正确分类为正类的样本数; T N TN TN(True Negative)是真负例,即实际为负类且被正确分类为负类的样本数; F P FP FP(False Positive)是假正例,即实际为负类但被分类为正类的样本数; F N FN FN(False Negative)是假负例,即实际为正类但被分类为负类的样本数。
  2. 特点
    • 准确率的计算简单直观,容易理解。但是,当数据集存在类别不平衡问题时,即不同类别的样本数量差异较大时,准确率可能会误导模型的评估结果。例如,在一个二分类问题中,正类样本占总样本的10%,负类样本占90%,即使模型将所有样本都预测为负类,准确率也能达到90%,但这个模型实际上并没有很好地学习到正类的特征,分类性能很差。
  3. 应用场景与举例
    • 场景:适用于各类分类任务,尤其是在类别分布相对均衡的情况下。例如,在图像分类中,判断图片是猫还是狗,当猫和狗的图片数量大致相等时,准确率可以较好地反映模型的性能。
    • 举例:假设有一个疾病诊断的二分类模型,用于判断患者是否患有某种疾病。共有100个患者样本,其中50个患者患有疾病(正类),50个患者未患病(负类)。模型预测结果为:正确诊断出40个患病患者( T P = 40 TP = 40 TP=40),正确诊断出45个未患病患者( T N = 45 TN = 45 TN=45),将5个未患病患者误诊为患病患者( F P = 5 FP = 5 FP=5),将10个患病患者误诊为未患病患者( F N = 10 FN = 10 FN=10)。则准确率为 40 + 45 40 + 45 + 5 + 10 = 85 100 = 0.85 \frac{40 + 45}{40 + 45 + 5 + 10}=\frac{85}{100}=0.85 40+45+5+1040+45=10085=0.85,即该模型在这个数据集上的分类准确率为85%。

(二)精确率(Precision)

  1. 原理
    • 精确率是指在被分类为正类的样本中,真正为正类的样本所占的比例。它关注的是预测为正类的样本中有多少是真正的正类,其数学公式为:
      P r e c i s i o n = T P T P + F P Precision=\frac{TP}{TP + FP} Precision=TP+FPTP
      精确率越高,说明模型在预测为正类的样本时越准确,误判为正类的样本越少。
  2. 特点
    • 精确率主要用于评估模型对正类样本的预测准确性,在一些对正类预测准确性要求较高的场景中非常重要。例如,在垃圾邮件过滤中,我们希望被标记为垃圾邮件的邮件确实是垃圾邮件,而不希望误将正常邮件标记为垃圾邮件,此时精确率就是一个关键指标。但是,精确率只考虑了预测为正类的样本情况,没有考虑实际正类样本中有多少被正确预测,因此它不能单独全面地评估模型的性能。
  3. 应用场景与举例
    • 场景:常用于对正类样本预测准确性要求较高的任务,如信息检索中的相关文档检索、诈骗检测等。
    • 举例:在一个信用卡欺诈检测模型中,将交易分为欺诈(正类)和正常(负类)。模型预测了100笔交易为欺诈,其中实际有80笔是欺诈交易( T P = 80 TP = 80 TP=80),20笔是正常交易被误判为欺诈( F P = 20 FP = 20 FP=20)。则精确率为 80 80 + 20 = 80 100 = 0.8 \frac{80}{80 + 20}=\frac{80}{100}=0.8 80+2080=10080=0.8,这意味着在模型预测为欺诈的交易中,有80%确实是欺诈交易。

(三)召回率(Recall)

  1. 原理
    • 召回率是指实际为正类的样本中,被正确分类为正类的样本所占的比例。它关注的是正类样本是否被充分地检测出来,其数学公式为:
      R e c a l l = T P T P + F N Recall=\frac{TP}{TP + FN} Recall=TP+FNTP
      召回率越高,说明模型能够检测出更多的正类样本,漏检的正类样本越少。
  2. 特点
    • 召回率和精确率是相互关联的两个指标,通常在提高召回率的同时,精确率可能会下降,反之亦然。在一些需要尽可能多地找出正类样本的场景中,召回率是一个重要的评估指标。例如,在疾病筛查中,我们希望尽量不漏掉患病的患者,即使可能会有一些误判,此时召回率就更为重要。
  3. 应用场景与举例
    • 场景:如医疗诊断中的疾病检测、客户流失预测等场景,需要确保尽可能多的正类样本被正确识别。
    • 举例:还是以疾病诊断模型为例,50个患病患者中,模型正确诊断出40个( T P = 40 TP = 40 TP=40),有10个患病患者被误诊为未患病( F N = 10 FN = 10 FN=10)。则召回率为 40 40 + 10 = 40 50 = 0.8 \frac{40}{40 + 10}=\frac{40}{50}=0.8 40+1040=5040=0.8,即该模型能够正确检测出80%的患病患者。

(四)F1 - score

  1. 原理
    • F1 - score是精确率和召回率的调和平均数,它综合考虑了精确率和召回率,试图在两者之间找到一个平衡。其数学公式为:
      F 1 − s c o r e = 2 × P r e c i s i o n × R e c a l l P r e c i s i o n + R e c a l l F1 - score = 2\times\frac{Precision\times Recall}{Precision + Recall} F1score=2×Precision+RecallPrecision×Recall
      当精确率和召回率都很高时,F1 - score也会很高,反之,如果其中一个指标很低,F1 - score也会受到影响。F1 - score可以看作是对模型整体性能的一种综合评估,特别是在精确率和召回率同等重要的情况下,它是一个很有用的指标。
  2. 特点
    • F1 - score结合了精确率和召回率的信息,能够更全面地评估模型的性能。它对于不平衡的数据集也相对更稳健一些,不像准确率那样容易受到类别分布的影响。但是,它仍然不能完全涵盖模型性能的所有方面,在某些特定场景下,可能还需要结合其他指标进行评估。
  3. 应用场景与举例
    • 场景:广泛应用于各种分类任务中,尤其是在需要综合考虑精确率和召回率的情况下。例如,在文本分类中,既要保证分类的准确性(精确率),又要尽量覆盖所有相关的文本(召回率),F1 - score可以作为一个重要的评估指标。
    • 举例:假设一个分类模型的精确率为 0.7 0.7 0.7,召回率为 0.8 0.8 0.8。则F1 - score为 2 × 0.7 × 0.8 0.7 + 0.8 = 2 × 0.56 1.5 ≈ 0.75 2\times\frac{0.7\times0.8}{0.7 + 0.8}=2\times\frac{0.56}{1.5}\approx0.75 2×0.7+0.80.7×0.8=2×1.50.560.75。这表明该模型在综合考虑精确率和召回率方面的性能表现为0.75。

(五)受试者工作特征曲线(ROC曲线)和曲线下面积(AUC)

  1. 原理
    • ROC曲线:ROC曲线是以假正率(False Positive Rate,FPR)为横坐标,真阳率(True Positive Rate,TPR)为纵坐标绘制的曲线。FPR计算公式为 F P R = F P F P + T N FPR=\frac{FP}{FP + TN} FPR=FP+TNFP,TPR计算公式为 T P R = T P T P + F N TPR=\frac{TP}{TP + FN} TPR=TP+FNTP。通过改变分类模型的阈值,可以得到不同的FPR和TPR值,从而绘制出ROC曲线。ROC曲线越靠近左上角(即FPR越小,TPR越大),说明模型的性能越好。
    • AUC:AUC是ROC曲线下的面积,其取值范围在 [ 0 , 1 ] [0,1] [0,1]之间。AUC的值越大,表明模型的分类性能越好。当AUC = 1时,说明模型是完美的分类器,能够将所有正类样本正确分类,且没有将负类样本误判为正类;当AUC = 0.5时,说明模型的分类效果等同于随机猜测。
  2. 特点
    • ROC曲线和AUC具有以下优点:它们不受类别不平衡的影响,能够综合评估模型在不同阈值下的分类性能。对于不同的分类模型,可以通过比较它们的ROC曲线和AUC值来判断哪个模型更优。此外,ROC曲线还可以直观地展示模型在不同误判成本下的性能表现,因为FPR和TPR可以看作是不同误判成本的一种度量。
  3. 应用场景与举例
    • 场景:在医学诊断、信用评估、异常检测等众多领域的分类任务中都有广泛应用,特别是在处理类别不平衡数据或者需要全面评估模型性能时非常有用。
    • 举例:假设有两个疾病诊断模型A和B,分别对一组包含100个患病样本和100个未患病样本的数据集进行预测。对于模型A,通过调整阈值得到不同的FPR和TPR值,绘制出ROC曲线,计算得到AUC = 0.85;对于模型B,得到的ROC曲线对应的AUC = 0.72。这说明模型A在该数据集上的分类性能优于模型B,它能够更好地在不同误判成本下对患病和未患病样本进行区分。

相关文章:

机器学习:回归模型和分类模型的评估方法介绍

回归模型和分类模型评估方法详解 一、回归模型评估方法 (一)均方误差(MSE) 原理 均方误差是衡量回归模型预测值与真实值之间平均平方差的指标。它通过计算预测值与真实值之差的平方的平均值来评估模型的性能。其数学公式为&…...

担心学术窃取?阿里云加密的AI论文工具帮你锁紧数据!

学术窃取是任何研究人员都需要警惕的问题。随着技术的发展,虽然研究工作变得更加高效,但同时也暴露了更多的安全漏洞,尤其是在数据传输和存储过程中。为了解决这一问题,梅子AI论文工具采用了阿里云加密技术,提供了一个…...

leetcode经典算法题总结

针对leetcode算法题常见的五大经典复杂算法进行如下总结: (1)分治法 把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解…...

运维工具之ansible

Ansible 1.什么是ansible? ​ ansible是基于ssh架构的自动化运维工具,由python语言实现,通过ansible可以远程批量部署等。 2.部署前提 ​ 控制端需要安装ansible,被控制端要开启ssh服务,并允许远程登录,被管理主机需要安装py…...

基于 CSS Grid 的简易拖拉拽 Vue3 组件,从代码到NPM发布(1)- 拖拉拽交互

基于特定的应用场景,需要在页面中以网格的方式,实现目标组件在网格中可以进行拖拉拽、修改大小等交互。本章开始分享如何一步步从代码设计,最后到如何在 NPM 上发布。 请大家动动小手,给我一个免费的 Star 吧~ 大家如果发现了 Bug…...

【华为HCIP实战课程六】OSPF邻居关系排错网络子网掩码问题,网络工程师

一、链路上网络和掩码引发的OSPF邻居问题 R3和R4已经建立正常的ospf邻居关系 更改IP地址前R3接口IP地址 interface Serial2/0/0 link-protocol ppp ip address 10.1.34.3 255.255.255.240 [R3-Serial2/0/0]ip address 10.1.88.2 255.255.255.240 更改为10.1.88.2 R3和R4虽…...

基础教程 | 用VuePress搭建一个简单的个人博客(附源码)

先附上自己个人博客页面:https://illusionno.github.io/ 源码也在这里:https://github.com/illusionno/my-blog (如果觉得有帮助,可以点颗star✨) 使用的主题是vuepress-theme-reco2.x,并在上面进行了一些调…...

Ubuntu20.04,编译安装BCC

https://github.com/iovisor/bcc/blob/master/INSTALL.md 一、内核配置 In general, to use these features, a Linux kernel version 4.1 or newer is required. In addition, the kernel should have been compiled with the following flags set: CONFIG_BPFy CONFIG_BP…...

# 显卡算力参数对比

显卡算力参数对比 文章目录 显卡算力参数对比A 显卡参数查询B 显卡性能对比: 综合看:T4最具性价比 A 显卡参数查询 查询网址:https://www.techpowerup.com/gpu-specs/ ,以下列出部分: Product NameGPU ChipReleasedB…...

掌握RocketMQ4.X消息中间件(一)-RocketMQ基本概念与系统架构

1 MQ介绍 MQ(Message Quene) : 翻译为 消息队列,别名为 消息中间件,通过典型的 生产者和消费者模型,生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。因为消息的生产和消费都是异步的,而且只关心消息的发送和接收&#xff0c…...

实际开发中,java开发的准备工作

实际开发中,java开发的准备工作 一、IDEA工具环境设置 1、编码设置...

SQL进阶技巧:Order by 中 NULLS LAST特性使用?

目录 1 需求描述 2 数据准备 3 问题分析 4 小结 如果觉得本文对你有帮助,想进一步学习SQL语言这门艺术的,那么不妨也可以选择去看看我的博客专栏 ,部分内容如下: 数字化建设通关指南 专栏 原价99,现在活动价59…...

Redis:cpp.redis++类型操作

Redis:cpp.redis类型操作 stringsetmsetmgetgetrangesetrangeincrbydecrby listlpushrpushlrangellenlpoprpopblpopbrpop setsaddsmemeberssismemberscardspopsintersinterstore hashhsethgethexistshdelhkeyshvalshmsethmget zsetzaddzrangezcardzremzscorezrank 总…...

感冒用药记录

问题描述:国庆感冒了,头昏喉咙不舒服 用药过程: – 前3天:未用药,不好也不坏 – 中间2天:开始喉痛,使用复方氨酚烷胺胶囊【含对乙酰氨基酚】,基本没有效果 – 后面1天:开…...

JMeter性能测试时,如何做CSV参数化

在现代软件开发中,性能测试是保证应用程序在高负载条件下稳定运行的重要环节。为了实现真实场景的测试,参数化技术应运而生。其中,CSV参数化是一种高效且灵活的方法,可以让测试人员通过外部数据文件驱动测试脚本,从而模…...

爬虫获取不同数据类型(如JSON,HTML)的处理方法以及图片相对URL地址的转换

当我们爬取图片的URL地址时,我们要确保它们都是有效的绝对URL,这样就可以直接用这些URL来下载图片了。但是很多时候,它们都不是绝对URL地址,因此我们需要它进行URL转换。 if img_url.startswith(//): 这个条件检查URL是否以//开头…...

Elasticsearch 实战应用

Elasticsearch 实战应用 引言 Elasticsearch 是一个分布式、RESTful 风格的搜索和分析引擎,能够快速、实时地处理大规模数据,广泛应用于全文搜索、日志分析、推荐系统等领域。在这篇博客中,我们将从 Elasticsearch 的基本概念入手&#xff…...

前端数据加载慢的解决方法

都是和前端性能优化非常类似的做法。 1. 懒加载 (Lazy Loading) 对于图片、视频等资源,或者某些组件,在用户滚动到相关区域时再加载,而不是页面一开始就加载所有内容。使用 IntersectionObserver 实现懒加载,或者一些 UI 框架&am…...

探索MultiApp:一款强大的多应用管理工具

探索MultiApp:一款强大的多应用管理工具 在这个数字化时代,多任务并行已经成为我们日常生活的一部分。无论是工作还是娱乐,我们都需要频繁地在多个应用之间切换。今天,我要向大家介绍一款能够帮助你在同一设备上无缝切换和管理多…...

qt QGraphicsItem详解

一、概述 QGraphicsItem是Qt框架中图形视图框架(Graphics View Framework)的一个核心组件,它是用于表示2D图形元素的基类。 它支持的功能包括: 设置和获取图形项的位置和尺寸。控制图形项的外观,如颜色、笔刷、边框…...

LVS搭建负载均衡

LVS搭建负载均衡 引言 在现代互联网应用中,用户对服务的可用性和响应速度要求越来越高。为了应对高并发请求,保证系统的稳定性和容错能力,负载均衡技术应运而生。LVS(Linux Virtual Server)是一种高性能、高可用性的…...

Unity MVC框架演示 1-1 理论分析

本文仅作学习笔记分享与交流,不做任何商业用途,该课程资源来源于唐老狮 1.一般的图解MVC 什么是MVC我就不说了,老生常谈,网上有大量的介绍,想看看这三层都起到什么职责?那就直接上图吧 2.我举一个栗子 我有…...

基于springboot+vue人脸识别的考勤管理系统(源码+定制+开发)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…...

【api连接ChatGPT的最简单方式】

通过api连接ChatGPT的最简单方式 建立client 其中base_url为代理,若连接官网可省略;配置环境变量 from openai import OpenAI client OpenAI(base_url"https://api.chatanywhere.tech/v1" )或给出api和base_url client OpenAI(api_key&…...

技术成神之路:设计模式(二十)装饰模式

介绍 装饰模式(Decorator Pattern)是一种结构型设计模式,它允许在不改变对象自身的情况下,动态地为对象添加额外的职责。这个模式通常用于增强或改变对象的功能。 1.定义 装饰模式通过创建一个装饰类,将功能动态地添加…...

利用特征点采样一致性改进icp算法点云配准方法

1、index、vector 2、kdtree和kdtreeflann 3、if kdtree.radiusSearch(。。。) > 0)...

LabVIEW惯性导航系统仿真平台

LabVIEW开发捷联惯性导航系统仿真平台,采用模块化设计,利用LabVIEW的图形化编程特性,提高了系统仿真的效率和精度,同时具备良好的可扩展性和用户交互性。 项目背景 当前,惯性导航系统(INS)的研…...

es简单实现文章检索功能

使用的api是:Elasticsearch Java API client 8.0 官网:Package structure and namespace clients | Elasticsearch Java API Client [8.15] | Elastic 1.建立索引库 实现搜索功能字段: title:文章标题content:文章内…...

太速科技-607-基于FMC的12收和12发的光纤子卡

基于FMC的12收和12发的光纤子卡 一、板卡概述 本卡是一个FPGA夹层卡(FMC)模块,可提供高达2个CXP模块接口,提供12路收,12路发的光纤通道。每个通道支持10Gbps,通过Aurora协议,可以组成X4&#xff0…...

UEFI学习笔记(十):系统表与ACPI表的遍历

一、概述 在 UEFI 系统表中,有几个关键的表用于提供系统信息、服务和硬件抽象。这些表可以通过 EFI_SYSTEM_TABLE 访问,常见的 UEFI 系统表如下: 1、EFI_SYSTEM_TABLE (系统表) EFI_SYSTEM_TABLE 是一个指针,包含多个服务和系统…...