logo
Loading...

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

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

給模型打分數為何需要這麼複雜,我們可以知道在學習的過程中不會都順利,不論是訓練的資料或是模型本身,如果評估的方式很簡單,那麼就無法兼顧每個面向,意思就是不能只看到表面的數值。 Part 1 Accuracy 先以大家常見、常用的指標出發,Accuracy中文是準確率,從小到大如何得知準確率,例:考試題目有10題,答對5題,答對率就是50%,文字說明就是正確的比例,那為甚麼不用這個當作評估模型的指標就好,下面舉出另一個例子 今天訓練出兩個動物分類器,分類對象為90隻狗跟10隻貓:                 1號分類器: 分類結果為85隻狗、15隻貓,代表有5隻狗和5隻貓被分類錯誤,準確率為90%                 2號分類器: 分類結果為100隻狗、0隻貓,代表有10隻貓被分類錯誤,準確率為90% 可以發現兩個分類器的Accuracy都為90%,以數值來看兩者效能相同,但就分類結果來看也知道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 Accuracy前面提到,從公式也能看到實際運算,分母為全部要分類的數量,分子為分類正確的,對應剛剛90隻狗跟10隻貓的範例,得到在此指標下會因為類別失衡導致結果沒意義。 看到precision,分母為TP+FP,簡單來說就是預測結果為正標籤的數量,也就是100,分子為TP,也就是原本正,分類完也是正的,有90,結果為90/100=90%。 Recall,分母為TP+FN,為90+0,分子為TP,為90,結果為90/90=100%。 接著看到F1-score,分母為precision+recall=0.9+1,分子為2*precision*recall=2*0.9*1=1.8,結果為1.8/1.9 = 94.73% 當看到F1-score時,就能知道這個分類器不是完全準確,但效果也不差。 狗:50、貓:50,分類結果 狗:100、貓:0                 precision=50/100=50%                 recall=50/50=100%                 F1-score=50% 如果只顯示出recall就無法真正顯示分類器效能。