iT邦幫忙

2024 iThome 鐵人賽

DAY 15
0
AI/ ML & Data

征服機器學習的終極秘技系列 第 15

Day 15 - 找到最佳解決方案:模型評估

  • 分享至 

  • xImage
  •  

簡介

在機器學習的開發過程中,選擇適當的演算法只是其中的一部分。模型的成功與否,很大程度上取決於如何正確地評估其性能📊。無論模型看起來多麼完美,如果沒有正確的評估方法,就無法確定它在實際應用中的表現📉。模型評估不僅影響模型的選擇,還對模型的優化和改進有著很大的影響。不同類型的任務,如回歸、分類、聚類和降維,適用的評估方法和指標各不相同。我們曾提到數據拆分的概念,訓練集用於學習📖,驗證集則在調整模型時進行性能評估,幫助選擇最佳配置,測試集則用來檢驗模型的泛化能力。接下來,我們將介紹各類問題中的常見評估指標。在今明兩天文章中,我們將介紹在不同類型的問題中各自常見的評估指標:

  • 📁分類問題:用於對樣本進行類別歸類,評估指標包括準確率、精確率、召回率、F1 分數、ROC 曲線和 AUC 值等,以及用來分析分類結果的混淆矩陣。
  • 📝回歸問題:主要用於預測連續數值,常見的評估指標包括均方誤差(MSE)、均方根誤差(RMSE)、平均絕對誤差(MAE)等。
  • 🎯聚類問題:評估無標籤數據的分群效果,指標包括輪廓係數(Silhouette Score)、戴維斯-鮑丁指數(Davies-Bouldin Index)和相互資訊(Mutual Information)等。
  • 🔍降維問題:減少數據的維度以便於可視化或提高計算效率,評估方法包括解釋變異量(Explained Variance)和重構誤差(Reconstruction Error)。

分類問題的評估指標

分類問題是指根據樣本的特徵將其歸類到預定的類別中。常見的評估指標包括:

  • 🎯準確率(Accuracy):準確率是指模型正確分類的樣本數量佔總樣本數的比例。這是最直觀的指標,表示正確分類的比例🔢。例如,在 100 位病患中要測試是否有中風風險,其中模型正確分類了 90 位病患,則準確率為 90%。
    • 使用時機:當各類別的重要性相同,且數據集平衡時(各類別樣本數量相近)
    • 代表含義:整體的正確程度📈
    • ⚠️注意事項⚠️:準確率並不總是最好的指標。想像一下,當我們預測罕見疾病時,如果有 10000 位病患,其中9999 位是正常人,1 位患有罕見疾病。即使模型總是預測「正常人」,準確率也能達到 99%。然而,這並不意味著模型真正學會了識別罕見疾病患者,反而可能會導致對罕見疾病患者的誤判,進而延誤治療。
  • ✅精確率(Precision):精確率是指模型預測為某類的結果中,實際正確的比例。例如,在癌症檢測中,如果模型預測了 10 個樣本為癌症,實際只有8個是癌症,精確率就是 80%。
    • 使用時機:當我們關心模型對特定類別的表現時,特別是在不平衡數據集中。如在醫學診斷中,精確率代表在被診斷為患病的人中實際患病的比例
    • 代表含義:精確率高表示模型在預測某類時很謹慎,錯誤很少
    • ⚠️注意事項⚠️:高精確率可能會導致較低的召回率。例如,模型可能只在非常確定的情況下才預測為陽性,這可能會遺漏一些實際的陽性樣本。
  • 🏃‍召回率(Recall):召回率是指實際屬於某類的樣本中,模型正確識別出的比例。還是以癌症檢測為例,如果實際有 10 個癌症患者,模型檢測出了 8 個,則召回率為 80%。
    • 使用時機:跟精確率一樣,當我們關心模型對特定類別的表現時,特別是在不平衡數據集中。只是在醫學診斷中,召回率代表在所有實際患病的人中被正確診斷出的比例
    • 代表含義:召回率高表示模型能找出大部分屬於該類的樣本
    • ⚠️注意事項⚠️:高召回率可能會導致較低的精確率。例如,模型可能傾向於將更多樣本預測為陽性,以確保不遺漏任何實際的陽性樣本,但這可能會增加假陽性的數量。
  • ⚖️F1分數(F1 Score):F1 分數是精確率和召回率的調和平均數,用來平衡這兩者的重要性。在某些情況下,僅僅關注準確率或召回率是不夠的,F1 分數可以提供更全面的評估。
    • 使用時機:當我們需要在精確率和召回率之間取得平衡時
    • 代表含義:綜合考慮了精確率和召回率的表現。F1 分數高表示模型在精確率和召回率上都表現不錯
    • ⚠️注意事項⚠️:在某些特定情況下,我們可能需要調整 F1 分數的權重。例如,在醫療診斷中,漏抓(假陰性)可能比誤診(假陽性)更嚴重,這時我們可能需要更重視召回率。在這種情況下,可以使用加權的 F1 分數,給召回率更高的權重。
  • 📈ROC 曲線和 AUC 值:ROC 曲線展示了模型在不同閾值下的真陽率 (TPR,等同於召回率) 和假陽率 (FPR) 的關係。AUC(曲線下面積)則是 ROC 曲線的面積,用來衡量模型的整體分類性能
    • 使用時機:當我們需要評估模型在不同決策閾值下的性能時,特別是在不平衡數據集中
    • 代表含義:AUC 值範圍在 0 到 1 之間,越接近 1 表示模型的分類性能越好。AUC 為 0.5 表示模型的預測能力與隨機猜測相當。
    • ⚠️注意事項⚠️:ROC 曲線對類別不平衡不敏感,在極度不平衡的數據集中可能需要考慮精確率-召回率曲線。
  • 📊混淆矩陣(Confusion Matrix):混淆矩陣是一個表格,表示模型的預測結果與實際結果的對應關係。它能幫助我們具體了解模型在哪些類別上做得好,在哪些類別上有誤差或誤判。
    • 使用時機:當我們需要詳細了解模型在各個類別上的表現時。這些指標可以幫助我們更全面地評估模型在不同方面的表現,特別是在不平衡數據集中
    • 代表含義:直觀地顯示了模型在每個類別上的正確和錯誤預測
    • ⚠️注意事項⚠️:在實際應用中,混淆矩陣的解釋應該結合具體的問題背景。不同的應用場景可能會更重視某些特定的指標。此外,在多分類問題中,混淆矩陣會變得更加複雜,但基本原理仍然適用,通常多分類問題中,我們第一件要看的是混淆矩陣中的斜對角線去判斷正確預測的數字是否較大。通常斜對角線越大越好。
    • 混淆矩陣是一個很好的工具,不單單是因為它提供了分類結果的詳細視圖,還因為它可以幫助我們識別模型在每個類別上的表現。最主要有四個類別:
        1. 真陽性(True Positive, TP):模型正確地將陽性樣本預測為陽性。例如,模型正確地診斷出患有疾病的病人。
        1. 真陰性(True Negative, TN):模型正確地將陰性樣本預測為陰性。例如,模型正確地診斷出健康的人。
        1. 假陽性(False Positive, FP):模型錯誤地將陰性樣本預測為陽性。這也被稱為第一型錯誤 (Type I Error)。例如,模型錯誤地將健康的人診斷為患病。這種錯誤可能會導致不必要的焦慮或不必要的進一步檢查或治療,增加患者的醫療成本和風險。
        • Type I Error(第一型錯誤)
          • 定義:當實際為負類時,模型錯誤地預測為正類的情況
          • 例子:假設我們在進行疾病檢測,模型錯誤地預測 30 人有疾病,但其中 10 人實際上並沒有疾病。這就是 Type I Error。
          • 影響:Type I Error 可能會導致不必要的焦慮和不必要的醫療檢查或治療。
        1. 假陰性(False Negative, FN):模型錯誤地將陽性樣本預測為陰性。這也被稱為第二型錯誤 (Type II Error)。例如,模型錯誤地將患病的人診斷為健康。這可能會導致病情未被及時發現,影響患者的健康。
        • Type II Error(第二型錯誤)
          • 定義:當實際為正類時,模型錯誤地預測為負類的情況
          • 例子:在疾病檢測中,模型沒有識別出 5 位真正有疾病的病人,將他們誤判為健康。這就是 Type II Error。
          • 影響:Type II Error 可能會延誤疾病的診斷和治療,可能會使患者的病情惡化。
  • 以上四個類別構成了混淆矩陣的基本結構,可以用來計算多個重要的評估指標:
    • 準確率(Accuracy)= (TP + TN) / (TP + TN + FP + FN)
    • 精確率(Precision)= TP / (TP + FP)
    • 召回率(Recall)或敏感度(Sensitivity)= TP / (TP + FN)
    • 特異度(Specificity)= TN / (TN + FP)
    • F1 分數 = 2 * (Precision * Recall) / (Precision + Recall)

舉例來說,下面這個混淆矩陣告訴我們,在 200 位患者中,模型正確識別了 90 位正常人和 95 位患病者,但也將 10 位正常人誤判為患病,5 位患病者誤判為正常。模型的敏感度(正確識別患病者的能力)為 95%,特異度(正確識別正常人的能力)為 90%,整體準確率為 92.5%。
https://ithelp.ithome.com.tw/upload/images/20240916/20168116oLnwTLwI2Y.jpg

通過分析這些數值,我們可以更全面地理解模型的性能,特別是在處理不平衡數據集時。例如,在罕見疾病診斷中,我們可能更關注召回率(避免漏診)而非精確率。而在垃圾郵件過濾中,我們可能更注重精確率(避免將重要郵件誤判為垃圾郵件)。
當我們評估分類模型時,Type I Error(第一型錯誤)和 Type II Error(第二型錯誤)是常見的概念,它們描述了模型在預測過程中可能出現的錯誤類型。在模型設計和評估過程中,我們通常需要在 Type I Error 和 Type II Error 之間找到一個平衡點。這取決於具體的應用場景:

  • 在某些應用中(例如疾病檢測),降低 Type II Error 可能更為重要,因為漏診會對患者健康造成嚴重影響。在這種情況下,我們可能會更願意容忍一些 Type I Error。
  • 在其他應用中(例如垃圾郵件過濾),降低 Type I Error 可能更為重要,以避免誤將正常郵件當作垃圾郵件。在這種情況下,我們可能會願意容忍一些 Type II Error。

了解 Type I Error 和 Type II Error 可以幫助我們更好地設計和調整模型,以達到所需的預測準確性和可靠性。Type I Error 和 Type II Error 並非單純是一個專有名詞解釋,這些「明明事實是A,我們卻誤以為是B」的錯誤也是可能發生在我們生活中的任何時候,如:
https://ithelp.ithome.com.tw/upload/images/20240916/20168116GusQOMZStH.jpg
source

結論

在這篇文章中,我們探討了分類問題中常見的評估指標。理解它們的應用場景和限制,有助於我們在實際應用中選擇和調整模型。在下一篇文章中,我們將深入探討回歸、聚類和降維問題的評估指標,以及如何進行模型比較,進一步提升模型性能。


上一篇
Day 14 - 深入解析常見演算法
下一篇
Day 16 - 回歸、聚類與降維問題的評估指標及模型比較
系列文
征服機器學習的終極秘技30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言