自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

機器學(xué)習(xí)中的召回、精確、準(zhǔn)確,究竟是什么指標(biāo)?

人工智能 機器學(xué)習(xí)
在之前的文章當(dāng)中我們已經(jīng)介紹了好幾個模型了,有樸素貝葉斯、KNN、KMeans、EM還有線性回歸和邏輯回歸。今天我們來和大家聊聊該怎么評估這些模型。

在之前的文章當(dāng)中我們已經(jīng)介紹了好幾個模型了,有樸素貝葉斯、KNN、KMeans、EM還有線性回歸和邏輯回歸。今天我們來和大家聊聊該怎么評估這些模型。

[[323524]]

均方差

這個概念很簡單,它和回歸模型當(dāng)中的損失函數(shù)是一樣的??梢岳斫獬晌覀冾A(yù)測值和真實值之間的偏差,我們用y表示樣本的真實值,y_表示模型的預(yù)測值,那么均方差可以寫成:

機器學(xué)習(xí)中的召回、精確、準(zhǔn)確,究竟是什么指標(biāo)?

這里的m是樣本的數(shù)量,是一個常數(shù),我們也可以忽略,如果忽略的話就是平方差和,好像并沒有一個專門的術(shù)語。而且如果不算均值的話,可能這個和會很大,所以通常我們會計算均值。

這里的MSE是mean square error的縮寫,也就是平均方差的意思。我們都知道方差在統(tǒng)計學(xué)當(dāng)中表示樣本距離均值的震蕩程度,方差越大,表示一個指標(biāo)越不穩(wěn)定,波動幅度越大。在回歸模型的場景當(dāng)中,我們衡量的不是距離均值的離散程度,而是距離實際值的離散程度。這兩者的含義非常近似,應(yīng)該不難理解。

均方差越小說明模型距離真實值越接近,所以它既可以作為模型訓(xùn)練時候的損失函數(shù),又可以作為我們?nèi)斯彶槟P托Ч膮⒖肌?/p>

回歸模型一般使用的指標(biāo)就是均方差,而分類模型則要復(fù)雜得多,會涉及好幾個指標(biāo),我們一個一個來看。

TP, TN, FP和FN

這四個值看起來傻傻分不清楚,但是一旦我們理解了它們的英文,其實很好懂。T表示true,也就是真,那么F自然表示false,也就是假。P表示positive,可以理解成陽性,N就是negative,就是陰性。這里的陰陽沒有邏輯上的含義,表示的只是類別,我們也可以理解成01或者是甲乙,因為沒有邏輯因素,所以叫什么都一樣。

所以這四個就是真假和陰陽的排列組合,有T的都表示真,可以理解成預(yù)測正確。比如TP就是真陽,也就是說檢測是陽性,實際上也是陽性。同理,TN就是真陰,檢測是陰性,實際上也是陰性。有F則表示預(yù)測錯誤,F(xiàn)P是假陽,也就是檢測是陽性,但是實際上是陰性,表示檢測錯了。同理,F(xiàn)N是假陰,檢測是陰性,但是實際上是陽性。

我們用醫(yī)院檢測代入這幾個值當(dāng)中一下就理解了,TP和TN表示檢測試劑給力,檢測準(zhǔn)確,檢測是陰就是陰,是陽就是陽。而FP和FN說明檢測試劑不行,檢測錯了,要么就把沒病的檢測出了有病,要么就是明明有病沒檢測出來。顯然在醫(yī)療檢測的場景當(dāng)中,假陽是可以接受的,假陰不行。因為假陽我們還可以再檢測,來確定究竟是陰還是陽,如果假陰放過了病例會對病人產(chǎn)生不好的影響,所以一般來說醫(yī)療檢測試劑都會比標(biāo)準(zhǔn)更加敏感,這樣才能盡量不放過漏網(wǎng)之魚。

召回率

召回率的英文是recall,我覺得這個詞翻譯得很好,中文的意思和英文基本一致,也有的教材當(dāng)中翻譯成查全率,我感覺差了點意思,還是叫召回率更加信雅達(dá)一些。

我們假設(shè)一個場景,比如說甲是一個排長,手下有10個小兵,有一個任務(wù)需要甲召集所有成員去執(zhí)行。甲一聲令下,召來了8個。那么召回率就是80%。我們放入機器學(xué)習(xí)的場景當(dāng)中去也是一樣的,在二分類場景當(dāng)中,一般情況下模型考慮的主要都是正例??梢岳斫獬缮忱锾越?,負(fù)例就是沙,一般價值不大,而金子就是正例,就是我們需要的。所以召回率就是我們預(yù)測準(zhǔn)確的正例占所有正例的比例。

我們把上面的TP、TN、FP和FN代入計算,我們可以得到:

機器學(xué)習(xí)中的召回、精確、準(zhǔn)確,究竟是什么指標(biāo)?

TP就是我們預(yù)測準(zhǔn)確的正例,也就是被我們召回的部分,那么所有的正例有多少呢?答案是召回的正例加上沒有召回的正例,沒有召回的正例說明預(yù)測錯了,預(yù)測成負(fù)例了。但是它們并不是負(fù)例,所以就是假陰性的樣本,自然也就是FN。這里有一點點繞,關(guān)鍵點是召回是針對正例的,不操心負(fù)例的情況。就好比你去淘金,你顯然不會關(guān)心沙子的情況,只會關(guān)心金子有沒有撈到,一個意思。

精確率和準(zhǔn)確率

你可能在很多機器學(xué)習(xí)的書本當(dāng)中看到過這兩個值,有可能你看的時候還記得它們之間的區(qū)別,但是看完之后就忘記了,甚至有可能從此陷入了混淆的狀態(tài)。這并不稀奇,我也經(jīng)歷過,甚至我在面試的時候還搞錯了。

這里面的原因很大一部分在于翻譯問題,這兩個值翻譯得太接近了。我們從中文上很難區(qū)分出精確率和準(zhǔn)確率有什么差別,在我們看來,這兩個詞是等價的,然而英文當(dāng)中這兩個詞是做了區(qū)分的。所以我們要搞清楚這兩者,需要來看英文的解釋,而不是只是記住一個概念。

在英文當(dāng)中,精確率的英文是precision,詞典當(dāng)中的解釋是:precision is defined as the proportion of the true positives against all the positive results (both true positives and false positives). 翻譯過來是所有預(yù)測為正例的樣本當(dāng)中,正確的比例。

準(zhǔn)確率英文是accuracy,英文解釋是:accuracy is the proportion of true results (both true positives and true negatives) in the population. 翻譯過來也就是預(yù)測結(jié)果準(zhǔn)確的概率,既然是預(yù)測結(jié)果準(zhǔn)確,那么顯然既包含了正例也包含了負(fù)例。

從英文的描述上我們可以明顯地看出這兩個概念的差異,兩個都是預(yù)測正確的部分,但精確率只針對正例,而準(zhǔn)確率針對的是所有樣本,既包含正例也包含負(fù)例。我個人覺得這兩者翻譯成篩選正確率和判斷正確率比較容易理解一些,如果只有精確率和準(zhǔn)確率可能還好,再加上上面說的召回率,可能真的要暈菜的。

我們來舉一個例子,來把這三個指標(biāo)都說清楚。

假設(shè)在國共內(nèi)戰(zhàn)期間,tg要抓軍統(tǒng)的特務(wù),已經(jīng)鎖定了一個村子中的100個百姓,交給甲乙兩個人去找出特務(wù)。其中甲挑選了18個人,其中有12個特務(wù),乙呢挑選了10個人,其中有8個特務(wù)。假設(shè)我們知道一共有20個特務(wù),那么請問,這兩個人的召回、準(zhǔn)確和精確率分別是多少?

[[323527]]

我們先來看甲,我們先從簡單的召回開始,既然一共有20個特務(wù),甲找出了其中的12個,那么召回率就是12/20 = 0.6。精確是篩選正確率,我們一共篩選出了18人,其中有12個是正確的,所以精確率是12/18 = 2/3。準(zhǔn)確率呢是整體的正確率,它判斷正確了12個特務(wù)和80個普通百姓,準(zhǔn)確率是(12 + 82 - 8) / 100,也就是86%。

我們再來看乙,它的召回率是8 / 20 = 0.4,精確率呢是8 / 10 = 0.8,準(zhǔn)確率是(8 + 90 - 12) / 100 = 86%。

從上面這個例子當(dāng)中,我們可以得到精確率和準(zhǔn)確率的公式。

其中精確率是篩選正確的概率,就是篩選正確的數(shù)量除以篩選出來的樣本數(shù),篩選正確的數(shù)量自然就是TP,篩選出來的總數(shù)除了正確的還有錯誤的,篩選錯誤的也就是FP,所以:

機器學(xué)習(xí)中的召回、精確、準(zhǔn)確,究竟是什么指標(biāo)?

準(zhǔn)確率是整體上來正確率,也就是所有正確的除以所有樣本數(shù)量:

機器學(xué)習(xí)中的召回、精確、準(zhǔn)確,究竟是什么指標(biāo)?

recall和precision的取舍

我們繼續(xù)研究剛才的例子,從甲乙兩人的結(jié)果當(dāng)中我們會發(fā)現(xiàn)他們兩人的準(zhǔn)確率都很高,都是86%。但是你會發(fā)現(xiàn)這個值沒什么意義,因為我如果一個特務(wù)也沒抓出來,準(zhǔn)確率一樣可以有80%。因為負(fù)樣本太多了,拉升了整體的準(zhǔn)確率,并不能說明問題。如果負(fù)樣本占據(jù)的比例還要大,那么準(zhǔn)確率還會進(jìn)一步提升。

比如在醫(yī)療行業(yè)當(dāng)中,一些疾病的檢測看準(zhǔn)確率是沒有用的,因為發(fā)病率本身并不高,大量的都是負(fù)樣本。如果啥也檢測不出來,一樣可以得出很高的準(zhǔn)確率。明白了這點之后,也會減少很多忽悠,比如很多假藥或者假儀器騙子用準(zhǔn)確率來說事欺騙消費者。

在負(fù)例不重要的場景當(dāng)中,我們一般不會參考準(zhǔn)確率,因為會受到負(fù)例的影響。那么recall和precision這兩個值我們應(yīng)該參考哪個呢?

我們再回到問題的場景當(dāng)中,甲乙兩個人,甲的召回更高,20個特務(wù)里找到了其中的12個。而乙的準(zhǔn)確率更高,找出的10個人里面有8個是特務(wù),命中率很高。那么這兩個人究竟誰更強呢?

代入問題的場景,你會發(fā)現(xiàn)這個問題沒有標(biāo)準(zhǔn)答案,答案完全取決于他們兩人的上司。如果上司是一個利己主義者,更加注重業(yè)績,寧可殺錯不可放過,那么他顯然會覺得甲更好,因為抓到的特務(wù)更多。如果上司是悲天憫人的仁者,他顯然會更喜歡乙,少抓錯一點就少給老百姓帶來一些損傷。所以這并不是一個技術(shù)問題,而是一個哲學(xué)問題。

哪一個更好完全取決于看待問題的角度和問題的場景,如果我們換一個場景就不一樣了。如果是疾病篩查的場景,我可能會希望召回更高的,這樣可以盡可能多地召回正例。至于檢測結(jié)果不準(zhǔn)確,我們可以多測幾次來增加置信度,但是如果放過了一些樣本就會帶來患者漏診的風(fēng)險。如果是風(fēng)控場景,由于查到了作弊行為后往往會采取嚴(yán)厲的處罰,我們當(dāng)然更關(guān)注精確率,因為一旦抓錯會給用戶帶來巨大的損傷,可能就卸載app再也不來了,所以寧可放過也不可殺錯。

有沒有一個指標(biāo)可以綜合考慮召回和精確呢?還是有的,這個值叫做F1-score。

它的定義是:

機器學(xué)習(xí)中的召回、精確、準(zhǔn)確,究竟是什么指標(biāo)?

如果熟悉數(shù)學(xué)的同學(xué)會發(fā)現(xiàn)f1-score本質(zhì)上是recall和precision的調(diào)合平均數(shù),我們可以用它來均衡recall和precision,方便我們做取舍。我們也可以計算一下剛才甲和乙的f1-score,計算下來,甲的f1-score是0.631,乙的f1-score是0.533,所以整體上來說還是甲更好。

recall和precision的trade-off

我們繼續(xù)剛才的例子,如果你們做過許多模型,你們會發(fā)現(xiàn)在機器學(xué)習(xí)領(lǐng)域當(dāng)中,recall和precision是不可調(diào)和的兩個值,一個模型精確率高了,往往召回就低,而召回高了,精確率就低,我們很難做到精確和召回一起提升,這是為什么呢?

我用邏輯回歸模型舉例,我們來看下下面這張圖:

機器學(xué)習(xí)中的召回、精確、準(zhǔn)確,究竟是什么指標(biāo)?

圖中的l1,l2和l3可以看成是3個不同的模型,顯然我們可以看得出來l1的精確率最高,但是召回最低,而l3的精確最低,但是召回最高。

這是由兩個原因?qū)е碌模谝粋€原因是我們的樣本存在誤差,尤其是臨界邊緣的數(shù)據(jù)由于存在誤差,會互相滲透。第二個原因是模型的擬合能力有限,比如在這個例子當(dāng)中,我們用的是線性模型,我們只能以線性平面劃分樣本。如果擴大召回,就必然會導(dǎo)致混入更多錯誤樣本,如果提升精度,必然召回會下降。

顯然,這是一個交易,英文是trade-off,我們不能都要,必須要在兩者之間做個選擇。當(dāng)然如果我們換成擬合能力更強大的模型,比如gbdt或者是神經(jīng)網(wǎng)絡(luò),會取得更好的效果,但是也并非是沒有代價的,越復(fù)雜的模型訓(xùn)練需要的樣本數(shù)量也就越多。如果沒有足夠的樣本,模型越復(fù)雜越難收斂。

這是一個考驗算法工程師的經(jīng)典場景,我們需要根據(jù)我們的場景做出合適的選擇。究竟是要擴大召回,還是提高精確。以邏輯回歸模型舉例,我們以0.5位閾值來判斷是正例還是負(fù)例,理論上來說,我們提升這個閾值,就可以提升模型的精確度,但是與此同時召回率也會下降。反之,如果我們降低這個閾值,我們會得到更多的正例,同時也意味著會有更多的負(fù)例被誤判成了正例,精確度也就降低。

總結(jié)

今天介紹的這幾個概念不僅是機器學(xué)習(xí)基礎(chǔ)中的基礎(chǔ),更是面試當(dāng)中的???,作為一個合格的算法工程師,這是必須要理解的內(nèi)容。

如果覺得迷糊了,可以想想那個抓間諜的例子,非常生動有效,一定可以幫助你們加深記憶。

 

責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2014-06-27 09:35:16

機器學(xué)習(xí)

2011-02-16 16:13:40

Debian

2015-09-29 09:47:14

2018-09-10 13:47:21

數(shù)據(jù)科學(xué)統(tǒng)計學(xué)決策

2019-05-27 15:30:44

Node.jsJavaScript前端

2022-06-13 09:51:35

UWB超寬帶無線載波通信技術(shù)

2012-05-28 22:49:50

PureView

2011-08-04 13:24:28

IT運維

2015-08-26 09:54:19

物聯(lián)網(wǎng)

2014-07-28 08:28:38

Windows

2014-08-07 10:32:02

Windows微軟

2009-07-30 14:43:30

認(rèn)識BSM

2021-08-09 05:19:08

Provider 前端前端代碼

2020-07-08 08:09:08

邊緣計算邊緣云云平臺

2024-04-01 08:24:56

通信協(xié)議數(shù)據(jù)

2021-03-08 21:44:33

以太坊區(qū)塊鏈比特幣

2022-02-07 15:20:53

去中心化加密經(jīng)濟學(xué)加密貨幣

2022-10-19 12:23:50

緩存CDN外部緩存

2015-06-04 10:26:50

2012-09-17 09:52:20

云計算云存儲公有云
點贊
收藏

51CTO技術(shù)棧公眾號