MS COCO数据集的评价标准以及不同指标的选择推荐(AP、mAP、MS COCO、AR、@、0.5、0.75、1、目标检测、评价指标)

本文主要是介绍MS COCO数据集的评价标准以及不同指标的选择推荐(AP、mAP、MS COCO、AR、@、0.5、0.75、1、目标检测、评价指标),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目标检测模型性能衡量指标、MS COCO 数据集的评价标准以及不同指标的选择推荐

0. 引言

0.1 COCO 数据集评价指标

目标检测模型通过 pycocotools 在验证集上会得到 COCO 的评价列表,具体参数的含义是什么呢?

0.2 目标检测领域常用的公开数据集

  1. PASCAL VOC
  2. Microsoft COCO(MS COCO)

在 MS COCO 数据集出来之前,目标检测基本上用的是 PASCAL VOC 数据集,现在 MS COCO 非常流行。这两个数据集均有自己的评判标准。

0.3 COCO(Common Objects in Context,上下文中的常见对象)数据集简介

0.3.1 介绍

COCO 数据集是一个可用于图像检测(Image Detection),语义分割(Semantic Segmentation)和图像标题生成(Image Captioning)的大规模数据集。它有超过 330K 张图像(其中 220K 张是有标注的图像),包含

  • 150 万个目标
  • 80 个目标类别(object categories:行人、汽车、大象等)
  • 91 种材料类别(stuff categoris:草、墙、天空等)
  • 每张图像包含五句图像的语句描述
  • 且有 250, 000 个带关键点标注的行人

MS COCO官网:https://cocodataset.org/#home

0.3.2 MS COCO 可以应用的任务

  1. 目标检测(object detection):使用 bounding box 或者 object segmentation (也称为instance segmentation)将不同的目标进行标定。

  2. Densepose(密集姿势估计):DensePose 任务涉及同时检测人、分割他们的身体并将属于人体的所有图像像素映射到身体的3D表面。用于不可控条件下的密集人体姿态 估计。

  3. Key-points detection(关键点检测):在任意姿态下对人物的关键点进行定位,该任务包含检测行人及定位到行人的关键点。

  4. Stuff Segmentation(材料细分):语义分割中针对 stuff class 类的分割(草,墙壁,天空等)

  5. Panoptic Segmentation(全景分割):其目的是生成丰富且完整的连贯场景分割,这是实现自主驾驶或增强现实等真实世界视觉系统的重要一步。

  6. image captioning(图像标题生成):根据图像生成一段文字。

0.3.3 COCO 的 80 个类别

编号英文名称中文名称编号英文名称中文名称编号英文名称中文名称
1person28boat55cup杯子
2bicycle自行车29traffic light交通灯56fork叉子
3car汽车30fire hydrant消防栓57knife
4motorcycle摩托车31stop sign停车标志58spoon勺子
5airplane飞机32parking meter停车计时器59bowl
6bus公共汽车33bench长凳60banana香蕉
7train火车34bird61apple苹果
8truck卡车35cat62sandwich三明治
9boat36dog63orange橙子
10traffic light交通灯37horse64broccoli西兰花
11fire hydrant消防栓38sheep65carrot胡萝卜
12stop sign停车标志39cow66hot dog热狗
13parking meter停车计时器40elephant大象67pizza披萨
14bench长凳41bear68donut甜甜圈
15bird42zebra斑马69cake蛋糕
16cat43giraffe长颈鹿70chair椅子
17dog44backpack背包71couch沙发
18horse45umbrella雨伞72potted plant盆栽
19sheep46handbag手提包73bed
20cow47tie领带74dining table餐桌
21elephant大象48suitcase行李箱75toilet厕所
22bear49frisbee飞盘76tv monitor电视监视器
23zebra斑马50skis滑雪板77laptop笔记本电脑
24giraffe长颈鹿51snowboard单板滑雪78mouse鼠标
25backpack背包52sports ball运动球79remote遥控器
26umbrella雨伞53kite风筝80keyboard键盘
27tie领带54baseball bat棒球棍

1. 目标检测中常见的指标

对于这样一张图片,怎样才能算检测正确呢?其中,绿色为 GT,红色为预测框。

  • IoU 大于指定阈值?
  • 类别是否正确?
  • confidence 大于指定阈值?

以上三点都是我们需要考虑的。

1.1 TP、FP、FN

1.1.1 定义

  • TP(True Positive):预测正确的预测框数量 [IoU > 阈值](同一个 GT 只计算一次)
  • FP(False Positive):检测到是同一个 GT 的多余预测框的数量 [IoU < 阈值](或者是检测到同一个 GT 的多余预测框的数量)
  • FN(False Negative):没有检测到 GT 的预测框数量 [漏检的数量]
  • 阈值根据任务进行调整,一般选择 0.5
  • FP 就是“假阳性”,就是模型误认为是 TP

1.1.2 例子说明 TP、FP、FN

举个例子理解 TP、FP、FN:

对于张图片来说,绿色 为 GT,红色 为模型预测框,IoU 阈值设置为 0.5。

  • 对于中间这只猫来说,在 绿色框(GT) 中的 预测框(红色)绿色框 的 IoU 肯定是 >0.5 的,所以它应该是一个 TP(预测对了目标且 IoU > 阈值);而对于 偏左的预测框 来说,它和 GT 的 IoU 肯定是不足 0.5 的,加之因为有 TP 的存在,所以它是 FP。
  • 对于右下角的那只猫,GT 是有的,但模型并没有给出对应的预测框,因此模型对于这只猫来说,漏检了,故 FN 的数量为 1。

1.2 AP(Average Precision,平均精度)

1.2.1 Precision

P r e c i s i o n = T P T P + F P \mathrm{Precision = \frac{TP}{TP + FP}} Precision=TP+FPTP

解释:模型预测的所有目标(Object)中,预测正确的比例 -> 查准率

模型认为正确的目标 中 确实预测对了多少


那么仅仅通过 Precision 这个指标能不能全面衡量模型的检测能力呢?举个例子进行说明:

同样的,绿色的为 Ground Truth,红色的为 预测框。

上面这张图片有 5 个目标,但是网络只针对猫 ① 给出了预测框(红色的),剩下的猫都没有检测出来。这里的 TP=1,FP=0。所以此时的 Precision 为:

P r e c i s i o n = T P T P + F P = 1 1 + 0 = 1 = 100 % \begin{aligned} \mathrm{Precision} & = \mathrm{\frac{TP}{TP+FP}} \\ & = \frac{1}{1 + 0} \\ & = 1\\ & = 100\% \end{aligned} Precision=TP+FPTP=1+01=1=100%

很明显对于这张图片网络漏检了 4 个目标,但 Precision 又显示结果是非常好的。因此我们就可以知道了,仅仅通过 Precision 无法评判检测网络的性能。为了解决这个问题,我们引入了另外一个指标 —— Recall。

1.2.2 Recall

R e c a l l = T P T P + F N \mathrm{Recall = \frac{TP}{TP + FN}} Recall=TP+FNTP

解释:所有真实目标中,模型预测正确的比例 -> 查全率

本应该检测对的,模型检测对了多少

那么我们只使用 Recall 这个指标来判定模型的好坏吗?举个例子说明:

这张图片和上一张图片类似,网络总共预测出了 50 个预测框(即 50 个目标)。这 50 个预测框中包括了所有要检测的目标,那么该网络针对这张图片的 Recall 为:

R e c a l l = T P T P + F N = 1 1 + 0 = 1 = 100 % \begin{aligned} \mathrm{Recall} & = \mathrm{\frac{TP}{TP+FN}} \\ & = \frac{1}{1 + 0} \\ & = 1\\ & = 100\% \end{aligned} Recall=TP+FNTP=1+01=1=100%

很明显,单单使用 Recall 无法评判模型的好坏。所以我们需要同时使用 Precision 和 Recall 这两个指标来进行网络性能的评判,即引入 —— AP。

1.2.3 AP —— P-R 曲线下面积

AP 就是P-R曲线下方的面积,而 P-R 分别为 Precision 和 Recall。

假设模型已经训练完毕,验证集为下面 3 张图片:

1.2.3.1 第一张图片

首先判断该图片中有几个目标(GT)?很明显绿色的框有两个,所以有两个 GT,即

n u m o b j = 0 + 2 = 2 。 \mathrm{num_{obj}} = 0 + 2 = 2。 numobj=0+2=2

接下来同一个列表统计网络所检测到的目标信息:

GT idConfidenceOB (IoU=0.5)
10.98True
10.61False

Note:

  • GT id 为 预测框匹配的 GT 的 id;Confidence 为预测框的置信度(是此类别的概率);OB 为判断该预测框是否是 TP。
  • 该表从上到下的顺序是根据 Confidence 降序排列的
  • 对于 GT id = 2,网络并没有给出预测框,所以表中没有相关信息
1.2.3.2 第二张图片

这张图片中目标的个数(绿色的框)有 1 个,所以累积目标个数:

n u m o b j = 2 + 1 = 3 。 \mathrm{num_{obj}} = 2 + 1 = 3。 numobj=2+1=3

表也需更新:

GT idConfidenceOB (IoU=0.5)
10.98True
30.89True
30.66False
10.61False
1.2.3.3 第三张图片

累积目标个数:

n u m o b j = 3 + 4 = 7 。 \mathrm{num_{obj}} = 3 + 4 = 7。 numobj=3+4=7

更新表:

GT idConfidenceOB(IoU=0.5)
10.98True
30.89True
60.88True
70.78True
30.66False
10.61False
40.52True
1.2.3.4 计算 AP

得到表以后,我们计算针对不同 Confidence(即取不同 Confidence 阈值)得到的 Precision 和 Recall 的信息)。

GT idConfidenceOB (IoU=0.5)
10.98True
30.89True
60.88True
70.78True
30.66False
10.61False
40.52True
  1. 首先将 Confidence 的阈值设置为 0.98(Confidence ≥ 0.98 的目标才算匹配正确),只有一个预测框符合条件(表中的第一行)。

    • TP = 1; FP = 0; FN = 6

    在 Confidence≥0.98 的条件下,TP=1 没什么问题;FP=0 是因为阈值的存在;FN=6 是因为累积目标个数 num_ob=7,所以 F N = n u m _ o b − T P = 7 − 1 = 6 \mathrm{FN=num\_ob - TP} = 7 - 1 = 6 FN=num_obTP=71=6。因此我们可以得到 P r e c i s i o n = T P T P + F P = 1 1 + 0 = 1 \mathrm{Precision = \frac{TP}{TP + FP} = \frac{1}{1+0}=1} Precision=TP+FPTP=1+01=1 R e c a l l = T P T P + F N = 1 1 + 6 = 0.14 \mathrm{Recall = \frac{TP}{TP + FN} = \frac{1}{1+6}=0.14} Recall=TP+FNTP=1+61=0.14
    Note:这个TP; FP; FN是看那个表,就不区分什么第几张图片了,看表就可以。

  2. 将 Confidence 阈值设置为 0.89

    • 此条件下,TP = 2; FP = 0; FN = num_ob - TP = 7 - 2 = 5,我们可以得到 Precision 和 Recall
  3. 将 Confidence 阈值设置为 0.66

    • 此条件下,TP=4; FP=1; FN=num_ob-TP=7-4=3,我们可以得到 P r e c i s i o n = T P T P + F P = 4 4 + 1 = 0.80 \mathrm{Precision = \frac{TP}{TP + FP} = \frac{4}{4+1}=0.80} Precision=TP+FPTP=4+14=0.80 R e c a l l = T P T P + F N = 4 4 + 3 = 0.57 \mathrm{Recall = \frac{TP}{TP + FN} = \frac{4}{4+3}=0.57} Recall=TP+FNTP=4+34=0.57

全部计算完毕后,结果如下表所示。

RankPrecisionRecall
11.00.14
21.00.28
31.00.42
41.00.57
50.800.57
60.660.57
70.710.71

我们可以根据求得的一系列的 Precision 和 Recall 绘制 P-R 曲线。以 Recall 为横坐标,Precision 为纵坐标得到 P-R 曲线,如下图所示。

在绘制 P-R 曲线时需注意:对于 Recall(横坐标)需要滤除一些重复数据(图中用框框住的即为参与计算的点,有两个点没有被框,它俩不参与 AP 的计算)。根据表中的数据可知,Recall=0.57 有 3 个值,此时需保留 Precision 最大的值,即:

RankPrecisionRecall
11.00.14
21.00.28
31.00.42
41.00.57
50.800.57
60.660.57
70.710.71

图中阴影部分的面积就是 AP,计算如下(重复的 Recall 已经滤除):

RankPrecisionRecall
11.00.14
21.00.28
31.00.42
41.00.57
60.710.71

R e c a l l = ∑ i = 1 R a n k ( R e c a l l i − R e c a l l i − 1 ) × max ⁡ ( P r e c i s i o n i , . . . , R a n k ) R e c a l l = ∑ i = 本行 R a n k ( R e c a l l 本行 − R e c a l l 上一行 ) × 本行及以下最大的 P r e c i s i o n \begin{aligned} \mathrm{Recall} & = \sum_{i=1}^{\mathrm{Rank}} (\mathrm{Recall}_i -\mathrm{Recall}_{i-1}) \times \max(\mathrm{Precision}_{ i, ..., \mathrm{Rank}}) \\ \mathrm{Recall} & = \sum_{i=本行}^{\mathrm{Rank}} (\mathrm{Recall}_{本行} -\mathrm{Recall}_{上一行}) \times 本行及以下最大的\mathrm{Precision} \end{aligned} RecallRecall=i=1Rank(RecalliRecalli1)×max(Precisioni,...,Rank)=i=本行Rank(Recall本行Recall上一行)×本行及以下最大的Precision

根据公式可以求得阴影的面积,即 AP 为:

R e c a l l = ( 0.14 − 0 ) × 1.0 + ( 0.28 − 0.14 ) × 1.0 + ( 0.42 − 0.28 ) × 1.0 + ( 0.57 − 0.42 ) × 1.0 + ( 0.71 − 0.57 ) × 0.71 = 0.6694 \begin{aligned} \mathrm{Recall} & = (0.14 - 0) \times 1.0 + (0.28 - 0.14) \times 1.0 + (0.42 - 0.28) \times 1.0 + (0.57 - 0.42) \times 1.0 + (0.71 - 0.57) \times 0.71 \\ & = 0.6694 \end{aligned} Recall=(0.140)×1.0+(0.280.14)×1.0+(0.420.28)×1.0+(0.570.42)×1.0+(0.710.57)×0.71=0.6694

了解完 AP 后我们就可以进一步得到一个新的指标 —— mAP。

1.3 mAP(mean Average Precision,即各类别 AP 的平均值)

mAP 就是各类别 AP 的平均值,计算公式如下:

m A P = 1 n c ∑ i = 1 n c A P i \mathrm{mAP = \frac{1}{nc}\sum^{nc}_{i=1}AP_i} mAP=nc1i=1ncAPi

其中 nc 为类别数。

1.4 注意事项

以上的 TP、FP、FN 都是经过 NMS 处理后得到的预测框。

2. MS COCO 评价指标中每条数据的含义

MS COCO 官网说明:https://cocodataset.org/#detection-eval

Note:图片中虽然写的是 AP,但实际上表示的是 mAP。

2.1 Average Precision (AP)

  1. A P \mathrm{AP} AP:MS COCO 的主要评价指标,设置的 IoU 阈值为 IoU = range(0.5, 1.00, 0.05) 共 10 个 IoU 的 mAP 的均值,计算公式如下:
    A P = 1 10 ( m A P I o U = 0.5 + m A P I o U = 0.55 + m A P I o U = 0.60 + m A P I o U = 0.65 + m A P I o U = 0.70 + m A P I o U = 0.75 + m A P I o U = 0.80 + m A P I o U = 0.85 + m A P I o U = 0.9 + m A P I o U = 0.95 ) \mathrm{AP = \frac{1}{10}(mAP^{IoU=0.5} + mAP^{IoU=0.55} + mAP^{IoU=0.60} + mAP^{IoU=0.65} + mAP^{IoU=0.70} + mAP^{IoU=0.75} + mAP^{IoU=0.80} + mAP^{IoU=0.85} + mAP^{IoU=0.9} + mAP^{IoU=0.95})} AP=101(mAPIoU=0.5+mAPIoU=0.55+mAPIoU=0.60+mAPIoU=0.65+mAPIoU=0.70+mAPIoU=0.75+mAPIoU=0.80+mAPIoU=0.85+mAPIoU=0.9+mAPIoU=0.95)
  2. A P I o U = 0.50 \mathrm{AP^{IoU}=0.50} APIoU=0.50:将 IoU 阈值设置为 0.5 得到的 mAP 值(就是上面我们举的例子),这个取值也是 PASCAL VOC 的评价指标。
  3. A P I o U = 0.75 \mathrm{AP^{IoU}=0.75} APIoU=0.75:是更加严格的标准(因为 IoU 的阈值越大,说明网络预测框与 GT 重合度越来越高 -> 目标的定位越来越准,这对网络来说是很难的)。

2.2 Across Scales

  1. APsmallmAP 针对小目标 若检测目标(GT)的像素面积小于 3 2 2 32^2 322,则将其归为小目标 ——衡量网络对于小目标的平均查准率
  2. APmediummAP 针对中目标 若检测目标(GT)的像素面积在 [ 3 2 2 , 9 6 2 ] [32^2, 96^2] [322,962] 之间,则将其归为中目标 ——衡量网络对于中等目标的平均查准率
  3. APlargemAP 针对大目标 若检测目标(GT)的像素面积大于 9 6 2 96^2 962,则将其归为大目标 ——衡量网络对于大目标的平均查准率

通过这三个指标可以看出该目标检测网络对于不同尺度目标的检测效果。如果我们的任务需要检测的目标都是较小的,我们应该更加关注与 A P s m a l l \mathrm{AP^{small}} APsmall 参数而不是 A P l a r g e \mathrm{AP^{large}} APlarge

2.3 Average Recall (AR)

对于目标检测网络,在代码部分会限制每张图片最终预测框的数量,这里的 max 就是这个数量。如 max=100,即每张图片最终预测 100 个预测框。而这里的 A R m a x = 100 \mathrm{AR^{max}=100} ARmax=100 就表示在每张图片预测框阈值为 100 的情况下,平均的查全率(Recall)是多少。

  1. A R m a x = 1 \mathrm{AR^{max}=1} ARmax=1:在每张图片预测框数量阈值为 1 的情况下,平均的查全率(Recall)是多少
  2. A R m a x = 10 \mathrm{AR^{max}=10} ARmax=10:在每张图片预测框数量阈值为 10 的情况下,平均的查全率(Recall)是多少
  3. A R m a x = 100 \mathrm{AR^{max}=100} ARmax=100:在每张图片预测框数量阈值为 100 的情况下,平均的查全率(Recall)是多少

从上图可以看到, A R m a x = 100 = 64 % \mathrm{AR^{max}=100}=64\% ARmax=100=64% A R m a x = 10 = 63.3 % \mathrm{AR^{max}=10}=63.3\% ARmax=10=63.3% A R m a x = 1 = 45.2 % \mathrm{AR^{max}=1}=45.2\% ARmax=1=45.2%。这说明 max 取 100 和取 10 相差不大,进一步说明了,模型训练时使用的数据集每张图片中目标(GT)的数目并不是很多,基本上在 10 左右;而当预测框数量限制在 1 时,它的 AR 仅为 45.2%,说明每张图片的目标个数一般是 >1 的。

2.4 AR Across Scales

与 AP、AP across scales 类似,AR across scales 表示对应不同目标尺度的 AR

  1. A R s m a l l \mathrm{AR^{small}} ARsmallAR 针对小目标 若检测目标(GT)的像素面积小于 3 2 2 32^2 322,则将其归为小目标 ——衡量网络对于小目标的平均查全率(Recall)
  2. A R m e d i u m \mathrm{AR^{medium}} ARmediumAR 针对中目标 若检测目标(GT)的像素面积在 [ 3 2 2 , 9 6 2 ] [32^2, 96^2] [322,962] 之间,则将其归为中目标 ——衡量网络对于中等目标的平均查全率(Recall)
  3. A R l a r g e \mathrm{AR^{large}} ARlargeAR 针对大目标 若检测目标(GT)的像素面积大于 9 6 2 96^2 962,则将其归为大目标 ——衡量网络对于大目标的平均查全率(Recall)

3. 各种指标的选择 —— 基于不同的任务

不同的任务需要使用不同的指标。

3.1 mAP

  • 于 PASCAL VOC 的 mAP 来说, A P I o U = 0.50 \mathrm{AP^{IoU}=0.50} APIoU=0.50 是要看的,因为它是 PASCAL VOC 的主要评价指标。
  • 对于 MS COCO 数据集来说, A P \mathrm{AP} AP(第一行,10 个 mAP 的平均)是要看的,因为它是 MS COCO 的主要评价指标。
  • 如果我们对 目标框定位精度要求较高 的话,我们可以关注 A P I o U = 0.75 \mathrm{AP^{IoU}=0.75} APIoU=0.75
  • 如果我们对 小目标检测要求比较高 的话,我们可以关注 A P s m a l l \mathrm{AP^{small}} APsmall,通过这个值可以了解网络对于小目标检测的平均查准率(整体情况)
  • 如果我们对 中目标检测要求比较高 的话,我们可以关注 A P m e d i u m \mathrm{AP^{medium}} APmedium
  • 如果我们对 大目标检测要求比较高 的话,我们可以关注 A P l a r g e \mathrm{AP^{large}} APlarge

3.2 AR

主要关注下面两个指标:

  1. A R m a x = 10 \mathrm{AR^{max}=10} ARmax=10
  2. A R m a x = 100 \mathrm{AR^{max}=100} ARmax=100

如果它俩 AR(平均查全率)相差很小的话, 可以减少网络预测框的个数,从而提高目标检测的效率。

参考

  1. 目标检测mAP计算以及coco评价标准
  2. COCO数据集介绍

这篇关于MS COCO数据集的评价标准以及不同指标的选择推荐(AP、mAP、MS COCO、AR、@、0.5、0.75、1、目标检测、评价指标)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/282295

相关文章

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

如何选择适合孤独症兄妹的学校?

在探索适合孤独症儿童教育的道路上,每一位家长都面临着前所未有的挑战与抉择。当这份责任落在拥有孤独症兄妹的家庭肩上时,选择一所能够同时满足两个孩子特殊需求的学校,更显得尤为关键。本文将探讨如何为这样的家庭做出明智的选择,并介绍星贝育园自闭症儿童寄宿制学校作为一个值得考虑的选项。 理解孤独症儿童的独特性 孤独症,这一复杂的神经发育障碍,影响着儿童的社交互动、沟通能力以及行为模式。对于拥有孤独症兄

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

异构存储(冷热数据分离)

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储Shell操作 (1)查看当前有哪些存储策略可以用 [lytfly@hadoop102 hadoop-3.1.4]$ hdfs storagepolicies -listPolicies (2)为指定路径(数据存储目录)设置指定的存储策略 hdfs storagepolicies -setStoragePo

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

2. c#从不同cs的文件调用函数

1.文件目录如下: 2. Program.cs文件的主函数如下 using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;using System.Windows.Forms;namespace datasAnalysis{internal static