《從零開始的資料科學筆記》Day#13:機器學習流程-中

更新於 發佈於 閱讀時間約 8 分鐘
raw-image

在這個章節會繼續介紹機器學習後半部的流程,主要也是概念式的說明,每一個小細節在後續的文章中會再單獨拿出來說明。請大家盡量記得文章中每個流程所提到的專有名詞,大概了解每一個步驟在做什麼對於後續的學習很有幫助!

🔷 模型訓練(Model Training)

根據問題屬性判斷:

  • 預測數值 ➜ 迴歸模型(Regression)
  • 預測類別 ➜ 分類模型(Classification)
  • 發現資料內部結構 ➜ 分群模型(Clustering)

載入模型演算法

  • 常用套件如 scikit-learn、xgboost、lightgbm 提供快速建模。
  • 設定模型參數
    - 不同模型會有各自的模型參數可以設置,使用前須在套件官網查詢
  • 設定訓練超參數
    - 如: 訓練次數、學習率、衰退率、損失函數等

常用訓練超參數

raw-image

準備資料集

  • 需已完成前處理與特徵工程。
  • 可使用 scikit-learn套件中的train_test_split函數 將資料切分為訓練與測試集。

為什麼需要切分資料?

raw-image

怎麼切?

raw-image

模型訓練

  • 訓練過程會自動估算內部參數(如權重、分裂點等)。
  • 可以設置多種Callback機制,讓模型訓練得更好,如: EarlyStopping、Checkpoint…
  • Callback機制是可以在模型訓練過程中執行的動作
  • EarlyStopping就是讓模型可以依據設定的條件提早結束訓練的機制

初步檢查模型

  • 每個模型所計算的東西不同,有些模型會有附加的特徵重要性或是特徵篩選的功能可以參考,如XGBoost、RandomForest、LassoRegression…
  • 檢查訓練集和驗證集的評估指標有無差異
  • 在訓練過程中的每一次迭代都會有此結果

🔷 模型評估(Model Evaluation)

當此次模型訓練完之後,可以先計算其評估指標來看看是否有達到你們設定的目標,在這部分使用的是測試資料集。

做出預測

  • 當你使用的是分類模型時,實際上的預測結果是每個類別的機率值
  • 使用 .predict(X_test) 對測試集預測。
  • 若為機率模型,可使用 .predict_proba()。

選擇評估指標

根據任務類型選用不同指標:

  • 分類:Accuracy、Precision、Recall、F1、ROC-AUC
  • 迴歸:MAE、MSE、RMSE、R²

💡可同時計算多種指標進行比較,不同指標著重的地方不同。

混淆矩陣分析(分類任務)

  • 分析模型的 TP、FP、FN、TN 數量。
  • 可使用 sklearn.metrics.confusion_matrix。
  • 針對分類任務,使用混淆矩陣可以更深層次的了解模型性能,然後依照不同的指標需求調整模型。

交叉驗證(Cross-validation)

由於資料本身在分割時可能會有抽樣不平均的可能性,造成每次訓練都會有高低起伏。

  • 例如:可能這次分割到的20%驗證集比較簡單,就會導致驗證結果比較好,但實際上模型沒這麼強。
  • 因此使用 K-Fold 分割資料做多次訓練與驗證,確保穩定性。

測試結果分析

raw-image

當訓練模型時,會利用訓練資料集和驗證資料集計算評估指標,觀察模型訓練狀況。 訓練完後會再使用測試資料集計算評估指標,以此跟訓練結果做比較。

  • 理想狀況:訓練集分數和測試集的分數會是差不多的
  • 訓練集分數太高,測試集分數過低,稱為過擬合(overfitting)
  • 訓練集分數太低,測試集分數過高,稱為欠擬合(underfitting)
  • 兩個情況都有相對應的解決辦法可以使用

🔷 模型優化(Model Optimization)

當模型訓練完成後,這只是開始!!! 接下來需要對模型不斷地優化,提升其能力。

超參數調整(Hyperparameter Tuning)

與訓練過程中學到的參數不同,這些是訓練的設定(如:學習率)。

常用方法:

raw-image

特徵選擇(Feature Selection)

去除低貢獻欄位,提高模型效能與解釋力。

  • 有些模型如XGBoost就有自帶特徵選擇功能
  • 其他工具如 SelectKBest, RFE, Lasso regression

特徵轉換

  • One-hot encoding、數值標準化、對數轉換
  • 對類別資料與長尾資料尤其重要。

💡簡單的說,就是讓類別資料變成數值、讓各種偏斜的資料分佈盡可能接近常態分佈

集成學習(Ensemble Methods)

集成學習方法很多種,簡單的說就是集結或綜合多個模型來提升整體能力! 目前三大主流方法如下:

raw-image

避免過擬合和欠擬合

這裡先將原因簡單分為模型太簡單以及模型太複雜兩種:

raw-image

🔷 模型部署(Model Deployment)

模型儲存與版本控管

模型訓練完成後需要將其模型結構與模型權重儲存起來,以利後續調用!

常見模型儲存格式

raw-image

模型版本控制工具

raw-image

封裝模型成 API

模型的部署需使用API的形式來接資料與回傳結果。

做法

  • 將模型與預處理邏輯寫入 Python 函式 → .py檔
  • 使用 Flask / FastAPI 將其轉為可接收 JSON 資料的 RESTful API

建置使用介面(可選)

除了直接部署API供其他人調用之外,也可以建置簡易介面來測試與展示,可使用 Streamlit或是Gradio 建立互動介面。

Streamlit和Gradio主要是機器學習模型使用的簡易互動介面,有別於傳統前端網頁的技術。

容器化部屬 (Container)

除了將封裝完的API直接在機器上啟動之外,會建議使用容器部屬的方式。 容器化部署可以將作業系統、環境、套件、程式…等所有運行API所需要的元素通通一起打包起來,方便於任意機器部屬!!!

raw-image

測試部署環境

於本機或雲端模擬真實資料輸入與模型輸出,測試部署的API是否可以成功地接收資料與輸出模型結果。

raw-image

🔷 模型推論(Model Inference)

接收實際資料

模型部署後,接收來自 API 或介面的資料,通常使用 JSON格式,讀取後再依需球轉換成 DataFrame 或 Numpy 格式。

重現前處理流程

這步驟是很多初學者容易漏掉的一個細節,不管你是訓練資料,測試資料還是新的資料,前處理都要跟訓練模型時的步驟一樣,才能確保輸入的資料是一致的!!!

  • 例如 資料清理步驟、標準化、特徵編碼, …等

💡建議將前處理封裝為 Pipeline,避免錯誤與遺漏

模型載入與預測

  • 讀取模型架構與權重
  • 對新資料預測

輸出結果處理

  • 將結果轉換為可讀資訊(如標籤名稱、機率分數)
  • 可將結果回傳至使用者介面或儲存至資料庫

監控與更新模型

  • 追蹤預測準確度,確保模型能力還在要求之上
  • 定期根據新資料重訓模型,維持效能(model retraining)







留言
avatar-img
留言分享你的想法!
avatar-img
Ethan的AI學習筆記
1會員
15內容數
我是一個不務正業的資料科學家,從零開始學習的路途上跌跌撞撞,跌過許多坑,也撞過許多牆... 當有人迷失方向時,希望這些筆記可以成為你的指南針。
Ethan的AI學習筆記的其他內容
2025/07/16
接著會詳細的介紹機器學習的每一個步驟在做什麼,這部分專有名詞會比較多,希望大家可以盡量熟悉。 🙋問題定義 在真正進入機器學習流程之前,需要先定義你想要解決的問題。 如何將你的問題、你的痛點,轉換成機器學習可以執行的任務是你們會遇到的第一個難題,原則上可以遵循以下方法來思考:
Thumbnail
2025/07/16
接著會詳細的介紹機器學習的每一個步驟在做什麼,這部分專有名詞會比較多,希望大家可以盡量熟悉。 🙋問題定義 在真正進入機器學習流程之前,需要先定義你想要解決的問題。 如何將你的問題、你的痛點,轉換成機器學習可以執行的任務是你們會遇到的第一個難題,原則上可以遵循以下方法來思考:
Thumbnail
2025/07/05
🔍 為什麼要學機器學習? 在這個資料驅動的時代,從圖像辨識、語音助手到金融風險預測,都離不開機器學習。 透過「從資料中自動學習規則」的能力,機器學習幫助我們: 自動化決策流程(例如:信貸核准) 從龐大資料中發現趨勢與模式(例如:顧客行為分析) 增強傳統演算法的適應力與預測能力
Thumbnail
2025/07/05
🔍 為什麼要學機器學習? 在這個資料驅動的時代,從圖像辨識、語音助手到金融風險預測,都離不開機器學習。 透過「從資料中自動學習規則」的能力,機器學習幫助我們: 自動化決策流程(例如:信貸核准) 從龐大資料中發現趨勢與模式(例如:顧客行為分析) 增強傳統演算法的適應力與預測能力
Thumbnail
2025/06/27
在輔導學員的時候遇過很多初學者會搞不清楚到底模型是什麼?訓練又是怎麼一回事? 因此這篇文章主要是提供初學者一些簡單的概念,知道”模型”和”訓練”是在做什麼,不涉及程式碼撰寫與執行。 希望藉由簡單的說明讓大家可以先了解這些基本概念,可以加快後續實際操作上手的時間。
Thumbnail
2025/06/27
在輔導學員的時候遇過很多初學者會搞不清楚到底模型是什麼?訓練又是怎麼一回事? 因此這篇文章主要是提供初學者一些簡單的概念,知道”模型”和”訓練”是在做什麼,不涉及程式碼撰寫與執行。 希望藉由簡單的說明讓大家可以先了解這些基本概念,可以加快後續實際操作上手的時間。
Thumbnail
看更多
你可能也想看
Thumbnail
家中修繕或裝潢想要找各種小零件時,直接上網採買可以省去不少煩惱~看看Sylvia這回為了工地買了些什麼吧~
Thumbnail
家中修繕或裝潢想要找各種小零件時,直接上網採買可以省去不少煩惱~看看Sylvia這回為了工地買了些什麼吧~
Thumbnail
👜簡單生活,從整理包包開始!我的三款愛用包+隨身小物清單開箱,一起來看看我每天都帶些什麼吧🌿✨
Thumbnail
👜簡單生活,從整理包包開始!我的三款愛用包+隨身小物清單開箱,一起來看看我每天都帶些什麼吧🌿✨
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 129 中說,Bidirectional Encoder Representations from Transformers (BER
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 129 中說,Bidirectional Encoder Representations from Transformers (BER
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 總結一下目前有的素材: AI說書 - 從0開始 - 103:資料集載入 AI說書 - 從0開始 - 104:定義資料清洗的函數 AI說書 - 從0開始 - 105
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 總結一下目前有的素材: AI說書 - 從0開始 - 103:資料集載入 AI說書 - 從0開始 - 104:定義資料清洗的函數 AI說書 - 從0開始 - 105
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 目前我們已經有資料集在 AI說書 - 從0開始 - 103 ,必要的清理函數在 AI說書 - 從0開始 - 104 ,現在把它們湊在一起,如下: # load Eng
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 目前我們已經有資料集在 AI說書 - 從0開始 - 103 ,必要的清理函數在 AI說書 - 從0開始 - 104 ,現在把它們湊在一起,如下: # load Eng
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 如 AI說書 - 從0開始 - 78 所述,經過 AI說書 - 從0開始 - 74 到目前為止的實驗,應可以漸漸感受到 Transformer 模型如何從數學層面漸漸往
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 如 AI說書 - 從0開始 - 78 所述,經過 AI說書 - 從0開始 - 74 到目前為止的實驗,應可以漸漸感受到 Transformer 模型如何從數學層面漸漸往
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Transformers for Natural Language Processing and Computer Vision, 2024 這本書中講 Trainin
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Transformers for Natural Language Processing and Computer Vision, 2024 這本書中講 Trainin
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 先做個總回顧: Transformer 架構總覽:AI說書 - 從0開始 - 39 Attention 意圖說明:AI說書 - 從0開始 - 40 Transfo
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 先做個總回顧: Transformer 架構總覽:AI說書 - 從0開始 - 39 Attention 意圖說明:AI說書 - 從0開始 - 40 Transfo
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 目前我們已經完成: Single-Head Attention 數學說明:AI說書 - 從0開始 - 52 Multi-Head Attention 數學說明:
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 目前我們已經完成: Single-Head Attention 數學說明:AI說書 - 從0開始 - 52 Multi-Head Attention 數學說明:
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 目前我們已經完成: Single-Head Attention 數學說明:AI說書 - 從0開始 - 52 Multi-Head Attention 數學說明:AI
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 目前我們已經完成: Single-Head Attention 數學說明:AI說書 - 從0開始 - 52 Multi-Head Attention 數學說明:AI
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 目前我們已經完成: Single-Head Attention 數學說明:AI說書 - 從0開始 - 52 Multi-Head Attention 數學說明:AI
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 目前我們已經完成: Single-Head Attention 數學說明:AI說書 - 從0開始 - 52 Multi-Head Attention 數學說明:AI
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News