如何形象地解释 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的准确解释,请参考以下资料:

我们首先来看看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=1k(riri1)pi

3 mPR(simcv使用的评价指标)

以上是关于如何形象地解释 JavaScript 中 map,foreach,reduce 间的区别的主要内容,如果未能解决你的问题,请参考以下文章

如何形象地解释 JavaScript 中 map,foreach,reduce 间的区别

如何形象地解释 JavaScript 中 map,foreach,reduce 间的区别

如何形象地解释 JavaScript 中 mapforeachreduce 间的区别?

如何通俗地解释 PID 参数整定?

网络七层协议形象解释

JAVA中,类、对象、实体、实体类、实体对象之间存在怎样的联系??请高手做形象的解释。