iT邦幫忙

2023 iThome 鐵人賽

DAY 2
0

前言

在上篇文章,我們提到到了在機器學習中模型學習的方式,今天就要來探討機器學習這個「學習」的過程,以及模型如何去進行「訓練」,而這當其實就是一連串的流程,也稱為機器學習的生命週期 ( Life Cycle ),其主要分成 7 個步驟。

https://ithelp.ithome.com.tw/upload/images/20230917/20158157c9P3mvFxw7.png

機器學習之生命週期

整個生命週期主要會進行 7 個階段,如下:

  • 資料採集 Gathering Data
  • 資料準備 Data Preparation
  • 資料整頓 Data Wrangling
  • 分析資料 Analyse Data
  • 訓練模型 Train the model
  • 測試模型 Test the model
  • 佈署 Deployment

Step 1. 資料採集 ( Gathering Data )

在這個步驟主要就是進行下面三個部分:

  • 確認資料的來源 ( Sources )
  • 收集資料 ( Collection )
  • 整合收集到來自不同來源的資料 ( Integration )

像是若要模型能夠分辨出各種動物,就需準備很多種動物的圖片,若要能夠做出疾病的預測,就會需要醫療儀器等來幫助我們獲取人體的各種資訊,像是血壓、脈搏、血糖等當作訓練模型的資料,資料採集的來源可以有很多種,可以是從網路上、資料庫或是行動裝置等地方獲取,所以我們開始收集資料前,應該要先了解問題的種類和需求,還有清楚你最終的目標為何 ( EX : 辨識貓狗 ),在根據這個目標去進行資料採集,並確認要收集哪些資料才能滿足目標的需求,而我們統稱這些收集到的資料為資料集 ( Dataset )。

Step 2. 資料準備 ( Data Preparation )

在收集到資料後,我們要為之後的步驟做準備,而資料準備的步驟通常會針對下面兩個部分進行:

  • 資料探索 ( Data Exploration ):對於我們收集到的資料,先去了解它的特性和資料型態 ( Format ),和資料的品質 ( Quality )
  • 資料預處理 ( Data Preprocessing ):與下個步驟搭配進行完成資料預處理的進行,針對資料做一些前置處理的動作,處理掉資料的殘缺值或是對模型造成負面影響的資料

Step 3. 資料整頓 ( Data Wrangling )

這個步驟是為了能夠確保收集到的資料是可用的 ( Useable )、乾淨的和殘缺值的清理,資料中的殘缺值或者所謂的資料噪音 ( Noise ) 都會降低模型的效能表現,而資料準備的主要的任務有:

  • 資料清洗:查檢資料中的缺漏值 ( Missing Value )、異常值 ( Outlier )、重複值、資料格式不一致、標籤不一致,對於這些資料中的噪音做出適當的處置。
  • 資料轉換:因為輸入到模型中的資料格式都需要為數值,所以當面對到資料不為數值型態時,就必須做資料轉換,假設資料中若有欄位為性別,那資料就會為 ” 男 “ 或 “ 女 “,對模型來說這樣的資料並不是數值,所以需要資料轉換,通常會將此視為類別變數並進行資料編碼的動作,常見的有標籤編碼 ( Label Encoding ) 和獨熱編碼 ( One-Hot Encoding ) 技術,通常也會涉及到正規化與標準化的技術,關於這些技術會在之後幾天介紹到
  • 特徵選取:通常收集到的資料對於不同的特徵,通常會分成許多的特徵欄位,而我們可以對這些特徵進行挑選,丟棄不重要的特徵並保留下重要的特徵即可
  • 資料切割:在做機器學習時,針對收集到的資料集通常會在將其切分為訓練集 ( Training Set )、驗證集 ( Validation Set ) 與測試集 ( Testing Set )

Step 4. 分析資料 ( Analyse Data )

進行到這個步驟的時候,經過前面幾個步驟,我們已有乾淨的資料可以用,分析資料主要會進行下面幾個部分:

  • 設計搭建模型:我們可以用拿到資料性質與當初的目標,去決定要使用哪種模型,通常會根據問題的類型來選擇,例如分類或是回歸問題的模型,搭建好後就可將我們準備好的資料輸入進模型
  • 審查模型:在我們把資料傳入模型後,會對模型最終的輸出進行結果評估,看有沒有和預期相去甚遠

Step 5. 訓練模型 ( Train Model )

上個步驟我們已經可以得到乾淨的資料集,並且讓模型輸出一個結果,在這個訓練模型的步驟中,我們通常會利用這個資料集當中的訓練集作為訓練資料,訓練資料顧名思義就是訓練時模型所用的資料,然後我們通過一次次的迭代訓練,模型會根據訓練資料不斷地去改善其輸出的表現,我們會先設定一個迭代次數讓模型去訓練,在每次的迭代中通常會用一些算法,例如梯度下降 ( Gradient Descent ),讓模型能在不斷迭代的過程中更新模型參數 ( Parameter ) 以改善模型效能,所謂的訓練模型,就是模型不斷改進增強效能的過程。

Step 6. 測試模型 ( Test Model )

剛才我們用整個資料集中的訓練集去訓練模型,在這個步驟中,就會用資料集中的驗證集去測試模型在每次迭代 ( 訓練 ) 的效能表現,如果效能不佳的話就可藉此去調整模型參數改善,最後整個訓練過程結束後,就會用資料集中的測試資料來做最終的測試,在測試資料上的表現會體現出模型最終的效能與泛化能力,就可藉此來評估模型的好壞。

Step 7. 佈署 ( Deployment )

在這步驟就是要對模型做所謂的佈署,就是將經過訓練和測試評估後的模型應用到實際的生產環境中,所謂實際生產環境它可以是一個交互的平台,像是若你在電商平台中,用你訓練好的模型做一個 AI 服務,就要讓這個模型可以被佈署成 API,網站開發人員就可直接透過 API 使用到這個模型的功能,並將其併入到應用程式中,在後面的文章中我將會展示如何把訓練好的模型佈署在以 Django 為後端的網頁上。

小結

以上就是機器學習大致上會經過的流程,從一開始資料的準備,到訓練模型、評估模型效能、最後再佈署模型,這就是機器學習典型的生命週期,資料的採集、準備、整頓是做好機器學習的基石,所以在明天我將會針對資料處理的部分做介紹,會用到 Python 的資料處理分析大神 - Pandas,那我們就下篇文章見 ~

參考資料

https://www.javatpoint.com/machine-learning-life-cycle


上一篇
【Day 1】機器學習,啟動 !
下一篇
【Day 3】Pandas 資料預處理
系列文
戀 AI ing - 我與機器學習的邂逅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言