iT邦幫忙

2023 iThome 鐵人賽

DAY 4
0
AI & Data

戀 AI ing - 我與機器學習的邂逅系列 第 4

【Day 4】資料預處理 Data Preprocessing ( 一 )

  • 分享至 

  • xImage
  •  

前言

資料預處理 ( Data Preprocessing ) 指的是在進行機器學習或深度學習之前,對原始的資料進行處理或轉換的過程,是相當重要的流程,為了確保訓練模型時使用的資料品質、一致性與合適程度以提高模型性能與泛化能力,常見的預處理技術有:

資料清洗 Data Cleaning

資料清理是資料預處理過程的重要步驟,包括處理資料中的缺失值,異常值和重複值等,確保數據的準確性、完整性和一致性,下面是資料清理的常見方法:

  • 處理缺漏值 Missing Value:需要要檢查資料中是否存在缺漏值 ( NaN 或空值 ),這些缺之值可能會影響模型的訓練和預測,對於缺漏值,可以考慮用平均值、中位數、眾數來填充缺漏值,或使用插值等方法
  • 檢測異常值 Outlier:檢查數據中是否存在與其他資料點極度不相同的值,這些值可能會是資料本身錯誤或者極端狀況,對於異常值,可以考慮將其視為缺漏值,進行平滑處理,或是用其它合理的統計方法作處理
  • 檢查重複值:確認是否有重複的資料出現多次,可能會對分析造成偏誤,刪除重複的資料紀錄,可依照情況進行處理,像是合併重複紀錄的資訊
  • 資料格式不一致:確保資料中的文字、數值、日期等格式相同,避免混淆與計算上的偏差
  • 類別標籤不一致:如果類別型特徵的標籤不統一,需要進行正規化或合併

資料清洗是確保數據的基礎,它可以消除數據中的噪音,提高對資料的分析和模型的準確性與可靠性,適當的對資料做預處理可以提升模型的性能,模型的結果表現很大程度上也取決於輸入數據的質量。

資料平滑處理

資料平滑處理目的是在資料中移除或者是減少雜訊干擾 ( Noise ) 的過程,這樣就可以更好地觀察數據的流動趨勢,這個方法在處理有雜訊的數據時非常有用,可以幫助我們提取真實的數據特徵,假設你有一個每日銷售額的數據資料,但因某些外部因素 ( 人為失誤、機器故障 ),有某幾日的銷售額出現了極端的高值或低值,這些值可能不符合真實情況,這些極端值可能會影響你對銷售額趨勢的分析,此時就可用資料平滑處理方法來減少極端值帶來的影響,可利用移動平均的算法。

移動平均 Moving Average:移動平均是通過計算一個固定窗口大小內數據的平均值來平滑數據。例如:3 日的移動平均就是將每三天的數據值取平均,然後用該平均值替換原始數據。

依據移動平均的算法,

  1. 先將數據分成固定的窗口,每個窗口代表 3 日的數據
  2. 對於每個窗口,計算窗口內的平均值
  3. 最後算出的窗口平均值替換窗口中的原始數據

假設原始數據如下:

Day 1: 10
Day 2: 15
Day 3: 25
Day 4: 5
Day 5: 30

計算 3 日移動平均:

Day 1: (10) / 1 = 10
Day 2: (10 + 15) / 2 = 12.5
Day 3: (10 + 15 + 25) / 3 = 16.67
Day 4: (15 + 25 + 5) / 3 = 15
Day 5: (25 + 5 + 30) / 3 = 20

得到經過平滑處理後的數據,會發現到數據相較於原始的變得更加平穩平滑,替換了原先的極端值,使得數據序列的波動變得比較平滑,有助於更好地觀察數據的趨勢,不會被極端值所影響。這邊要注意的是,經平滑處理後的數據能減少原有的噪音,但同時也可能導致對於原始數據的某些細節丟失。

資料切割 Data Splitting

https://ithelp.ithome.com.tw/upload/images/20230919/20158157e30CN6lekC.png

資料切割是指將原始的資料集切割為多個子集的過程,好讓模型有這些資料能夠訓練 ( Training )、驗證 ( Validation ) 和測試 ( Testing ),最常見的切割方式會把資料集依照給定比率切分為訓練集(Training Set)測試集(Testing Set)

  • 切割成訓練資料和測試資料:訓練集和測試集之間需要切割明確,不可有訓練集參雜著測試資料的情況發生,這會使得模型的預測表現變得不可靠
  • 切割成訓練、驗證和測試集:在某些情況下,為了要提升改善模型在陌生資料上的泛化能力 ( Generalization ),通常會再切割出一個驗證集(Validation Set),讓模型在經測試集測試前能夠依據在驗證集上的表現調整參數和超參數,進而減少模型過度擬和 ( Overfitting ) 的情況發生。

小結

今天學到:

  • 資料清洗
  • 資料平滑處理
  • 資料切割

資料的預處理是機器學習中不可或缺的一個步驟,明天我們將介紹其它的資料處理手段,像是對資料進行正規化 ( Normalization ) 與標準化 ( Standardization ),那我們就下篇文章見 ~

參考資料

https://algotrading101.com/learn/train-test-split/


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

尚未有邦友留言

立即登入留言