機器學習模型的度量選擇一

做者|Alvira Swalin
編譯|VK
來源|Medium機器學習

第一部分主要討論迴歸度量函數

在後現代主義的世界裏,相對主義以各類各樣的形式,一直是最受歡迎和最受詬病的哲學學說之一。相對主義認爲,沒有廣泛和客觀的真理,而是每一個觀點都有本身的真理。學習

在這篇文章中,我將根據目標和咱們試圖解決的問題來討論每一個錯誤度量的用處。當有人告訴你「美國是最好的國家」時,你應該問的第一個問題是,這種說法是基於什麼。咱們是根據每一個國家的經濟情況,仍是根據它們的衛生設施等來判斷它們?.net

相似地,每一個機器學習模型都試圖使用不一樣的數據集來解決目標不一樣的問題,所以,在選擇度量標準以前瞭解背景是很重要的。翻譯


最經常使用的度量

在第一篇博客中,咱們將只討論迴歸中的度量。code

迴歸度量

大多數博客都關注分類指標,好比精確性、召回率、AUC等。爲了改變這一點,我想探索各類指標,包括迴歸中使用的指標。MAE和RMSE是連續變量最經常使用的兩種度量方法。blog

RMSE(均方根偏差)

它表示預測值和觀測值之間差別的樣本標準差(稱爲殘差)。從數學上講,它是使用如下公式計算的:資源

MAE

MAE是預測值和觀測值之間絕對差的平均值。MAE是一個線性分數,這意味着全部的個體差別在平均值中的權重相等。例如,10和0之間的差是5和0之間的差的兩倍。然而,RMSE的狀況並不是如此,咱們將進一步詳細討論。從數學上講,MAE是使用如下公式計算的:文檔

你應該選哪個?爲何?

好吧,理解和解釋MAE是很容易的,由於它直接取偏移量的平均值。與此對比,RMSE比MAE懲罰更高的差別。get

讓咱們用兩個例子來理解上面的陳述:

案例1:實際值=[2,4,6,8],預測值=[4,6,8,10]

案例2:實際值=[2,4,6,8],預測值=[4,6,8,12]

案例1的MAE=2,案例1的RMSE=2

病例2的MAE=2.5,病例2的RMSE=2.65

從上面的例子中,咱們能夠看到RMSE比MAE對最後一個值預測的懲罰更重。一般,RMSE的懲罰高於或等於MAE。它等於MAE的惟一狀況是當全部的差別都等於或爲零(在狀況1中,全部觀測值的實際和預測之間的差別都爲2)。

然而,即便在更爲複雜和偏向於更高的誤差以後,RMSE仍然是許多模型的默認度量,由於用RMSE定義的損失函數是光滑可微的,而且更容易執行數學運算。

雖然這聽起來不太使人愉快,但這是一個很是重要的緣由,使它很是受歡迎。我將試着用數學的方法解釋上面的邏輯。

讓咱們在一個變量中創建一個簡單的線性模型:y=mx+b

在這裏,咱們試圖找到「m」和「b」,咱們有數據(x,y)。

若是咱們用RMSE定義損失函數(J):那麼咱們能夠很容易獲得m和b的梯度(使用梯度降低的工做原理)

上述方程的求解比較簡單,可是卻不適用於MAE。

然而,若是你只想從解釋的角度比較兩個模型,那麼我認爲MAE是一個更好的選擇。須要注意的是,RMSE和MAE的單位都與y值相同,由於RMSE的公式進行了開根操做。RMSE和MAE的範圍是從0到無窮大。

注意:MAE和RMSE之間的一個重要區別是,最小化一組數字上的平方偏差會獲得平均值,最小化絕對偏差會獲得中值。這就是爲何MAE對異常值是健壯的,而RMSE不是。

R方(R^2)與調整R方

R方與調整R方一般用於解釋目的,並解釋所選自變量如何很好地解釋因變量的可變性。

從數學上講,R方由如下公式給出:

分子是MSE(殘差平方的平均值),分母是Y值的方差。MSE越高,R方越小,模型越差。

調整R方

與R方同樣,調整R方還顯示了曲線或直線的擬合程度,但會根據模型中項的變化進行調整。公式以下:

其中n是樣本總數,k是變量數。調整R方始終小於或等於R方

爲何要選擇調整R方而不是R方

常規的R方存在一些問題,能夠經過調整R方來解決。調整R方將考慮模型中附加項所增長的邊際改進。因此若是你加上有用的數據,它會增長,若是你加上不那麼有用的變量,它會減小。

然而,R方會隨着數據的增長而增長,可是模型並無任何改進。用一個例子來理解這一點會更容易。

這裏,狀況1是一個簡單的狀況,咱們有5個(x,y)的觀測值。在案例2中,咱們還有一個變量,它是變量1的兩倍(與var 1徹底相關)。在案例3中,咱們在var2中產生了一個輕微的擾動,使得它再也不與var1徹底相關。

所以,若是咱們爲每一種狀況擬合簡單的普通最小二乘(OLS)模型,那麼在邏輯上,咱們就不會爲狀況2和狀況3提供關於狀況1的任何額外或有用的信息。所以,咱們的度量值在這些模型上不該該增長。對於狀況2和狀況3,R方會增長或與以前相等。調整R方能夠解決這個問題,在狀況2和狀況3調整R方會減小。讓咱們給這些變量(x,y)一些數字,看看Python中獲得的結果。

注:模型1和模型2的預測值都是相同的,所以,R方也將是相同的,由於它只取決於預測值和實際值。

從上表中,咱們能夠看到,儘管咱們沒有在案例1和案例2中添加任何附加信息,但R方仍在增長,而調整R方顯示出正確的趨勢(對更多變量的模型2進行懲罰)

調整R方與RMSE的比較

對於上一個示例,咱們將看到案例1和案例2的RMSE與R方相似。在這種狀況下,調整後的R方比RMSE作得更好,RMSE的範圍僅限於比較預測值和實際值。

此外,RMSE的絕對值實際上並不能說明模型有多糟糕。它只能用於兩個模型之間的比較,而調整R方很容易作到這一點。例如,若是一個模型的調整R方爲0.05,那麼它確定不好。

然而,若是你只關心預測的準確性,那麼RMSE是最好的。它計算簡單,易於微分,是大多數模型的默認度量。

常見的誤解是:我常常在網上看到R的範圍在0到1之間,這實際上不是真的。R方的最大值爲1,但最小值能夠爲負無窮大。考慮這樣一種狀況,即模型預測全部觀測值的高度負值,即便y的實際值爲正值。在這種狀況下,R方將小於0。這是極不可能的狀況,但這種可能性仍然存在。

NLP中的一個度量

若是你對NLP感興趣,這裏有一個有趣的度量。

BLEU

它主要用於衡量機器翻譯相對於人工翻譯的質量。它使用一種改進的精度度量形式。

計算BLEU分數的步驟:

  1. 將句子轉換成單元、雙元、三元和四元(unigrams, bigrams, trigrams, and 4-grams)

  2. 對於大小爲1到4的n-gram計算精度

  3. 取全部這些精度值的加權平均值的指數

  4. 乘以簡短的懲罰(稍後解釋)

這裏BP是簡潔性懲罰,r和c是參考詞和候選詞的個數,w是權重,P是精度值

例子:

參考翻譯:The cat is sitting on the mat

機器翻譯1:On the mat is a cat

機器翻譯2:There is cat sitting cat

讓咱們把以上兩個譯文計算BLEU分數進行比較。

我用的是nltk.translate.bleu

最終結果:BLEU(MT1)=0.454,BLEU(MT2)=0.59

爲何咱們要加上簡潔性懲罰?

簡潔性懲罰懲罰候選短於他們的參考翻譯。例如,若是候選是「The cat」,那麼它對於unigram和bigram將具備高精度,由於這兩個詞在參考翻譯中也是以相同的順序出現。然而,長度過短,並無真正反映出實際意義。

有了這個簡短性懲罰,高分的候選譯文如今必須在長度、單詞和單詞順序方面與參考匹配。

原文連接:https://medium.com/usf-msds/choosing-the-right-metric-for-machine-learning-models-part-1-a99d7d7414e4

歡迎關注磐創AI博客站:
http://panchuang.net/

sklearn機器學習中文官方文檔:
http://sklearn123.com/

歡迎關注磐創博客資源彙總站:
http://docs.panchuang.net/

相關文章
相關標籤/搜索