我們研究的是多分類問題,下面所有例子以多分類問題舉例
混淆矩陣(Confusion Matrix)

定義:用于展示多分類模型預測結果與真實標簽的對應關系矩陣,直觀反映各類別的預測正確 / 錯誤情況。
維度:若有?K?個類別,則混淆矩陣為?K×K?矩陣。
1. 矩陣結構解析
以 3 分類問題(類別 A、B、C)為例,混淆矩陣格式如下:
真實\預測 | A | B | C |
---|---|---|---|
A | TP_A | FP_A→B | FP_A→C |
B | FP_B→A | TP_B | FP_B→C |
C | FP_C→A | FP_C→B | TP_C |
TP_i(True Positive_i):類別 i 的正確預測數(對角線元素)。
FP_i→j(False Positive_i→j):真實為 i 類但被誤判為 j 類的樣本數(非對角線元素)。
2. 案例說明
假設預測 100 個樣本(A 類 30 個、B 類 30 個、C 類 40 個),混淆矩陣如下:
真實\預測 | A | B | C |
---|---|---|---|
A | 25 | 3 | 2 |
B | 2 | 24 | 4 |
C | 3 | 3 | 34 |
TP_A=25(A 類正確預測 25 個),FP_A→B=3(A 類誤判為 B 類 3 個),其余同理。
準確率(Accuracy)
特點:整體模型的預測正確率,但對樣本不均衡問題不敏感(如某類樣本極少時,正確預測該類對準確率貢獻小)。
精確率(Precision)(分母為列求和)
針對每一個類別,預測正確的樣本數比上預測出來的樣本數(預測為某類的樣本中實際正確的比例)(在混淆矩陣里,行表示真實類別,列表示預測類別,預測正確的樣本數在對角線上)
召回率(Recall)(分母為行求和)
針對每一個類別,預測正確的樣本數比上實際存在的樣本數(實際為某類的樣本中被正確預測的比例)(在混淆矩陣里,行表示真實類別,列表示預測類別,預測正確的樣本數在對角線上)
精確率和召回率之間的關系
🌟 ?核心比喻?
想象你是一個漁夫在撈魚:
- ?精確率?:你撈上來的魚里,?有多少是真魚?(而不是垃圾、水草)。
→ ??“撈得準不準”??(避免誤撈)。 - ?召回率?:整個池塘里所有的魚,?你撈上來多少。
→ ??“撈得全不全”??(避免漏撈)。
?兩者矛盾?:
- 如果你用特別密的網(嚴格),撈上來的基本都是魚(高精確率),但可能漏掉很多魚(低召回率)。
- 如果你用特別松的網(寬松),能撈到大部分魚(高召回率),但會混進很多垃圾(低精確率)。
??兩者的關系?
-
?此消彼長?:
- 模型越嚴格 → ?精確率高,召回率低?(少犯錯,但會漏東西)。
- 模型越寬松 → ?召回率高,精確率低?(多抓取,但混進錯誤)。
-
?平衡方法?:
- ?F1分數?:精確率和召回率的“調和平均”(既要準,又要全)。
- ?業務需求決定?:
- 醫療診斷:?高召回率?(寧可誤診,不能漏診)。
- 推薦系統:?高精確率?(寧可少推薦,不能推錯)。
F1 分數(F1-Score)
多類分類任務評級指標
ROC曲線、AUC?
區別于二分類
- 一對多(One-vs-Rest, OVR)
- 一對一(One-vs-One, OVO)
- 微平均(Micro-average)與宏平均(Macro-average)
平均精度均值(mAP,mean Average Precision)
在多分類問題中,平均精度均值(mAP,mean Average Precision)?是一種綜合評估模型性能的重要指標,尤其適用于需要考慮樣本排序和類別相關性的任務(如目標檢測、信息檢索、圖像分類等)。下面從基礎概念、計算流程到多分類場景的擴展進行詳細解析。
核心概念:AP(Average Precision)
AP 是衡量單個類別分類效果的指標,其核心思想是:在所有可能的召回率水平下,計算精確率的平均值,反映模型對該類樣本的 “排序質量”。
2.?AP 的計算流程(以二分類為例,多分類需擴展)
假設模型對某類樣本的預測結果按置信度從高到低排序,依次將每個樣本視為 “正類閾值”,計算對應的精確率和召回率,最終 AP 是這些精確率的加權平均。具體步驟:
- 排序預測結果:按置信度從高到低排序所有樣本。
- 逐樣本計算 TP/FP:
- 若樣本真實類別為正類,則記為 TP,否則為 FP。
- 累積精確率和召回率:
- 前k個樣本的精確率:前k個中的 TP 數 /?k。
- 前k個樣本的召回率:前k個中的 TP 數 / 總正類樣本數。
- 計算 AP:
- 方法 1:全點插值法(現代常用):對每個召回率點r,取所有召回率≥r時的最大精確率,再求這些精確率的平均值(本質是計算精確率 - 召回率曲線下的面積)。
- 方法 2:11 點插值法(歷史方法):在召回率為 0, 0.1, ..., 1.0 的 11 個點上,取對應最大精確率的平均值。
多分類場景下的 mAP 計算
多分類問題中(如C個類別),mAP 是每個類別 AP 的平均值,核心是將多分類轉化為多個二分類問題處理。
對每個類別c,將其視為 “正類”,其他C?1個類別視為 “負類”,形成C個二分類任務。例如,在三分類問題(類別 A、B、C)中:
- 計算類別 A 的 AP 時,將 A 視為正類,B 和 C 視為負類;
- 同理處理類別 B 和 C。
以目標檢測任務(典型多分類場景)為例,假設模型輸出每個檢測框的類別、置信度和坐標,計算 mAP 的步驟如下:
步驟 1:對每個類別單獨處理
以類別c為例:
- 收集所有預測框:篩選出預測為類別c的所有檢測框,按置信度從高到低排序。
- 確定真實正類樣本:所有真實標簽為類別c的目標。
- 計算每個預測框的 TP/FP:
- 對于每個預測框,若與某真實正類目標的 IoU(交并比)≥閾值(如 0.5),且該真實目標未被其他更高置信度的預測框匹配過,則記為 TP;否則為 FP(包括 IoU 不足或重復匹配)。
步驟 2:計算單個類別的 AP
基于步驟 1 的 TP/FP 序列,按 AP 的計算方法(全點插值法)計算類別c的 AP:
- 例如,假設排序后的預測框依次為p1?,p2?,...,pn?,前k個框中有tk?個 TP,則前k個框的精確率為tk?/k,召回率為tk?/T(T為類別c的總真實目標數)。
- AP 是所有召回率點對應的最大精確率的平均值(即精確率 - 召回率曲線下的面積)。
步驟 3:計算 mAP
對所有C個類別的 AP 取算術平均值:
三、示例:mAP 計算實例
假設一個三分類問題(類別 A、B、C),每個類別有 2 個真實目標,模型對每個類別輸出 5 個預測框(按置信度排序),如下表所示:
類別 A 的 AP 計算
預測框 | 置信度 | 真實標簽是否為 A | IoU≥0.5? | TP/FP | 前 k 個框的 TP 數 | 精確率(前 k 個) | 召回率(前 k 個) |
---|---|---|---|---|---|---|---|
1 | 0.9 | 是 | 是 | TP | 1 | 1/1=1.0 | 1/2=0.5 |
2 | 0.8 | 否 | - | FP | 1 | 1/2=0.5 | 1/2=0.5 |
3 | 0.7 | 是 | 是 | TP | 2 | 2/3≈0.667 | 2/2=1.0 |
4 | 0.6 | 否 | - | FP | 2 | 2/4=0.5 | 2/2=1.0 |
5 | 0.5 | 否 | - | FP | 2 | 2/5=0.4 | 2/2=1.0 |
- 計算各召回率點的最大精確率:
- 召回率 = 0.5 時,最大精確率為 1.0(來自 k=1);
- 召回率 = 1.0 時,最大精確率為 0.667(來自 k=3);
- 其他召回率點無新值。
- AP_A?= (1.0 + 0.667) / 2 ≈ 0.833。
類別 B 的 AP 計算
預測框 | 置信度 | 真實標簽是否為 B | IoU≥0.5? | TP/FP | 前 k 個框的 TP 數 | 精確率 | 召回率 |
---|---|---|---|---|---|---|---|
1 | 0.9 | 是 | 是 | TP | 1 | 1.0 | 0.5 |
2 | 0.8 | 是 | 是 | TP | 2 | 1.0 | 1.0 |
3 | 0.7 | 否 | - | FP | 2 | 0.667 | 1.0 |
4 | 0.6 | 否 | - | FP | 2 | 0.5 | 1.0 |
5 | 0.5 | 否 | - | FP | 2 | 0.4 | 1.0 |
- 召回率 = 0.5 時,精確率 = 1.0;召回率 = 1.0 時,最大精確率 = 1.0(來自 k=1 和 k=2)。
- AP_B?= (1.0 + 1.0) / 2 = 1.0。
類別 C 的 AP 計算
假設模型對類別 C 的預測較差,所有預測框均為 FP,則 AP_C=0。
最終 mAP
mAP=30.833+1.0+0?≈0.611
關于ROC曲線、AUC、平均精度均值,后面復習更多再補充