我們常常在訓練完模型之後,根據評價指標調整模型的閾值來改變輸出,以獲得更好的分數。因此,了解評價指標的計算方式成了重要的一環,在旗標出版的「Kaggle競賽攻頂秘笈 - 揭開Grandmaster的特徵工程心法,掌握制勝的關鍵技術」一書當中,提到了數個閾值調整的方法,大家可以看看高手們是如何思考。
在多元分類的任務中,有時候會使用Label Ranking Average Precision Score(LRAP),像是Kaggle的Rainforest Connection Species Audio Detection。這個評價指標到底是什麼東西呢?今天就來好好分析一下,以後讀者遇到這種評價指標,就會比較清楚知道怎麼調整模型囉。
假設有兩筆資料,標籤分別為[1, 1, 0]、[0, 1, 1],預測機率分別為[0.8, 0.9, 0]、[0.9, 0.1, 0.2]:
一、第1筆資料
首先要看第1筆資料中,三個預測值的排名:
1、第一個標籤
「標籤的預測機率」在「所有預測機率中」排名第2。從「預測機率排名第1」到「標籤預測機率的排名」,有2個預測機率對應的標籤為1。因此分數為2/2 = 1。
2、第二個標籤
「標籤的預測機率」在「所有預測機率中」排名第1。從「預測機率排名第1」到「標籤預測機率的排名」,有1個預測機率對應的標籤為1。因此分數為1/1 = 1。
3、第三個標籤,標籤值為0,不用計算
二、第2筆資料
同樣,先看預測值的排名:
1、第一個標籤,標籤值為0,不用計算
2、第二個標籤:
「標籤的預測機率」在「所有預測機率中」排名第3。從「預測機率排名第1」到「標籤預測機率的排名」,有2個預測機率對應的標籤為1。因此分數為2/3。
3、第三個標籤:
「標籤的預測機率」在「所有預測機率中」排名第2。從「預測機率排名第1」到「標籤預測機率的排名」,有1個預測機率對應的標籤為1。因此分數為1/2。
三、各個標籤的總分數
1、第一個標籤的平均分數為1
2、第二個標籤的平均分數為(1+2/3)/2 = 5/6
3、第三個標籤的平均分數為1/2
四、所有資料的總分數
我們統計各標籤出現的次數,再根據出現次數來對平均分數做加權平均:
總分 = 1*0.25+5/6*0.5+1/2*0.25 = 0.7916666666666667
五、如果出現預測機率相同的狀況
假設有一筆資料,標籤為[1, 1, 0],預測機率為[0.1, 0.1, 0.9],那該怎麼算呢?簡單說,就是排名取較差的就對了。
1、第一個標籤
「標籤的預測機率」在「所有預測機率中」排名第3。從「預測機率排名第1」到「標籤預測機率的排名」,有2個預測機率對應的標籤為1。因此分數為2/3。
2、第二個標籤
「標籤的預測機率」在「所有預測機率中」排名第3。從「預測機率排名第1」到「標籤預測機率的排名」,有2個預測機率對應的標籤為1。因此分數為2/3 。
3、第三個標籤,標籤值為0,不用計算
這樣大家會算了嘛?
重點整理
1、Label-Weighted Label Ranking Average Precision Score為多元分類中的一種評價指標。
2、Label-Weighted Label Ranking Average Precision Score這種評價指標,在意的是預測機率的大小排名,而非絕對的數值。
參考資料
Scikit-learn developers (2020). Metrics and scoring: quantifying the quality of predictions. [online]. Available at: https://scikit-learn.org/stable/modules/model_evaluation.html#label-ranking-average-precision [Accessed 27 Feb. 2021].
關於作者
Chia-Hao Li received the M.S. degree in computer science from Durham University, United Kingdom. He engages in computer algorithm, machine learning, and hardware/software codesign. He was former senior engineer in Mediatek, Taiwan. His currently research topic is the application of machine learning techniques for fault detection in the high-performance computing systems.