今天進入第二章:模型評估
1. 什麼是模型評估
模型訓練後要對其進行評估,看模型表現如何,哪裡可以改進
分類、排序、迴歸、序列預測不同問題指標不同
- 什麼時候評估?
兩個階段:離線評估和在線評估
2. 算法工程師應當具備的基本功
- 知道每種評估指標的精確定義
- 選擇合適的評估指標
- 根據評估指標的反饋調整模型
3. 什麼是準確率
- 定義:指分類正確的樣本佔總樣本個數的比例
是分類問題中最簡單的評價指標
例如有個模型將 100 個腫瘤分為惡性 (正類別)或良性(負類別):
那麼模型的準確率為:
\\text{Accuracy} = \\frac{TP+TN}{TP+TN+FP+FN} = \\frac{1+90}{1+90+1+8} = 0.91
- 侷限性
當樣本比例非常不均衡時,比如某類別佔 樣本比例 80%時,分類器把所有樣本都預測為這個類別,也可以獲得 80%的準確率
例如向奢侈品用戶投放廣告,這樣的用戶佔用戶總體比例比較小。對數據整體分類準確率高,不代表對奢侈品用戶的分類準確率高
- 方案
可以考慮平均準確率,即計算每個類別下的樣本準確率,再求平均
4. 精確率與召回率
- 精確率
指分類正確的正樣本個數佔分類器判定為正樣本的樣本個數的比例
- 召回率
指分類正確的正樣本個數佔真正的正樣本個數的比例
在排序問題中,通常先返回Top N 結果,再計算它們的Precision 值和 Recall 值,以此來衡量模型的性能
- 侷限性
例如,模糊搜索這個功能,返回 Top 5 很容易得到,即 Precision 高的結果,但當用戶想找一些冷門內容時,就要翻好幾頁,問題是召回率比較低
- 方案
- 繪製出模型的 P-R(Precision-Recall)曲線:P-R 曲線的橫軸是召回率,縱軸是精確率。
- 用 F1 score 和 ROC 曲線來綜合地反映一個排序模型的性能
下面對精確率和召回率做一下詳細解釋 :
下面這個圖表示了精度和召回率這兩個指標,主要用在於分類問題中。
例如有一個二分類問題的算法。
圖中的圓圈裡面代表算法判定為正的一些樣本。
圓圈的外面代表算法判定為負的一些樣本。
但實際上算法它是會有一些東西誤判的。
例如方形的左邊一半,是實際上為正的樣本。右邊一半,是實際上為負的樣本。那除了算法判斷正確的,以外,就是判斷錯誤的樣本。
可以對照這個圖,看一下準確率,精度,和召回率的定義。
右上角是準確率的公式。意思就是,算法的所有預測結果中,預測正確的有多少
左下角為 precision 精度 查準率就是對於所有機器判定為正的裡面,有多大的比例是真的正樣本
右下角為 recall 召回率 查全率,顧名思義,就是實際的正樣本中,有多大比例被檢出了
在圖中有標記,陰陽,真假。
真/假 陰/陽性中,陰陽性是指的分類器的判斷結果是陰性還是陽性,而真假指代的是是否和真是答案相符
不同的問題,他需要用的指標,希望達到的目標是不一樣的。
我們根據召回率這個名字,可以考慮一個,召回的例子。
例如有一個汽車公司,他們有一些車發現有問題,
於是就要召回,他們告訴了車主判斷問題的方法,
有些車是真的有問題,但是車主沒判斷出來,
有些車沒問題,但車主認為有問題,
這個時候公司就要計算一下召回率,看有問題的車被召回了多少。
精度—召回率 之間存在制衡
隨著精度的增加,召回率會降低,召回率增加,精度就會降低。
有時如果需要召回率高,就可以接受較低的精度。
如果我們想要找到精度和召回率的最佳組合,我們可以使用 F1 score 來對兩者進行結合。
F1 score 是對精度和召回率的調和平均,有個公式
如果我們想創建一個具有最佳的精度—召回率平衡的模型,那麼就要嘗試將 F1 score 最大化。
在實際應用時,因為是分類算法,會有一個閾值,當結果高於這個閾值時為一類,低於這個閾值時為另一類。
對每個閾值可以計算相應的 精度 召回率 f1 等指標,
通過更改閾值,這些指標都會變化,
如果想要精度和召回率平衡,可以選擇最大化 F1 score 時候的閾值
例如上圖,基於 F1 score,整體最佳的模型出現在閾值為 0.5 的地方。
如果我們想要在更大程度上強調精度或者召回率,我們可以選擇這些指標上最佳時對應的模型。
預告 next:
機器學習中常用評估指標彙總
ROC 曲線詳解
大家好!我是 Alice,歡迎進入一起學《百面機器學習》系列!
這個系列並不只是根據書本畫個思維導圖,除了用導圖的形式提煉出精華,還會對涉及到的重要概念進行更深度的解釋,順便也梳理一下機器學習的知識體系。
閱讀更多 Alice機器學習乾貨鋪 的文章