Top-k Accuracy:模型優(yōu)化策略不一定徒勞無功 原創(chuàng)
構(gòu)建模型通常是一個迭代過程,給定數(shù)據(jù)集:
- 訓(xùn)練模型
- 評估模型
- 改進,直到滿意為止
你的改進策略不一定徒勞無功!
如何評估模型是否進步了呢?通常會使用某些性能指標來評估改進策略的有效性。
然而,在多分類問題中,當(dāng)使用“Accuracy”指標評估改進策略有效性時,通常帶有欺騙性。
換句話,某些改進策略其實已經(jīng)提升模型性能了,但通過“Accuracy”這個指標沒有反映出來。
“Accuracy”陷阱
這里的“Accuracy”其實應(yīng)該是“Top-1 Accuracy”。
在多分類問題中,Accuracy由具有最高概率值的標簽決定。
實際的標簽雖然可能并不是模型預(yù)測概率最高的標簽,但它位于模型輸出的前“k”個標簽之中。
如下面圖,實際的標簽(類別C)并不是概率最高的標簽,但它至少在前2個預(yù)測概率最高的標簽之中(類別B和類別C):
如果上一個版本中,類別C的輸出概率是最低的,就像下面所示:
雖然在這兩種情況下,最終的預(yù)測結(jié)果都是錯誤的(模型預(yù)測標簽C不是最高概率)。
但是,在從“版本1”迭代到“版本2”的過程中,通過使用一些模型改進技術(shù),我們確實取得了實質(zhì)性的進步(從倒數(shù)第一上升到第二)。
盡管如此,準確率(Accuracy)完全忽略了這一點,因為它只關(guān)注概率最高的標簽。
解決辦法:top-k Accuracy
在模型迭代過程中,“top-k Accuracy”可能會持續(xù)提高,這反映了性能的提升。然而,準確率可能會在一段時間內(nèi)保持不變,如下所示:
所以,top-k Accuracy常用于評估模型改進策略,模型最終性能仍然要通過top-1 Accuracy評估。
在Scikit-learn中也提供了top-k Accuracy評估指標。
在二分類問題中,因為只有兩個類別,模型的輸出通常只是一個概率值,用于表示正樣本的概率,使用準確率、精確率、召回率就夠用了。
性能指標vs損失函數(shù)
最后再說一下模型性能評估指標和損失值的區(qū)別。
損失值用于訓(xùn)練過程中,衡量模型預(yù)測結(jié)果與真實標簽之間的差異,指導(dǎo)模型的參數(shù)更新。
模型性能指標主要用于評估模型的泛化能力,即模型在未見過的數(shù)據(jù)上的表現(xiàn)。通常衡量模型的預(yù)測準確性、精確率、召回率、F1 分數(shù)等。
本文轉(zhuǎn)載自公眾號人工智能大講堂
