假設(shè)檢驗(yàn)相關(guān)

首先結(jié)論如下,在對比兩個(gè)算法多個(gè)數(shù)據(jù)集上的表現(xiàn)時(shí):

  • 如果樣本配對(paired)且符合正態(tài)分布,優(yōu)先使用配對t檢測(paired t test)。
  • 如果樣本不符合正態(tài)分布,但符合配對,使用Wilcoxon Signed Ranks test。
  • 如果樣本既不符合正態(tài)分布,也不符合配對,甚至樣本量都不一樣大,可以嘗試Mann Whitney U test。值得注意的是,MW是用來處理獨(dú)立測量(independent measures)數(shù)據(jù),要分情況討論,后文會深入分析。

在對比多個(gè)算法多個(gè)數(shù)據(jù)集上的表現(xiàn)時(shí):

  • 如果樣本符合ANOVA(repeated measure)的假設(shè)(如正態(tài)、等方差),優(yōu)先使用ANOVA。
  • 如果樣本不符合ANOVA的假設(shè),使用Friedman test配合Nemenyi test做post-hoc。
  • 如果樣本量不一樣,或因?yàn)樘囟ㄔ虿荒苁褂肍riedman-Nemenyi,可以嘗試Kruskal Wallis配合Dunn's test。值得注意的是,這種方法是用來處理獨(dú)立測量數(shù)據(jù),要分情況討論。

文章結(jié)構(gòu)如下:(1-2) 算法對比的原因及陷阱 (3-4) 如何對比兩個(gè)算法 (5-6)如何對比多個(gè)算法 (7)如何根據(jù)數(shù)據(jù)特性選擇對比方法 (8)工具庫介紹。


1. 為什么需要對比算法性能?

統(tǒng)計(jì)學(xué)家George Box說過:“All models are wrong, but some are useful”(所有模型都是錯(cuò)誤,只不過其中一部分是有價(jià)值的)。通俗來說,任何算法都有局限性,所以不存在“通用最優(yōu)算法”,只有在特定情境下某種算法可能是漸進(jìn)最優(yōu)的。

因此,評估算法性能并選擇最優(yōu)算法是非常重要的。不幸的是,統(tǒng)計(jì)學(xué)評估還沒有在機(jī)器學(xué)習(xí)領(lǐng)域普及,很多評估往往是在一個(gè)數(shù)據(jù)上的簡單分析,因此證明效果有限。

2. 評估算法中的陷阱

首先我們常說的是要選擇一個(gè)正確的評估標(biāo)準(zhǔn),常見的有:準(zhǔn)確率(accuracy)、召回率(recall)、精準(zhǔn)率(precision)、ROC、Precision-Recall Curve、F1等。

選擇評估標(biāo)準(zhǔn)取決于目的和數(shù)據(jù)集特性。在較為平衡的數(shù)據(jù)集上(各類數(shù)據(jù)近似相等的情況下),這些評估標(biāo)準(zhǔn)性能差別不大。而在數(shù)據(jù)嚴(yán)重傾斜的情況下,選擇不適合的評估標(biāo)準(zhǔn),如準(zhǔn)確率,就會導(dǎo)致看起來很好,但實(shí)際無意義的結(jié)果。舉個(gè)例子,假設(shè)某稀有血型的比例(2%),模型只需要預(yù)測全部樣本為“非稀有血型”,那么準(zhǔn)確率就高達(dá)98%,但毫無意義。在這種情況下,選擇ROC或者精準(zhǔn)率可能就更加適當(dāng)。這方面的知識比較容易理解,很多科普書都有介紹,我們就不贅述了。

其次我們要正確理解測量方法,常見的有

  • 獨(dú)立測量(independent measures):不同樣本的觀測對象是獨(dú)立的,不存在關(guān)聯(lián)
  • 重復(fù)測量(repeated measures):樣本中使用的觀測對象是相同的,僅僅是獨(dú)立變量在上面的作用結(jié)果不同
  • 以及成對測量(matched pair):不同樣本中采用不同的觀測對象,但盡量使得樣本間的觀測對象成對相似

舉個(gè)例子,我們想要分析刷知乎時(shí)間(每天3小時(shí) vs. 每天10小時(shí))對于大學(xué)生成績的影響。如果我們使用相同的20個(gè)學(xué)生,觀察他們每天3小時(shí)和10小時(shí)的區(qū)別,那就是重復(fù)測量。如果我們選擇40個(gè)學(xué)生,分成兩組每組20人,再分別觀察那就是獨(dú)立測量。如果我們先找20個(gè)學(xué)生,再找20個(gè)和他們非常相似的大學(xué)生,并配對觀察,就是成對相似。

我們發(fā)現(xiàn),當(dāng)錯(cuò)誤的理解測量方式時(shí),就無法使用正確的統(tǒng)計(jì)學(xué)手段進(jìn)行分析

在這篇文章中我們默認(rèn):評估不同算法在多個(gè)相同數(shù)據(jù)集上的表現(xiàn)屬于重復(fù)測量,而特例將會在第七部分討論。同時(shí),本文介紹的方法可以用于對比任何評估標(biāo)準(zhǔn),如準(zhǔn)確度、精準(zhǔn)度等,本文中默認(rèn)討論準(zhǔn)確度。

3. 兩種算法間的比較:不恰當(dāng)方法

<noscript>
image

</noscript>

image

<figcaption>圖1. 兩種算法在14個(gè)數(shù)據(jù)集上的準(zhǔn)確率 [1]</figcaption>

圖1展示了兩種決策樹方法(C4.5,C4.5+m)在14個(gè)數(shù)據(jù)集上的準(zhǔn)確率。那么該如何對比兩種算法呢?先說幾種錯(cuò)誤(不恰當(dāng))的方法:

不恰當(dāng)方法1:求每個(gè)算法在所有數(shù)據(jù)集上的均值,并比較大小。錯(cuò)誤原因:我們對于算法在不同數(shù)據(jù)集上錯(cuò)誤的期望不是相同的,因此求平均沒有意義。換句話說,數(shù)據(jù)不符合相稱性(commensurate)。

不恰當(dāng)方法2進(jìn)行配對樣本t檢測(Paired t test)。顯然,t test是統(tǒng)計(jì)學(xué)方法,可以用來查看兩種方法在每個(gè)數(shù)據(jù)上的平均差值是否不等于0。但這個(gè)方法不合適原因有幾點(diǎn):

  • 和平均一樣,不同數(shù)據(jù)集上的錯(cuò)誤不符合相稱性
  • t-test要求樣本符合正態(tài)分布,顯然我們無法保證不同數(shù)據(jù)集上的準(zhǔn)確率符合正態(tài)分布
  • t-test對樣本的大小有一定的要求,一般最低需要>30個(gè)樣本。在這個(gè)例子中我們只有14個(gè),且大部分情況下我們沒有30個(gè)數(shù)據(jù)來做實(shí)驗(yàn)。
  • 因?yàn)槿狈ο喾Q性,統(tǒng)計(jì)結(jié)果易受到異常值影響(outliers)

不恰當(dāng)方法3:符號檢驗(yàn)(sign test)是一種無參數(shù)(non-parametric)的檢驗(yàn),優(yōu)點(diǎn)是對于樣本分布沒有要求,不要求正態(tài)性。比較方法很簡單,就是在每個(gè)數(shù)據(jù)集上看哪個(gè)算法更好,之后統(tǒng)計(jì)每個(gè)算法占優(yōu)的數(shù)據(jù)集總數(shù)。以這個(gè)例子為例,C4.5在2個(gè)數(shù)據(jù)集上最優(yōu),2個(gè)平手,10個(gè)最差。如果我們對這個(gè)結(jié)果計(jì)算置信區(qū)間,發(fā)現(xiàn)p<0.05需要至少在11個(gè)數(shù)據(jù)集上表現(xiàn)最優(yōu)。因此這個(gè)方法的缺點(diǎn)有:

  • 符號檢驗(yàn)是一種非常弱的檢驗(yàn)方法,僅對比優(yōu)劣損失了大量信息,失去了定量信息(quantitative),比如 [圖片上傳失敗...(image-f0538c-1591681946689)]

    和 [圖片上傳失敗...(image-8e42ca-1591681946689)]

    的意義是一樣的。正因?yàn)槿绱耍R界值(critical value)一般都需要很大,比如這個(gè)例子中的 [圖片上傳失敗...(image-5221f9-1591681946689)]

    的臨界值是11(圖2)。

  • 另一個(gè)問題是,因?yàn)槿狈Χ啃畔?,很多時(shí)候很難確定“優(yōu)勝”是否來自隨機(jī)性。舉個(gè)例子,0.99<0.991是否真的代表算法A更好?一種看法是需要定義一個(gè)閾值,僅當(dāng)差別大于閾值才能說明更好。然而這種看法的問題在于,假設(shè)算法A在1000個(gè)數(shù)據(jù)集上都以“微弱優(yōu)勢”勝過了B,那么我們是否需要懷疑顯著性?因此,根本問題還是,符號檢驗(yàn)需要大樣本量才能得出顯著性。

<noscript>
image

</noscript>

image

<figcaption>圖2. 符號檢驗(yàn)的臨界值表</figcaption>

4. 兩種算法間的比較:推薦方法

考慮到通用性,我們需要使用非參數(shù)檢驗(yàn)。換句話說,我們需要保證對樣本的分布不做任何假設(shè),這樣更加通用。

方法1:Wilcoxon Signed Ranks Test(WS )配對t檢驗(yàn)的無參數(shù)版本,同樣是分析成對數(shù)據(jù)的差值是否等于0,只不過是通過排名(rank)而已。換個(gè)角度看,我們也可以理解為符號檢驗(yàn)的定量版本。優(yōu)點(diǎn)如下:

  • 無參數(shù),不要求樣本符合正態(tài)分布
  • 符合數(shù)據(jù)相稱性,雖然是定性的(與配對t檢驗(yàn)相比)
  • 有一定的定量特性,即較大的差別對于最終結(jié)果影響更大(與符號檢驗(yàn)相比)

<noscript>
image

</noscript>

image

<figcaption>圖3. 兩種算法在14個(gè)數(shù)據(jù)集上的準(zhǔn)確率與排序[1]</figcaption>

方法2(詳見第七部分):Mann Whitney U test(MW)和WS一樣,都是無參數(shù)的且研究排名的檢驗(yàn)方法。MW有以下特性:

  • 可以用來檢測不同的大小的樣本,舉例A算法在8個(gè)數(shù)據(jù)集上的表現(xiàn) vs B算法在10個(gè)數(shù)據(jù)集上的表現(xiàn)。
  • 不存在配對性要求,參看上一點(diǎn)
  • 對比的是兩個(gè)樣本的分布,因此不同數(shù)據(jù)集的錯(cuò)誤應(yīng)該符合特定分布,可能不滿足相稱性
  • 對于測量方法的假設(shè)是:獨(dú)立測量,這與我們的實(shí)際情況不符

換句話說,MW是當(dāng)樣本量不同時(shí)才建議勉強(qiáng)一試,因?yàn)椴环溪?dú)立測量的假設(shè)。不同數(shù)據(jù)集的錯(cuò)誤(準(zhǔn)確率)不一定符合特定分布,很可能不符合相稱性,但在特定情況下有用,詳見第七部分。

總結(jié):如果樣本配對且符合正態(tài)分布,優(yōu)先使用配對t檢測。如果樣本不符合正態(tài)分布,但符合配對,使用WS。如果樣本既不符合正態(tài)分布,也不符合配對,可以嘗試MW。

5. 多種算法間的比較:不恰當(dāng)?shù)姆椒?/strong>

<noscript>
image

</noscript>

image

<figcaption>圖4. 四種算法在14個(gè)數(shù)據(jù)集上的準(zhǔn)確率與排序[1]</figcaption>

圖4提供了四種算法(C4.5,C4.5+m,C4.5+cf,C4.5+m+cf)在14個(gè)數(shù)據(jù)集上的準(zhǔn)確率。

不恰當(dāng)方法1:一種看法是,我們是否可以把兩個(gè)算法的對比推廣到多個(gè)算法上。假設(shè)有k個(gè)算法,我們是否可以對它們進(jìn)行兩兩比較,經(jīng)過 [圖片上傳失敗...(image-e51766-1591681946691)]

次計(jì)算得到一個(gè)矩陣。這個(gè)是經(jīng)典的多元假設(shè)檢驗(yàn)問題,這種窮舉法一般都假設(shè)了不同對比之間的獨(dú)立性,一般都不符合現(xiàn)實(shí),需要進(jìn)行校正,因此就不贅述了。

不恰當(dāng)方法2Repeated measures ANOVA是經(jīng)典的統(tǒng)計(jì)學(xué)方法,用來進(jìn)行多樣本間的比較是,可以看做是t檢驗(yàn)的多元推廣。ANOVA不適合對比算法表現(xiàn)的原因如下:

  • 對樣本分布有正態(tài)假設(shè),然而不同數(shù)據(jù)集上的準(zhǔn)確度往往不符合這個(gè)假設(shè)
  • 不同的樣本有相同的總體方差(population variance)

不幸的是,我們想要對比的算法表現(xiàn)不符合這個(gè)情況,因此ANOVA不適合。

6. 多種算法間的比較:推薦的方法

我們需要找到一種方法同時(shí)解決第5部分中提到的問題,這個(gè)方法需要:

  • 非參數(shù),不對數(shù)據(jù)的分布做出假設(shè)
  • 不需要,或者盡量不依賴,或者可以自動(dòng)修正兩兩對比所帶來的誤差

Dem?ar [1]推薦了非參數(shù)的多元假設(shè)檢驗(yàn)Friedman test。Friedman也是一種建立在排名(rank)上的檢驗(yàn),它假設(shè)所有樣本的排序均值相等。具體來講,我們首先給不同算法在每個(gè)數(shù)據(jù)集上排序,并最終計(jì)算算法A在所有數(shù)據(jù)集上排名的均值。如果所有算法都沒有性能差別,那么它們的性能的平均排名應(yīng)該是相等的,這樣我們就可以選擇特定的置信區(qū)間來判斷差異是否顯著了。

假設(shè)我們通過Friedman test發(fā)現(xiàn)有統(tǒng)計(jì)學(xué)顯著(p<0.05),那么我們還需要繼續(xù)做事后分析(post-hoc)。換句話說,F(xiàn)riedman test只能告訴我們算法間是否有顯著差異,而不能告訴我們到底是哪些算法間有性能差異。想要定位具體的差異算法,還需要進(jìn)行post-hoc分析。

Friedman test一般配套的post-hoc是Nemenyi test,Nemenyi test可以指出兩兩之間是否存在顯著差異。我們一般還會對Nemenyi的結(jié)果可視化,比如下圖。

<noscript>
image

</noscript>

image

<figcaption>圖5. Nemenyi對10種算法的對比結(jié)果,NS代表不顯著</figcaption>

另一個(gè)值得提的是,即使Friedman證明算法性能有顯著不同,Nemenyi不一定會說明到底是哪些算法間不同,原因是Nemenyi比Friedman要弱(weak),實(shí)在不行可以對必須分析的算法成對分析。

方法2(詳見第七部分):和兩兩對比一樣,在多個(gè)樣本對比時(shí)也有一些特定情況導(dǎo)致我們不能使用Friedman-Nemenyi。另一個(gè)或許可以值得一試的無參數(shù)方法是Kruskal Wallis test搭配Dunn's test(作為post-hoc)。 這種方法的特點(diǎn)是:

  • 可以用來檢驗(yàn)不同的大小的樣本,舉例A算法在8個(gè)數(shù)據(jù)集上的表現(xiàn) vs B算法在10個(gè)數(shù)據(jù)集上的表現(xiàn) vs C算法在20個(gè)數(shù)據(jù)集上的表現(xiàn)。
  • 對于測量方法的假設(shè)是:獨(dú)立測量,這與我們的實(shí)際情況不符。

7. 再看重復(fù)測量和獨(dú)立測量

我們在第二部分分析了重復(fù)測量與獨(dú)立測量,而且假設(shè)機(jī)器學(xué)習(xí)性能的對比應(yīng)該是建立在“重復(fù)測量”上的,也就是說所有的算法都在相同的數(shù)據(jù)集上進(jìn)行評估

在這種假設(shè)下,我們推薦了無參數(shù)的:Wilcoxon對兩個(gè)算法進(jìn)行比較, Friedman-Nemenyi對多個(gè)算法進(jìn)行對比。

然而,“重復(fù)測量”的假設(shè)不一定為真。舉個(gè)例子,如果我們只有一個(gè)數(shù)據(jù),并從數(shù)據(jù)中采樣(sample)得到了很多相關(guān)的測試集1, 2,3...n,并用于測試不同的算法。

  • 算法A:測試集1,2
  • 算法B:測試集3, 4,5,6
  • 算法N...

在這種情況下,我們就可以用Mann Whitney U test對比兩種算法,Kruskal-Dunn對比多種算法。而且值得注意的是,這種情況常見于人工合成的數(shù)據(jù),比如從高斯分布中采樣得到數(shù)據(jù)。因此,要特別分析數(shù)據(jù)的測量方式,再?zèng)Q定如何評估。

8. python工具庫

Scipy Statistical functions :Wilcoxon,F(xiàn)riedman,Mann Whitney

scikit-posthocs:Nemenyi,Dunn's test


[1] Dem?ar, J., 2006. Statistical comparisons of classifiers over multiple data sets. Journal of Machine learning research, 7(Jan), pp.1-30.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容