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

2021-10-09 04:14:27 字數 4193 閱讀 6119

作者|alvira swalin 編譯|vk **|medium

第一部分主要討論回歸度量

在後現代主義的世界裡,相對主義以各種各樣的形式,一直是最受歡迎和最受詬病的哲學學說之一。相對主義認為,沒有普遍和客觀的真理,而是每個觀點都有自己的真理。

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

類似地,每個機器學習模型都試圖使用不同的資料集來解決目標不同的問題,因此,在選擇度量標準之前了解背景是很重要的。

最常用的度量

在第一篇部落格中,我們將只討論回歸中的度量。

大多數部落格都關注分類指標,比如精確性、召回率、auc等。為了改變這一點,我想探索各種指標,包括回歸中使用的指標。mae和rmse是連續變數最常用的兩種度量方法。

rmse(均方根誤差)

它表示**值和觀測值之間差異的樣本標準差(稱為殘差)。從數學上講,它是使用以下公式計算的:

maemae是**值和觀測值之間絕對差的平均值。mae是乙個線性分數,這意味著所有的個體差異在平均值中的權重相等。例如,10和0之間的差是5和0之間的差的兩倍。然而,rmse的情況並非如此,我們將進一步詳細討論。從數學上講,mae是使用以下公式計算的:

你應該選哪乙個?為什麼?

好吧,理解和解釋mae是很容易的,因為它直接取偏移量的平均值。與此對比,rmse比mae懲罰更高的差異。

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

案例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方也將是相同的,因為它只取決於**值和實際值。

調整r方與rmse的比較

對於上乙個示例,我們將看到案例1和案例2的rmse與r方類似。在這種情況下,調整後的r方比rmse做得更好,rmse的範圍僅限於比較**值和實際值。

此外,rmse的絕對值實際上並不能說明模型有多糟糕。它只能用於兩個模型之間的比較,而調整r方很容易做到這一點。例如,如果乙個模型的調整r方為0.05,那麼它肯定很差。

然而,如果你只關心**的準確性,那麼rmse是最好的。它計算簡單,易於微分,是大多數模型的預設度量。

常見的誤解是:我經常在網上看到r的範圍在0到1之間,這實際上不是真的。r方的最大值為1,但最小值可以為負無窮大。考慮這樣一種情況,即模型**所有觀測值的高度負值,即使y的實際值為正值。在這種情況下,r方將小於0。這是極不可能的情況,但這種可能性仍然存在。

如果你對nlp感興趣,這裡有乙個有趣的度量。

bleu

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

計算bleu分數的步驟:

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

對於大小為1到4的n-gram計算精度

取所有這些精度值的加權平均值的指數

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

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

例子:機器翻譯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將具有高精度,因為這兩個詞在參考翻譯中也是以相同的順序出現。然而,長度太短,並沒有真正反映出實際意義。

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

sklearn機器學習中文官方文件:

機器學習 模型選擇

第八課 機器學習簡單介紹 第九節 模型選擇 引入包 import pandas as pd import numpy as np from sklearn.model selection import train test split 準備資料集 載入資料 iris data pd.read csv...

機器學習模型的選擇

首先明白乙個事實,那就是如果我們在某個訓練集上訓練擬合得到乙個模型,那麼顯然,這個模型在這個訓練集上的訓練錯誤很有可能會比實際上的泛化錯誤 generalization error 會低 模型overfitting 假如我們把資料集分成 訓練集 和 測試集。然後,在訓練集上訓練得到幾個模型,我們想從...

機器學習模型 知乎 機器學習 模型選擇與評價

交叉驗證 首先選擇模型最簡單的方法就是,利用每一種機器學習演算法 邏輯回歸 svm 線性回歸等 計算訓練集的損失值,然後選擇其中損失值最小的模型,但是這樣是不合理的,因為當訓練集不夠 特徵過多時容易過擬合,那麼訓練集的損失值就會不斷變小,但是此時針對測試集可能損失值很高,所以訓練集上的損失值是無法衡...