Machine-Learning

損失函數和評估指標

  • November 28, 2018

在構建學習算法時,我們希望最大化給定的評估指標(例如準確性),但該算法將嘗試在學習期間優化不同的損失函數(例如 MSE/熵)。

那麼為什麼評估指標不用作學習算法的損失函數呢?然後我們不會優化我們感興趣的相同指標嗎?

有什麼我想念的嗎?

這是個好問題。一般來說,我認為您應該嘗試優化與您最關心的評估指標相對應的損失函數。

但是,您可能想了解其他評估指標。

例如,在進行分類時,我認為您需要給我一個很好的理由,不要優化交叉熵。也就是說,交叉熵不是一個非常直觀的指標,所以一旦你完成訓練,你可能還想知道你的分類準確度有多好,以了解你的模型是否真的會任何現實世界的使用(它可能是最好的模型,並且具有比其他人更好的交叉熵,但仍然沒有足夠的準確性在現實世界中使用)。

我不太熟悉的另一個論點是,主要在基於樹的(或其他貪婪的)算法中,使用某些損失是否意味著您可以在早期進行更好的拆分並允許您更好地優化您在全球範圍內關心的指標。例如,在決定決策樹中的最佳分割是什麼時,人們傾向於使用 Gini 或信息熵(注意,不是交叉熵)。我聽過的唯一論據不是很有說服力,而且基本上是不使用準確性而是使用交叉熵的論據(可能是關於類不平衡的事情)。在嘗試獲得最佳交叉熵時,我可以想到兩個可能使用 Gini 的原因:

  1. 正如上面提到的,與本地學習和貪婪的決策有關(我不相信這一點,我必須補充)。
  2. 與實際的計算實現有關。理論上,決策樹會評估每個節點的每個可能的拆分,並根據您的標準找到最佳拆分,但實際上,據我了解,它不會這樣做並使用近似算法,我懷疑它利用了您的損失標準的屬性.

總之,您擁有多個評估指標的主要原因是了解您的模型在做什麼。可能存在與通過近似方法找到最佳解決方案相關的原因,這意味著您希望最大化度量 A 以獲得接近於最大化度量 B 的解決方案。

引用自:https://stats.stackexchange.com/questions/379264

comments powered by Disqus