本文正在参与「金石方案 . 瓜分6万现金大奖」

一、从绩效查核说起

绩效查核,是许多人力资源从业者(HR)的噩梦。这在IT职业尤为杰出。

我见过许多IT公司的HR,因为思考怎么对程序员做查核,掉光了头发。直到他们回到劳动密集型企业,又重新长出了浓密的黑发。

许多HR在对程序员们做绩效查核宣讲的时候,都会面临激辩群狮、虎、豹、大象,最后无言以对,自残而退。

其实,他们纠结的问题基本上便是:质与量,究竟该怎么衡量和判断。

我觉得对程序员,就要用程序员的方法去查核。只要这样,才干做到无懈可击,令其信服。

下面我就来讲讲,程序员是怎么给一套程序做“绩效查核”的。

他们给程序做查核时,也是有目标的。而这个目标,他们自己也很难找出缝隙,也会让他们左右为难。可是终究却有处理方案。

二、程序员的目标

假定程序员写了一个程序,要从一堆货物里边,辨认出合格品和次品。

这个程序,做个不恰当的类比,就像是HR搞了一套查核目标,要从很多职工傍边,筛选出优异职工与普通职工。

首先,咱们无法一眼就看出合格品和次品。就像职工脸上没有贴着“优异”相同。所以,咱们看到的样本基本是:打眼一瞧,都相同。

从HR的考核,详解AI的:准确率、精确率、召回率

可是,它们又是有细微差别的,比方概括、色彩、巨细、透明度等。咱们正是靠这些多维度的特征,依照查核规矩,来评判出是否合格。

这就比方咱们有一副奇特的眼镜,戴上一看,样本是否合格,它们就显现出了原形。

从HR的考核,详解AI的:准确率、精确率、召回率

当然,这是终究理想的状况。实际上,这个眼镜需要不断实施,反馈,调整。

所以,程序员就用右手,写了一个人工智能的程序。随后,又训练了一套模型,相当于制度的试运行。终究,这套程序能够把合格的样本,用蓝色的小圈,框出来。

从HR的考核,详解AI的:准确率、精确率、召回率

咱们从天主视角看,红色的点代表合格,灰色代表不合格。其实,程序是不知道底牌的。

那咱们看到,A圈辨认的很对,圈中的样本代表合格,它都辨认对了。B圈差点儿意思,将一些次品也辨认成合格了。C圈整个完蛋,黑白倒置,辨认的一切合格,实际上满是次品(这种查核完满是逼优异的人离职的节奏)。

2.1 T-F-P-N

这儿边引入一套概念,因为后边要用到公式进行计算。

从HR的考核,详解AI的:准确率、精确率、召回率

假如咱们的程序辨认出了一些合格的样本。那么,基本上分为这么两种状况。

第一,它辨认对了。咱们用T也便是true表明它成功了。这儿边其实还分为两种状况:1、把实际上合格的,断定成了合格。这个断定的合格咱们叫P,也便是positive。那么这类状况便是TP;2、断定为合格之外的那些样本,实际上它也真的不合格(Negative)。那这类也算是评对了,咱们把这类叫做TN

第二,它辨认错了。咱们用F也便是false表明它犯错了。这儿边其实也分为两种状况:1、把实际上不合格的,断定成了合格。那么这类状况便是FP;2、断定为合格之外的那些样本,实际上也有合格的,可是你没有辨认出来,你以为它Negative,咱们把这类叫做FN

HR看到上面的TPTNFPFN四种状况,骂骂咧咧地关了页面,走了。只剩下由程序员转行的HR,还在继续看。

2.2 准确率 Accuracy

程序员引入的第一个评判规范叫准确率

准确率表明我猜对的占比。

比方,我在研发部评选优异职工。一切的100名职工中,我评出来90个优异,实际上这90个的确优异。那么我这套查核的准确率便是100%。

准确率的公式是:Accuracy=(TP+TN)/(TP+TN+FP+FN),表明猜测正确的占总数的比重。

准确率这种目标,看起来无懈可击,十分完美。

可是,程序员并不这么以为。程序员觉得缝隙很大,很容易钻空子,并且极端不公正。

举个比方,假如有一套辨认程序或许点评制度,它看谁都像是好人。并且,它又凑巧都遇到了好人。那么,部分来看,它的准确率目标,十分棒。可是,换一个视点,它居然很糟糕。

就像是我开发了一套辨认癌症病人的程序,这个程序根本不思考,给谁检测都说没有。

从HR的考核,详解AI的:准确率、精确率、召回率

那么,你说准确率高不高,十分高。可是,这真没什么用。患癌症的人数,100人中可能只要1例,它的效果便是要找出这1例,而不是那些健康的99例。

它虽然相对准确,可是绝对不准确。

因而,程序员又提出了第二个目标:准确率。

2.3 准确率 Precision

准确率,是用来确保不犯错的。

比方审判,假如你没有足够的依据证明其有罪,那么便是无罪。不要求你处理多少案子,凡是处理一个,都要确保准确。这,便是高准确率。

准确率的公式便是:Precision=TP/(TP+FP),表明猜测正确的占猜测数量的比重。

比方,总共有1000个样本,我猜测了其中100个样本。这100个傍边,99个猜测对了,1个样本猜测错了,那么准确率便是99%。它和准确率的差异便是,它要对每一个样本都担任,一个都不能错。

假如说高准确率,确保了集体的利益。那么,高准确率,确保了个别的利益。

可是,程序员发现,准确率虽然公正公正,可是缝隙更大。

从HR的考核,详解AI的:准确率、精确率、召回率

举个比方,我猜测了3个样本,这3个样本全都正确。带入公式Precision=TP/(TP+FP)计算便是:3/(3+0)=100%。这儿边,咱们看到一个小技巧。猜测几个不重要,关键是要让FP等于0。一旦FP=0,准确率就恒为100%

也便是说,高准确率虽然着重,要把每一件经手的事情干好,可是也有一个逻辑缝隙:干100件事和干1件事并不重要,不犯错才重要。这可能会导致,少干才会少犯错,并且拣着容易的活干也会少犯错。

所以,为了处理上面的问题,程序员又想出一个目标:召回率

2.4 召回率 Recall

这次咱们先看召回率的公式:Recall=TP/(TP+FN)

因为有了上面的经历,这次咱们先找它的缝隙,只需让FN=0,这个召回率就会一向是100%

那么,咱们再回忆一下,FN代表什么?

“咱们用F也便是false表明它犯错了。断定为合格之外的那些样本,实际上也有合格的,可是你以为它不合格,断定了Negative,这类叫做FN。”

怎么让FN等于零,那便是扩大检测规模。

从HR的考核,详解AI的:准确率、精确率、召回率

因为公式是Recall=TP/(TP+FN),里边并没有触及FPTN

因而,只需扩大检测规模,哪怕存在误判的滥竽充数者FP,就会让FN=0,不会影响100%的召回率。

所以,召回率的精华能够用一句话概括:“宁可错杀一千,绝不放走一个”。

这样就处理了那些少干活、拣活干的状况。因为,只要确保一切活都干了,才干提高召回率。

三、综合权衡

现在咱们来总结一下,程序员使用的这些目标。

准确率发起尽量把一切事情都干好,准确率要求尽量别在某一件事上出问题,召回率鼓舞尽量别让任何一件小事掉在地上。

这可能便是你老板一向要求的:要多,要快,还要好,还得省。

虽然程序员很抵触这类要求,可是他们仍然会对自己的程序提这样的要求。

下面可能是咱们希望的终究状况,每一个都被100%准确地辨认出来。

从HR的考核,详解AI的:准确率、精确率、召回率

并且,换一批样本,成果仍然不受影响。

可是,根据我多年的活生生的生活经历,又便宜,质量又好,花5块钱买了,随时能够卖5万的商品,不好找。这一点,程序员也知道。

因而,需要一个权衡。

权衡的意图便是即不麻烦,又省成本,最后成果还大体满足。权衡都要,最大的一个差异便是:权衡允许妥协。

有人说,权衡是中国几千年文明中的一个形而上学问题。你把成果引向这儿,属于说了一堆儿,可是又啥也没说。估量是想甩锅了。

并不是,程序员这儿就不存在形而上学问题(除了在我这儿能够运行之外)。遇到形而上学问题,你找他们评论,必定会得出一个确认的定论,即使这个答案是“我也不知道”。他们从不会说上半个小时,而没有明确的情绪。

对于权衡,程序员也是有一个公式的。

从HR的考核,详解AI的:准确率、精确率、召回率

这个公式HR就不必懂了,程序员能够去了解一下。

大体意思便是,召回率高(干的多),必然会导致准确率低(犯错多)。反之,干得少,犯错也少。因而引入一个参数用于调理决策成果。

假如的取值大于1,则表明着重召回率。合适创业阶段,鼓舞多干,先野蛮生长。

假如的取值小于1,则表明着重准确率。合适守业阶段,鼓舞干精,要稳打稳扎。

假如的取值为1,则表明两者都着重。可是,你不能要求都是100%,也不能容忍都是50%

从HR的考核,详解AI的:准确率、精确率、召回率

这么看,程序员仍是把决定权交给了使用者,他们只担任供给多种处理方案。

其实,假如我们有什么问题,能够问问身边的程序员。没准儿,他们会有处理方案。最起码,你多了一个看问题的视点。

我是ITF男孩,在是TF男孩,带你从IT视角看国际。