模型評估

  • 文章從模型評估的基本概念開始,分別介紹了常見的分類模型的評估指標和迴歸模型的評估指標以及這些指標的侷限性。部分知識點舉例加以闡述,以便加深理解。思惟導圖以下:
    image

1 基本概念

  • 模型評估用來評測模型的好壞。
  • 模型在訓練集上的偏差一般稱爲 訓練偏差經驗偏差,而在新樣本上的偏差稱爲 泛化偏差。顯然,機器學習的目的是獲得泛化偏差小的學習器。然而,在實際應用中,新樣本是未知的,因此只能使訓練偏差儘可能小
  • 因此,爲了獲得泛化偏差小的模型,在構建機器模型時,一般將數據集拆分爲相互獨立的訓練數據集、驗證數據集和測試數據集等,而在訓練過程當中使用驗證數據集來評估模型並據此更新超參數訓練結束後使用測試數據集評估訓練好的最終模型的性能算法

  • 模型的比較:
    • 一次訓練過程當中的模型比較。
    • 屢次訓練模型比較。
    • 不一樣算法的模型比較。

2 評估指標的侷限性

  • 在模型評估過程當中,分類問題、排序問題、迴歸問題每每須要使用不一樣的指標進行評估。在諸多的評估指標中,大部分指標只能片面地反映模型的一部分性能。若是不能合理地運用評估指標,不只不能發現模型自己的問題,並且會得出錯誤的結論。

3 分類模型的評估指標

  • 正樣本:須要斷定機率爲1的類型的樣本叫作正樣本。
  • 負樣本:須要斷定機率爲0的類型的樣本叫作負樣本。

3.1 混淆矩陣(Confusion Matrix)

  • 偏差矩陣 預測正值 預測負值
    真實正值 TP FN
    真實負值 FP TN
  • True Positive(真正, TP):將正類預測爲正類數。
  • True Negative(真負 , TN):將負類預測爲負類數。
  • False Positive(假正, FP):將負類預測爲正類數。--> 誤報(Type I error):假的正樣本(實際是負樣本)。
  • False Negative(假負 , FN):將正類預測爲負類數。--> 漏報(Type II error):假的負樣本(實際是正樣本)。

3.2 準確率(Accuracy)

  • 準確率是指分類正確的樣本總樣本個數的比例。
  • \[ACC = \frac{TP+TN}{TP+TN+FP+FN}\]
  • 準確率是分類問題中最簡單也是最直觀的評價指標,但存在明顯的缺陷。好比,當負樣本佔99%時,分類器把全部樣本都預測爲負樣本也能夠得到99%的準確率。因此,當不一樣類別的樣本佔比十分不平衡時,佔比較大的樣本對準確率影響較大

3.3 精確率(Precision)

  • 精確率是指分類正確的正樣本個數佔分類器斷定爲正樣本的樣本個數的比例,又叫查準率。
  • \[ P = \frac{TP}{TP+FP} \]
  • TP+FP表明不管真與假,報出來數據都是正樣本。

3.4 召回率(Recall)

  • 召回率是指分類正確的正樣本個數真正的正樣本個數的比例,又叫查全率。
  • \[ R = \frac{TP}{TP+FN} \]

3.5 precision與recall小例子

  • 金融詐騙分類中,正樣本P表明是金融詐騙;負樣本N表明不是金融詐騙。假設正樣本P有100個,負樣本N有100個。取threshold=0.5得TP=80,FP=20,問precision和recall分別是多少?若是取threshold=0.9,precision和recall將有什麼變化?
  • \(Precision = TP/(TP+FP)=0.8\);也可算誤報率0.2,1-0.2 =0.8;
  • \(Recall = TP/(TP+FN) = 0.8\);也可計算漏報率0.2,1-0.2=0.8;
  • 若threshold=0.9,則TP減少,TP+FP減少,precision不肯定;極端狀況下FP爲0,precision會上升。TP+FN不變,所以recall會減少。
  • 經過上面的例子咱們發現:實際上precision和recall沒什麼關係。

3.6 P-R(Precision-Recall)曲線

  • 這裏簡單介紹一下P-R曲線的繪製方法。P-R曲線的橫軸是召回率,縱軸是精確率。對於一個排序模型來講,其P-R曲線上的一個點表明着,在某一閾值下,模型將大於該閾值的結果斷定爲正樣本,小於該閾值的結果斷定爲負樣本,此時返回結果對應的召回率和精確率。
  • PR曲線越靠近右上越好。

3.7 F1 score

  • F1 score和ROC曲線也能綜合地反映一個排序模型的性能。
  • 是精準率和召回率的調和平均值,它定義爲\(F1=\frac{2 \times Precision \times Recall}{Precision + Recall}\)
  • \[\frac{2}{F_1} = \frac{1}{P} + \frac{1}{R}\]
  • \[F_1 = \frac{2TP}{2TP+FP+FN}\]

3.8 ROC曲線

  • ROC曲線的縱座標爲真陽性率(True Positive Rate,TPR);橫座標爲假陽性率(False Positive Rate,FPR)。TPR和FPR的計算方法分別爲:
    \[TPR = \frac{TP}{TP+FN}\]
    \[FPR = \frac{FP}{FP+TN}\]
    上式中,P是真實的正樣本的數量,N是真實的負樣本的數量,TP是P個正樣本中被分類器預測爲正樣本的個數,FP是N個負樣本中被分類器預測爲正樣本的個數。
  • 實際上,TPR就是召回率,FPR是負樣本角度的召回率,即誤召率。
  • AUC指的是ROC曲線下的面積大小,該值可以量化地反映基於ROC曲線衡量出的模型性能。計算AUC值只須要沿着ROC橫軸作積分就能夠了。因爲ROC曲線通常都處於y=x這條直線的上方(若是不是的話,只要把模型預測的機率反轉成1−p就能夠獲得一個更好的分類器),因此AUC的取值通常在0.5~1之間。AUC越大,說明分類器越可能把真正的正樣本排在前面,分類性能越好。
  • ROC曲線越靠近左上越好。

3.9 Roc曲線與P-R曲線有何不一樣?

  • 相比P-R曲線,ROC曲線有一個特色,當正負樣本的分佈發生變化時,ROC曲線的形狀可以基本保持不變(穩定),而P-R曲線的形狀通常會發生較劇烈的變化(敏感)。
  • 選擇P-R曲線仍是ROC曲線是因實際問題而異的,若是研究者但願更多地看到模型在特定數據集上的表現,P-R曲線則可以更直觀地反映其性能。

3.10 分類模型評估指標小結

指標 描述 Scikit-learn函數
Confusion Matrix 混淆矩陣 from sklearn.metrics import confusion_matrix
Precision 精確率 from sklearn.metrics import precision_score
Recall 召回率 from sklearn.metrics import recall_score
F1 F1值 from sklearn.metrics import f1_score
ROC ROC曲線 from sklearn.metrics import roc
AUC ROC曲線下的面積 from sklearn.metrics import auc

4 迴歸模型的評估指標

4.1 均方偏差(MSE)

  • 公式:\(\frac{1}{m} \sum_{i=1}^{m}(\hat{y_i} - y_i)^2\)
  • 真實值-預測值,平方和求平均。
  • 這不就是線性迴歸的損失函數嘛!對,在線性迴歸的時候咱們的目的就是讓這個損失函數最小。那麼模型作出來了,咱們把損失函數丟到測試集上去看看損失值不就行了嘛。簡單直觀暴力!
  • 最經常使用的迴歸模型的評估指標。

4.2 均方根偏差(RMSE)

  • 公式:\(\sqrt{\frac{1}{m} \sum_{i=1}^{m}(\hat{y_i} - y_i)^2}\)
  • MSE開個根號。數據太大能夠開根號。
  • RMSE可以很好地反映迴歸模型預測值與真實值的偏離程度。但在實際問題中,若是存在個別偏離程度很是大的離羣點(Outlier)時,即便離羣點數量很是少,也會讓RMSE指標變得不好。
  • 模型在95%的時間區間內的預測偏差都小於1%,取得了至關不錯的預測結果。那麼,形成RMSE指標居高不下的最可能的緣由是什麼?--離羣點
    解決辦法?能夠從三個角度來思考。
    • 第一,若是咱們認定這些離羣點是「噪聲點」的話,就須要在數據預處理的階段把這些噪聲點過濾掉。
    • 第二,若是不認爲這些離羣點是「噪聲點」的話,就須要進一步提升模型的預測能力,將離羣點產生的機制建模進去(這是一個宏大的話題,這裏就不展開討論了)。
    • 第三,能夠找一個更合適的指標來評估該模型。關於評估指標,實際上是存在比RMSE的魯棒性更好的指標,好比平均絕對百分比偏差(Mean Absolute Percent Error,MAPE),它定義爲\(MAPE = \sum_{i=1}^{n}|\frac{y_i - \bar{y_i}}{y_i}| \times \frac{100}{n}\).MAPE至關於把每一個點的偏差進行了歸一化,下降了個別離羣點帶來的絕對偏差的影響。

4.3 平均絕對偏差(MAE)

  • Mean Absolute Error ,是絕對偏差的平均值,能更好地反映預測值偏差的實際狀況.
  • \(\frac{1}{m} \sum_{i=1}^{m}|\hat{y_i} - y_i|\)

4.4 可決係數(R-Squared)

  • \(R^2 = 1 - \frac{\sum_{i=1}(\hat{y_i}-y_i)^2}{\sum_{i=1}(\bar{y_i}-y_i)^2}\)
  • 其中,\(\hat{y_i}\)是預測值,\(\bar{y_i}\)是預測值的平均值。\(R^2<=1\)且越大越好。機器學習

    4.5 迴歸模型的評估指標小結

    指標 描述 Scikit-learn函數
    Mean Square Error (MSE, RMSE) 平均方差 from sklearn.metrics import mean_squared_error
    Absolute Error (MAE, RAE) 絕對偏差 from sklearn.metrics import mean_absolute_error, median_absolute_error
    R-Squared R平方值 from sklearn.metrics import r2_score
相關文章
相關標籤/搜索