logo
Loading...

【QA】如何給二分類模型打分數? - 【教材專區】學習AI有困難? 讓Cupoy助教來幫你! - Cupoy

給模型打分數為何需要這麼複雜,我們可以知道在學習的過程中不會都順利,不論是訓練的資料或是模型本身,如果評估的方式很簡單,那麼就無法兼顧每個面向,意思就是不能只看到表面的數值。 Part 1 Acc...

給模型打分數為何需要這麼複雜,我們可以知道在學習的過程中不會都順利,不論是訓練的資料或是模型本身,如果評估的方式很簡單,那麼就無法兼顧每個面向,意思就是不能只看到表面的數值。 Part 1 Accuracy 先以大家常見、常用的指標出發,Accuracy中文是準確率,從小到大如何得知準確率,例:考試題目有10題,答對5題,答對率就是50%,文字說明就是正確的比例,那為甚麼不用這個當作評估模型的指標就好,下面舉出另一個例子 今天訓練出兩個動物分類器,分類對象為90隻狗跟10隻貓:                 1號分類器: 分類結果為85隻狗、15隻貓,代表有5隻狗和5隻貓被分類錯誤,準確率為95%                 2號分類器: 分類結果為100隻狗、0隻貓,代表有10隻貓被分類錯誤,準確率為90% 可以發現兩個分類器的Accuracy差不多,以數值來看兩者效能接近,但就分類結果來看也知道1號分類器能夠對兩種動物分類,而2號分類器則完全無法對2號分類器分類,顯然2號分類器效能更差。 引出了Accuracy指標的問題,當兩個類別數量不平衡時,Accuracy就有可能會無法呈現出真正的意義。 Part 2 Confuse Matrix 為了避免因為類別不平衡導致的衡量問題,下面介紹混淆矩陣,如下表 其中有四種情況,分別是TP、TN、FP和FN,各自代表的意義為 1. TP(True Positive):正確預測成功的正樣本 2. TN(True Negative):正確預測成功的負樣本 3. FP(False Positive):錯誤預測成正樣本,實際為負樣本 4. FN(False Negative):錯誤預測成負樣本,實際為正樣本 舉以下例子,假設有8張圖片,5隻狗跟3隻貓,狗為0(正樣本)貓為1(負樣本),拿一個訓練好的模型對這8張圖預測,實際情況為:[0,0,0,0,0,1,1,1],預測結果為:[1,1,0,0,0,1,0,1],此時將結果放到混淆矩陣內為下表 以左上角TP說明,TP為正樣本被預測為正的數量,正的為前五筆,前五筆被預測結果有三筆一樣為正,因此TP為3,其他TN、FP和FN同理,接著要介紹的評估指標會透過混淆矩陣的這四個指標去計算得出。 Precision Recall F1-score Accuracy Part 3 ROC/ AUC 首先ROC曲線會依照下面兩個指標繪製,AUC則是計算ROC曲線下的面積(界在0~1之間) 下面先看到TPR、FPR,一樣利用混淆矩陣計算。可以看到TPR分子為TP,因此TPR越大越好,FPR分子是FP,因此FPR越小越好。 有了TPR、FPR後,就可以繪製ROC曲線,但要繪製比較完整的ROC曲線需要多個閥值下的TPR、FPR,就會根據不同閥值下的TPR、FPR繪製ROC曲線。 這裡範例就取一個閥值下的TPR和FPR,如下面左圖,只有一條斜線,代表在這一個閥值底下的TPR和FPR相同,右圖的紅線為左圖紅線,新加入的綠線可以看到左上的點,那就是在設定的閥值底下,(FPR, TPR)的點。 此時計算兩張圖曲線下面積,左圖為0.5,因為曲線下面積只有右下的一半(完整為1)。右圖則是大略估計為0.8左右。AUC越高代表該模型效能越好。