如何評價模型的好壞(二)


  • 二分類問題
  • 多分類問題
  • 連續變量問題

二、簡單二分類問題的延伸

  如果只是簡單的二分類問題,只需要一個二分類的混淆矩陣即可對模型進行評估。但如果問題發生如下變化:

  • 情況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|表示標簽總數,x表示預測標簽,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可近似用如下公式進行計算(參考百度百科)

          

 

參考資料:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM