如何形象地解释 JavaScript 中 map,foreach,reduce 间的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何形象地解释 JavaScript 中 map,foreach,reduce 间的区别相关的知识,希望对你有一定的参考价值。
遍历(foreach)映射(map)
累计(reduce )
假设我们有一个数组,每个元素是一个人。你面前站了一排人。
foreach 就是你按顺序一个一个跟他们做点什么,具体做什么,随便:
people.forEach(function (dude)
dude.pickUpSoap();
);
map 就是你手里拿一个盒子(一个新的数组),一个一个叫他们把钱包扔进去。结束的时候你获得了一个新的数组,里面是大家的钱包,钱包的顺序和人的顺序一一对应。
var wallets = people.map(function (dude)
return dude.wallet;
);
reduce 就是你拿着钱包,一个一个数过去看里面有多少钱啊?每检查一个,你就和前面的总和加一起来。这样结束的时候你就知道大家总共有多少钱了。
var totalMoney = wallets.reduce(function (countedMoney, wallet)
return countedMoney + wallet.money;
, 0); 参考技术A forEach: 对数组中每一个元素都运行函数,该方法没有返回值。如果你想对数据里的每一个元素进行处理,可以采用forEach来替换 for循环
map:对数组中每一个元素都运行函数, 返回由每次函数执行的结果组成的数组。果你想对数据里的每一个元素进行处理,可以采用forEach来替换 for循环,和forEach不同的是,它最终会返回一个新的数组,数组的元素是每次处理先前数组中元素返回的结果
reduce: 对数组中的所有元素调用指定的回调函数。 该回调函数的返回值为累积结果,并且此返回值在下一次调用该回调函数时作为参数提供。
《南溪的目标检测学习笔记》——目标检测的评价指标(mAP)
1 介绍
在本文中我们将介绍目标检测任务中的mAP~
2 COCO-mAP
在介绍mAP时,我们选择的是COCO-mAP,这是现在最为流行的指标;
关于COCO-mAP的形象解释,请参考视频《霹雳吧啦Wz ——目标检测mAP计算以及coco评价标准》
在具体介绍COCO-mAP的算法之前,我们先来对其概念进行一些引入性的解释,mAP其实上评价的是算法检测目标整体的性能,在评价整体性能时,我们能想到的最熟悉的指标就是PR值,这是最简单也是用的比较多的一种评价指标,那么mAP指的是PR吗?
答案是否定的,mAP不是PR值,但实际上,mAP可以看作是PR值的一种近似,它是模型在不同情况下的PR值的综合,也就是ROC曲线的面积;
2.1 ROC曲线的面积
这时,有人就要问了,为什么要用ROC曲线的面积,而不是之间使用PR值呢?
我们来看看下面的情况,以射击游戏为例:
Precision高,recall低
→
\\rightarrow
→ 打得准,跑了几个,子弹没有用多少
Recall高,precision低
→
\\rightarrow
→ 打中很多,但是不准,浪费许多子弹
那么这两个玩家,哪一个技术更好呢?
COCO认为,在不同任务中都可能有用,(比如:在子弹有限和子弹很多的情况下,可以设置不同的Top-K值,从而实现不同的策略效果)
(但是这个违反了“End-to-End”的判定原则,后期我们会对这点进行改进)
AP就是为了实现这一点而产生,这里的AP实际上就是对ROC曲线的一种离散近似;
2.2 mAP的计算
在学习COCO-mAP时,我们可以参考COCO官网关于这个部分的解释说明《COCO - Common Objects in Context - Detection Evaluation》
关于COCO-mAP的准确解释,请参考以下资料:
- 《详解object detection中的mAP》:详细解释了COCO-mAP的计算过程。
- 《霹雳吧啦Wz ——目标检测mAP计算以及coco评价标准》:视频讲解了COCO-mAP。
- 《COCO目标检测测评指标》:讲解了相关的原理和代码。
我们首先来看看AP的计算公式
A
P
=
1
k
∑
i
=
1
k
(
r
i
−
r
i
−
1
)
∗
p
i
AP = \\frac{1}{k} \\sum_{i=1}^{k} \\left ( r_i-r_{i-1}\\right) \\ast p_i
AP=k1i=1∑k(ri−ri−1)∗pi
3 mPR(simcv使用的评价指标)
以上是关于如何形象地解释 JavaScript 中 map,foreach,reduce 间的区别的主要内容,如果未能解决你的问题,请参考以下文章
如何形象地解释 JavaScript 中 map,foreach,reduce 间的区别
如何形象地解释 JavaScript 中 map,foreach,reduce 间的区别