- 二分類問題
- 多分類問題
- 連續變量問題
二、簡單二分類問題的延伸
如果只是簡單的二分類問題,只需要一個二分類的混淆矩陣即可對模型進行評估。但如果問題發生如下變化:
- 情況1:基於同一組數據集多次訓練/測試不同的模型
- 情況2:基於多個數據集測試評估同一個模型
- 情況3:執行多分類任務
此時,會產生多個不同的混淆矩陣,則需要引入兩個新的概念“宏”與“微”。
(1)“宏”:
當產生n個混淆矩陣時,分別計算每個混淆矩陣的Precision,recall,F-measure,再計算各自的平均值,即產生:宏查准率 macro-P,宏查全率 macro-R,macro-F。
(2)“微”:
當產生n個混淆矩陣時,先將n個混淆矩陣中的TP,FP,TN,FN對應求平均值。然后按照簡單二分類問題中Precision,recall,F1-measure的公式,分別求:微查准率 micro-P,微查全率 micro-R, micro-F。
1 from sklearn.metrics import precision_score 2 y_true = [0, 1, 2, 0, 1, 2] 3 y_pred = [0, 2, 1, 0, 0, 1] 4 p1 = precision_score(y_true, y_pred, average='macro') 5 p2 = precision_score(y_true, y_pred, average='micro') 6 p3 = precision_score(y_true, y_pred, average='weighted') 7 p4 = precision_score(y_true, y_pred, average=None)
參數:average介紹如下:(precision,recall,f1-score同)
三、多分類問題
(1)一般來說,多分類問題也可以拆分成n個二分類問題,即可產生n個混淆矩陣,使用上述“宏”“微”指標進行模型評估。舉例子分析:150個樣本數據,分成三類,每類50個樣本數據,如下表所示(每行表示真實標簽,每列表示預測標簽)。
類1 | 類2 | 類3 | |
類1 | 43 | 5 | 2 |
類2 | 2 | 45 | 3 |
類3 | 0 | 1 | 49 |
從表格數據中可以看出,對於類1,有43個樣本數據預測正確,5個樣本被錯分為類2,2個樣本數據被錯為分類3。 同理,對於類2,有45個樣本數據預測正確,2個樣本數據被錯分為類1,3個樣本數據被錯分為類3。對於類3,有49個樣本數據預測正確,1個樣本數據被錯分為類2。之后,可分別計算每個類別precision,recall,F1-score。
(2)漢明損失(hamming loss):其中|D|表示樣本總數,|L|表示標簽總數,xi 表示預測標簽,yi 表示真實標簽,xor表示異或關系,即 預測標簽與真實標簽的異或關系。從公式上可以看出,漢明損失關注的是被錯誤分類的標簽的個數,所以,漢明損失值越小,模型效果越佳。
1 from sklearn.metrics import hamming_loss 2 y_pred = [1, 2, 3, 4] 3 y_true = [2, 2, 3, 4] 4 hamming_loss(y_true, y_pred) #輸出結果為0.25
5
6 hamming_loss(np.array([[0, 1], [1, 1]]), np.zeros((2, 2))) #輸出結果為0.75
(3)交並比 IOU(intersection over union):交比並
- 在連續性問題中,IOU表示的面積之比,即預測與真實的交集面積 比上 預測與真實的並集面積。
- 在分類問題中,IOU可近似用如下公式進行計算(參考百度百科)
參考資料:
- 深度學習基礎(九)--softmax(多分類與評估指標) : https://testerhome.com/topics/11262
- 多分類的評估指標: https://www.jianshu.com/p/100f3dee345d
- 多分類的評價指標:https://blog.csdn.net/yinyu19950811/article/details/82534505