Leo Yeh's Blog

SAS 機器學習 (10)

教學目標

初步了解 SAS Visual Data Mining and Machine Learning 建立監督式學習演算法之最佳實務的基本概念,此篇主要為學習筆記。

重點概念

首先針對經驗較少的使用者傾向於選擇易於實現,並且可以很快的獲得演算法結果,而當在我們獲得一些結果,並且對資料越來越熟悉,此時我們就會花更多時間進行更多複雜演算法的實驗,以利於加強我們對於資料的理解更進一步改善結果。請注意在這個階段最好的演算法也許不是準確性最高的演算法,大多數演算法通常需要仔細調整和廣泛的訓練才能獲得最佳效能,此時為機器學習應用程式選擇建模演算法可能是最困難的部分是決定使用哪種演算法可以參考回答幾個關鍵問題,分別為:

  1. 我們的資料大小和性質是什麼?
  2. 我們想要使用您的模型實現什麼目標?
  3. 我們的模型需要多準確?
  4. 我們需要多長時間訓練模型?
  5. 我們的模型需要具有可解釋性或可理解性嗎?
  6. 我們的模型是否具有自動超參數調整功能?

接著針對資料大小和性質的問題,當資料集非常大時,需要考慮訓練效率和維度,則線性模型將會是理想選擇,隨著特徵數量和之間距離的增加,觀察結果更可能是線性可分。至於針更複雜的關係將能夠建立複雜的機器學習演算法的模型,像是決策樹,隨機森林,神經網路和非線性內核支持向量機,當然這些更複雜的演算法可以需要更多的訓練時間,可能不適合非常大的資料集,以及當我們建立要分類的模型觀察,預測區間目標的值,檢測模式或異常或提供建議。

再來雖然我們總是希望模型在應用於新的資料時能夠盡可能準確,更簡單模型訓練更快,更容易理解,更容易解釋原因結果的方式。更簡單的模型也更容易部署,從回歸模型開始基準,然後訓練一個更複雜的模型,像是神經網絡,隨機森林或梯度提升模型,若我們的迴歸模型比更複雜的模型準確得多,那麼我們就是可能已經錯過了預測因子的一些重要預測或相互作用,另一個額外的好處就是更簡單的模型是它不太容易過度擬合訓練資料。此外若我們需要在短時間內訓練模型,線性或邏輯回歸和決策樹可能是您的最佳選擇,但若時間不是一個問題,則建議使用更強大的演算法,像是神經網路,支持向量機,梯度增強等等,以迭代的方式改進模型以更好地表示複雜性特徵與目標之間的關係。

最後模型必須具有可解釋性,如果無法解釋的模型預測是可以接受的,則就能夠盡可能使用複雜的演算法,提供時間和計算資源,像是訓練神經網路、支持向量機器、組合模型、… 等,以利實現高度準確和通用的模型,但是如果對於模型的可解釋性非常需要,則建議使用決策樹或回歸技術。此外最優化超參數設置非常依賴於資料,因此我們很難提供關於如何做的一般規則識別機器學習演算法的重要超參數的子集或如何找到最佳值每個超參數可以適用於所有數據集,控制學習的超參數演算法非常重要,因為適當的控制可以提高準確性並防止訓練模型時過度擬合。至於針對不同監督式學習演算法的預測結果可解釋性和超參數自動調整對應表,請參考下表。

演算法類型 預測結果可解釋性 超參數自動調整
線性迴歸
羅輯斯迴歸
決策樹
森林
支持向量機器
神經網路
貝式網路

相關資源

⬅️ Go back