2013-10-24 48 views
1

我有一個用於分類的神經網絡的工作模型。目前,我已經應用了交叉熵來計算測試結果(模型輸出)和條件結果(真實輸出)之間的誤差。該模型用於二元分類,但將擴展爲處理多個類。到目前爲止,在MATLAB使用交叉熵的計算錯誤:機器學習:如何在誤差計算中包含靈敏度或特異性?

err = sum(y.*log(h(x)) + (1-y).*log(1-h(x)))

我想的模型,它可以分類或檢測出更多的誤報然後漏報這樣的方式來執行。我知道有所謂的混淆矩陣在哪裏我可以指定一切,但我不知道這可能如何對應於錯誤計算。任何建議都非常歡迎:)

乾杯!

回答

3

通過引入標量類的權重,可以對正類進行高於或低於負類的權重。由於

y .* log(h(x)) 

代表在積極訓練樣本的損失和

(1 - y) .* log(1 - h(x)) 

是否定訓練樣本的損失,

err = -sum(w .* y .* log(h(x)) + (1 - y) .* log(1 - h(x))) 

引起積極的訓練樣本比更重要當w>1爲負值時,w<1時不太重要。確保您相應地修改衍生產品。

+0

謝謝larsmans。我想知道你在訓練樣本上的損失是什麼。我想我可能不完全理解這個等式。另外,我的輸出來自集合{0,1}。如果我用'w'來計算錯誤的話增加了訓練數目,我不會得到這個集合{w * 1,0}嗎?如果條件爲正值,那麼只需要輸出w * 1?我有點困惑。 – Celdor