在第四部分我們開始了分類任務的研究,並解釋了kNN方法.
我們已經達到了可以構建一個勉強能工作的分類器的程度。但如果我們被問到:“ 他表現得有多好?,
那目前我們最多能回答的,大概是這樣:『嗯...在測試資料集上,模型在 p% 的情況下能正確回答』。
從一個角度看,正如古老的諺語所言:擁有 500 盧布比擁有 200 盧布更好。但高 p% 真的能保證模型品質嗎?
今天我們來解決這些問題,看看機器學習中的品質指標,了解它們為何存在以及如何正確解讀它們.
準確率
在引言中我們已經討論過這個指標了。它顯示了模型正確回答的比例.
我馬上要指出的是,雖然準確率經常被翻譯為“準確”,但在機器學習中這可能會引起混亂。因此,我們不會翻譯它,而是會說明它,或者正確答案的比例,或者簡單說Accuracy.
它有什麼方便之處?Accuracy提供了一個簡單易懂的模型品質評估:它顯示了模型在多少百分比的情況下猜中了正確的類別。這是一個很好的基礎參考指標,特別是當任務中的類別平衡(即它們有大約相同數量的元素)時,以及不同類型的錯誤同等重要時。
然而,這個指標有一個嚴重的限制——它沒有說明任何情況。模型具體犯什麼錯誤呢?.
讓我們來考慮一些怪異的創業點子,在這些點子中,千分之一有可能成功。如果模型總是回答「什麼都沒有辦法」,它的準確率將等於99.9%。
形式上這是個優異的結果,但實際上這種模型的效用存疑...
正是在這類任務中,準確率不再是一個有用的指標——它會隱藏嚴重的錯誤,特別是當類別不平衡或錯誤的代價不同時。
精確率
精確率(或陽性類別的精確率)) 顯示,在所有模型歸類為正類別的對象中,有多少比例確實是正類別。
回到創業公司這個例子,precision 顯示,在模型預測為成功的創業公司中,有多少比例確實是成功的。
精準度在那些我們不希望模型過常「發出誤報」的任務中很重要。例如,在銀行系統中,我們大概不會喜歡一個會取消每兩次交易中的一次,認為它是詐騙的交易模型。
讓我們看一個小例子:
假設我們有100個創業點子,其中只有5個真正會成功。
模型給出了以下結果:
在 5 家成功的創業公司中,她只正確找出了 3 家,而剩下的 2 家她認為失敗了;
在 95 家失敗的創業公司中,模型正確標記了 90 家為失敗,但還有 5 家錯誤地認為是成功的。
這樣:
模型總共給出了 100 個正確答案中的 93 個,也就是 accuracy 等於 93%。
該模型認為有 8 家新創公司成功,但實際上只有 3 家成功了。所以 precision = 3/8 (37.5%)
雖然準確率很高,但仍然難以信任模型的正面預測
Recall
Recall (或完全性) 顯示模型在所有真正正面的對象中找到了多少比例的正面對象。
在我們的例子中,這是模型能夠識別為成功的成功創業公司的比例(在例子中有5個成功創業公司,其中3個被模型識別為成功,因此召回率為60%)。
召回率在需要嚴格不錯過正面對象的任務中尤其重要。例如,在疾病搜索中,低召回率意味著模型會錯過真正患病的人。
F-score
我們出現了一個問題:precision 和 recall 幾乎像敵人一樣互相對抗。
例如,模型可能非常罕見地預測「成功的創業公司」。那麼它的 precision 將會很高——因為它幾乎不會出錯。但 recall 將會很低,因為模型會錯過許多真正成功的專案。
反之亦然:如果模型開始幾乎將所有事物標記為成功,recall 將會增加,但 precision 將會急劇下降。
因此,在實踐中經常使用 F-score — 一種指標,試圖同時考慮 precision 和 recall。具體來說,F1-score 是平均調和平均數從 Precision (Precision)) 和召回率 (Recall)
):
我們注意到,F1-score 只有在 precision 和 recall 同時足夠大的情況下才會較大。
除了 F1,還有它的通用版本 Fβ-score。如果 F1 對 precision 和 recall 同樣敏感 (公式對 P 和 R 對稱),那麼 Fβ 可以讓人手動調節它們之間的平衡。它的計算方式如下:
如果我們更看重 precision,就取 。如果更看重 recall —
。
若兩個指標同等重要,則會使用,這對應標準的 F1-score。
因此,Fβ可 linh hoạt kiểm soát sự cân bằng giữa precision 和 recall.
Confusion Matrix
在繼續之前,我們通過「四馬騎」來談談同一個概念。說實話,我並不太喜歡這種對指標的解釋——容易讓人困惑,但正所謂,得有費亞,得有...
想像一下,模型是一個系統,它會對每個對象做出判決:是正面的還是負面的。
而每個這樣的判決都有一種可能的結果.
TP — 真正例 (True Positive).
這是指模型說:「是的,這是一個正面案例」,而且結果正確.
模型判斷這個新創公司是成功的,而且它確實是成功的.
FP — 偽正例 (False Positive).
模型說:「這是一個正面案例」,但結果錯誤:
模型決定這個創業公司成功,但實際上它失敗了.
FN — 偽陰性(錯誤否定)
模型說:「這是一個否定對象」,但錯了.
模型決定這個創業公司失敗,儘管它實際上很成功.
TN — 真陰性(真實否定)
模型正確地判定了否定類別。
這家新創公司被認為是失敗的,而且確實是失敗的.
一個小指南,教你如何記住
True (T) — 模型被證明是正確的.
False (F) — 模型出錯了.
Positive (P) — 模型將對象分類為正面類別(類別 1)
Negative (N) — 模型將對象分類為負面類別(類別 0)
例如:
TP: T - 模型正確,因為 P - 將對象歸類為正面類別
FN: F - 模型錯誤,因為 N - 將對象歸類為負面類別
原來,我們之前討論的所有指標,都是這四個數字的不同觀察方式:
此外,可以展開 F1-score 的公式
有趣的是,TN 不參與 F1-score 的計算,因此這個指標與正確分類的負類別對象數量無關.
由於這個原因,F1 在類別不平衡的任務中特別有用,當正類別很少出現時,確定其質量是最重要的。
在這些任務中,我們關心的不是模型能多好地猜測「所有東西」,而是它能多好地找到罕見但重要的情況——例如,疾病或詐騙交易。
精確率-召回率曲線
在實際應用中,大多數模型不是輸出類別,而是屬於正類別的概率。
我們選擇閾值 (threshold): 例如,如果機率大於 0.5 — 認為對象是正面的,否則是負面的.
這裡出現了一個重要的概念:如果改變這個閾值,precision 和 recall 也会改變.
當閾值很大時,模型幾乎不會將任何東西標記為正面․ precision 會變得很大,而 recall 會變得很小
在降低閾值時,模型會標記越來越多的對象為正,因此 recall 會上升,而 precision 會下降
如果對每個閾值計算 precision 和 recall,然後將它們相對排列,我們將獲得 Precision–Recall curve (PR-曲線)

當曲線越靠近右上方,模型就越好(precision 和 recall 高)。曲線急劇下降表示錯誤平衡差,而位置低表示模型分類能力弱。
ROC曲線
儘管直觀,PR曲線並非理想的評估工具。
她的主要缺點在於她沒有提到模型區分負類別有多好。這種專注於正類別的做法在具有顯著不平衡的任務中特別有用,但有时候這還不足以完全理解模型的行為。
ROC(受試者工作特性)曲線,則更「對稱」地看待任務——考慮模型在兩個類別上的行為。它顯示了隨著錯誤觸發次數增加,模型的發現正面對象的能力如何變化。
要理解ROC曲線,我們引入兩個量:TPR 和 FPR(真正率與假正率):
真正率(TPR)顯示模型能夠找到多少比例的真實正例.
實際上,這就是我們熟悉的召回率:
假正率(FPR)顯示模型錯誤將多少比例的負例分類為正例:
與PR曲線相同,我們改變閾值(threshold),並對每個閾值計算TPR和FPR。接下來,如果在橫軸為FPR、縱軸為TPR的圖上繪製圖表,即可獲得ROC曲線.

如何使用:
當曲線越靠近左上角(點 (0, 1)),模型就越好。這意味著模型能夠成功找到正確的對象(高 TPR),同時幾乎不產生錯誤的偵測(低 FPR)。
如果曲線急劇向右下方移動,這表示模型在嘗試尋找更多正確對象時,開始在負對象上出現嚴重的錯誤。
對角線(從 (0,0) 到 (1,1))對應隨機模型 — 這種模型不擅長區分類別,實際上就是「猜測」。
ROC-AUC
ROC曲線顯示模型在不同閾值下如何平衡TPR和FPR.
但直接用這個圖表比較模型不方便 — 因為它不是一個數字,而是一條整個曲線。
為了簡化比較,使用ROC-AUC(曲線下面積)— ROC曲線下面的面積。
所得到的數字顯示了在所有可能的閾值下,模型平均來說有多好地分離出正確對象和錯誤對象。
可以這樣解釋它:
AUC = 1 → 理想模型(完全分類)
AUC = 0.5 → 隨機模型(如同擲銅板)
AUC < 0.5 → 模型比隨機更差(小技巧:只要將預測反轉即可獲得正常模型)
結論
現在如果我們被問到:“ 你的分類器有多好?” — 我們已經不只關注準確率這個數字了.
我們明白,模型的品質是多面向的,可以從不同角度來看待:
通過混亂矩陣和基本錯誤(TP、FP、FN、TN);
通過精確率和召回率,它們顯示了不同類型的錯誤;
透過 F-score,這個指標平衡了它們;
透過 PR-曲線,這個曲線顯示了 precision 和 recall 之間的妥協;
透過 ROC-曲線,這個曲線考慮了模型在兩個類別上的表現;
以及透過 ROC-AUC,這個指標將所有這些總結為一個數字。
最重要的是要記住的是:不存在一個正確的品質指標。只有不同的方法來衡量不同類型的錯誤。而必須選擇適合任務的那個。
現在,既然我們了解了評估指標,在下一部分可以平靜地過渡到邏輯斯回歸,並看看模型如何開始不僅僅是評估,還是從數據中學習。











