[知乎做答]·關於在Keras中多標籤分類器訓練準確率問題

[知乎做答]·關於在Keras中多標籤分類器訓練準確率問題

本文來自知乎問題 關於在CNN中文本預測sigmoid分類器訓練準確率的問題?中筆者的做答,來做爲Keras中多標籤分類器的使用解析教程。app

 

1、問題描述

關於在CNN中文本預測sigmoid分類器訓練準確率的問題?

對於文本多標籤多分類問題,目標標籤形如[ 0 0 1 0 0 1 0 1 0 1 ]。在CNN中,sigmoid分類器訓練、測試的準確率的判斷標準是預測準確其中一個標籤即爲預測準確仍是怎樣。如何使sigmoid分類器的準確率的判斷標準爲所有預測準確即爲預測準確。有什麼解決方案?測試

 

2、問題回覆

 

問題中提出的解決多標籤多分類問題的解決方法是正確的。可是要注意幾點,keras裏面使用這種方式的acc是二進制acc,會把多標籤當作單標籤計算。spa

什麼意思呢?舉個例子,輸入一個樣本訓練,共有十個標籤,其中有兩個爲1,而你預測結果爲所有是0,這時你獲得準確率爲0.8。最後輸出的ac是全部樣本的平均。能夠看出這個準確率是不可信的。.net

解決方法以下:重寫acc評價指標,筆者本身寫了一個多標籤分類的acc,一個樣本里,只有所有標籤都對應上才acc爲1,有一個不對就爲0。3d

acc是keras輸出acc,my_acc是多標籤acc,由於使用了數據加強,valacc更高。blog

 

因爲每一個label的比例不一樣,又測試不一樣權重重寫loss來對比。發現經過調整合適權重能夠,相同參數下能夠達到更優效果。教程

 

設置合適的權重值,val_acc上升了,val多標籤acc也達到了更高。element

關於如何設置合適權重,筆者還在實驗中,能夠關注下筆者的知乎博客。後面實驗結果會及時更新。get

相關文章
相關標籤/搜索