MMSAI_2 Before Starting Your BDA執行流程

簡報:https://lms2020.nchu.edu.tw/media/doc/301268


AI 演算法分類

類型說明數學表示
降維概論從所有欄位中「找出」或「整合」出適合後續模型的欄位-
分類已知類別,辨識新資料點屬哪類-
分群將一群資料依照各種度量把相鄰的分一群-
迴歸已知一組輸入輸出,找出函數 f() 使 y = f(x)
時序分析已知時間序列,找出函數預測未來值
最佳化已知系統與可操縱變數,求使目標最佳的參數組合

建模的發展歷史

1980 年以前

  • 針對任務找到 IC 的物理意義,求得公式
  • 係數全部用手算出來
  • 需要數學與物理的專家

1980–2000(電腦時代)

  • 由材料專家確定公式結構
  • 利用最佳化方法(如基因演算法)求解未知係數 (a, b, c, d)

分支:用 NN 來做

  • 把 IC 變成 NN 模型(例如 AI)
  • 再透過訓練找出模型

2000–2015(資料科學概念興起)

  • 淺層 NN 發展
  • 資料科學方法論逐漸成形

LossFunction-vs-EvaluationMetric vs Evaluation Metric(重要)

項目Loss FunctionEvaluation Metric
用途訓練模型時優化評估模型好壞
時機訓練過程中訓練完成後
例子MSEMAPE、MAE、Regression評估指標-MAE-MSE-RMSE-MAPE

⚠️ 核心警告:兩者不一致會出問題

情境:用 MSE 訓練人流預測模型,但評估用 MAPE

MSEMAPE
看「誤差平方」看「相對比例」
對大數值敏感對小數值敏感

→ 兩個優化方向不同!Loss 很低,但 MAPE 很差。

正確做法

  1. 選對 Loss:讓 loss 與 metric 接近(要 MAPE → 考慮 MAE 或自定 loss)
  2. 多指標觀察:訓練用 MSE,評估用 MAE + RMSE + MAPE
  3. Custom Loss(進階):自己設計 loss function

一句話總結:Loss function 用於模型訓練優化,而 evaluation metric 用於模型評估,兩者不一致時可能導致模型表現不符合實際需求。


時間序列「質化驗證」

核心概念

質化驗證 = 用「觀察」去判斷模型好不好,不是只看數值指標(MAE/MSE)

  • 藍線:真實值
  • 紅線:模型預測

觀察重點

  • 大部分區域:預測 ≈ 真實 → OK,模型抓到整體趨勢
  • 特殊區域(尖峰/異常/特例):模型沒跟上,預測偏差大

⚠️ 重要觀念

誤差變大 ≠ 模型不好

原因:

  1. 訓練資料沒出現過這種情況
  2. 模型只學到「一般趨勢」
  3. 無法預測突發事件

質化 vs 量化

類型方法重點
質化驗證看圖趨勢、形狀
量化驗證算指標MAE / MSE / RMSE

實務應對

  1. 補特例資料:讓模型看過這種情境
  2. 加入特徵:節日 / 活動 / 外部因素
  3. 分情境建模:一般情況 vs 特殊事件

一句話總結時間序列質化驗證是透過觀察預測與真實曲線的趨勢與形狀,判斷模型是否合理,並分析誤差來源,而非僅依賴數值指標。


時序預測的三大陷阱

陷阱 1:你以為的時間序列真的是時間序列嗎?

討論4:用宿舍前兩個小時去上廁所的人數估計下一個小時上廁所的人數

重點1:要確保前面時間點跟後面時間點有相關性


陷阱 2:不是所有時序都可以預測

討論5:由前兩天氣溫預測未來一天醫院的備品

  • 備品消耗量 → 可以做預測(氣溫影響消耗)
  • 備品存量 → 無法預測(跟人送來的時間有關,有外來因子)

討論10:股價預測 → 無法,有很多外來因素

重點2:不能有外來的因子影響


陷阱 3:人類行為不一定每次都能分析

討論6:用入園人數+天氣+是否放假預測迪士尼入園人數 → ✅ 可以預測(基數夠大)

討論7:用入園人數+天氣+是否放假預測到小明家人數 → ❌ 無法(基數太小)

重點3:基數量要夠大


補充討論

太陽能發電量能直接用時間序列預測嗎?

不行 原因:目前發電量跟太陽強度與烏雲有關,與前時間點發電量無關,不是時序問題。

改進方式:

  1. 先用 CNNLSTM-GRU 預測下一時段衛星雲圖
  2. 從預測後的雲圖換算發電量

資料類型(Data Types)

資料類型特性例子對應方法
離散資料一筆一筆獨立,彼此分開性別、顧客ID、訂單數分類、統計
連續資料固定時間間隔,有時間順序每日溫度、股票價格時間序列分析
時空資料同時包含時間 + 空間天氣、空氣品質、交通流量GIS / 時空模型
文字資料無固定格式,非結構化評論、新聞、醫療紀錄NLP
圖形資料高維度(像素)醫療影像、衛星圖CNN / CV

一句話總結:資料類型決定分析方法,不同型態的資料需採用不同的處理與建模技術。


資料類型對應模型

資料類型常用模型
離散資料DNN
時序資料RNN / LSTM
圖像資料CNN(YOLO)
文字資料BERT

AutoEncoder(重點)

基本結構

Input → Encoder → Latent Space → Decoder → Output

目標:讓輸出 ≈ 輸入,自動學習資料的「特徵表示」

關鍵特性

  • 無監督學習,不需要 label
  • 中間「瓶頸」= 壓縮後的特徵(latent representation)

AutoEncoder vs One-hot [[遺傳演算法-GA-Encoding]]

方法特性
One-hot人工標籤,明確類別
AutoEncoder自動學特徵,不需標籤也能區分

AutoEncoder 的用途

  1. 特徵萃取(Feature Extraction):取代手動設計特徵
  2. 降維(Dimensionality Reduction):類似 PCA-vs-LDA,但更強
  3. 異常偵測(Anomaly Detection):重建誤差大 = 異常
  4. 分群(Clustering):latent space 會自然分群

與其他模型的關係

資料 → AutoEncoder → Feature → CNN / DNN / LSTM / GAN → 預測

重要觀念:Feature 比 Model 更重要,AutoEncoder 就是在做 Feature Learning

一句話總結:AutoEncoder 是一種無監督學習模型,透過重建輸入資料來學習其潛在特徵,可用於降維、特徵萃取與異常偵測,並可作為其他模型的輸入。


回歸與時序的實驗設計

重複次數(核心觀念)

  • 實驗需要重複約 30 次才有意義
  • 多次取平均才可信(統計穩定性)

對照組設計

  • 需要有實驗組(我們的方法)和對照組(baseline)
  • 兩組都跑 30 次,再做比較
  • 有對照才能說「我們的方法比較好」

結果判斷

  • 兩組分布無交集 → 差異顯著,方法有效
  • 兩組分布高度重疊 → 差異不顯著

訊號處理重點

一、時域 vs 頻域

類型軸向說明
時域(Time Domain)振幅 vs Time訊號隨時間變化
頻域(Frequency Domain)振幅 vs Frequency訊號由哪些頻率組成

轉換方法:Fourier Transform(傅立葉轉換)

二、模型選擇

訊號成分模型
高頻震盪DNN
低頻/平滑DNN
時序趨勢LSTM
雜訊不建模

三、時序分解流程

時域訊號 → Fourier 轉頻域 → 分析頻率組成
→ 分解(Trend / Seasonality / Residual)
→ 不同成分用不同模型(DNN / LSTM)

一句話總結:訊號先轉頻域分析,再分解成不同成分,最後用適合的模型處理。


連續訊號 → 時頻圖(訊號處理與Spectrogram

核心概念

連續訊號 → 轉成圖片(時頻圖)

  • X 軸:Time
  • Y 軸:Frequency
  • 顏色/強度:振幅(能量)

轉換方式:STFT(短時傅立葉轉換)

  1. 將「時間序列」切成小段(windowing)
  2. 每段做頻域分析
  3. 結果:時間 × 頻率的 2D 表示(圖片)

為什麼轉圖片?

把時間序列問題 → 轉成電腦視覺問題

  • 可以用 CNN 做分類(pattern recognition)
  • 可以用 YOLO 找出特定時間區段(事件偵測)

流程(考試會考)

原始訊號 → 分段(windowing) → STFT → spectrogram(圖片) → CNN/YOLO → 分類或事件偵測

一句話總結:把時間序列轉成時頻圖,讓 CNN / YOLO 用影像方式抓訊號特徵。


CNN 的限制與改進

研究流程(老師強調)

  1. 先看別人怎麼做
  2. 找問題(限制)
  3. 提出改進方法(你的貢獻)

CNN 的核心問題

1. Convolution 限制

  • Kernel size 固定,只能抓固定大小的 pattern
  • 無法適應不同尺寸物體或不同尺度特徵

2. 空間理解問題

  • CNN 擅長局部特徵(local pattern)
  • 不擅長全局關係(global structure)
  • 問題:地圖/網格資料中每個位置語意不同,但 CNN 用同一組 filter 處理

3. 任務混在一起

  • 一張圖中有多個不同區域任務
  • CNN 同一個 filter 做同一件事 → 不適合 multi-task / heterogeneous data

CNN 假設 vs 現實

CNN 假設現實
平移不變性不同位置 = 不同語意
局部感受野不同區塊 = 不同任務

改進方向

  1. 1×1 Convolution:做 feature transformation,增加 channel 學習能力
  2. 區域拆分(Spatial Partition):把圖切成多區塊,每個區塊做不同任務
  3. 多尺度處理:使用不同大小的 receptive field

核心一句話:CNN 最大問題是用同一組 filter 處理所有位置,但不同位置其實是不同任務。


降維(Dimensionality Reduction)

為什麼需要做降維?

大數據分析在產業中的定位希望收集所有有用資料,但資料欄位太多會造成:

  1. 太多無用欄位,影響建模準確度
  2. 欄位有用但太多雜訊,影響建模準確度
  3. 欄位只部分有用,其他無用部分影響準確度
  4. 提供同樣資訊的欄位太多 → overfitting

降維的目標

  1. 去除無用的欄位,只保留有用的欄位
  2. 去除欄位中的雜訊
  3. 讓資料集內的資料越分開越好

兩種作法

Feature GA-Step4-Selection

  • 原本:a, b, c, d, e → 新:a, b, c
  • 直接挑選原始欄位,捨棄無用欄位

Feature Extraction

  • 原本:a, b, c, d, e → 新:
  • 把原始欄位線性組合成新特徵

建模準確度比較

作法說明
Feature Selection選出有用欄位
Feature Extraction以較少的輸入取得更好的建模結果

應用層面

作法適用場景
Feature Selection硬體(降低 Cost)
Feature Extraction軟體、雲端、Deep-Learning參數設計 前幾層(取資料 → 降維 → 建模)

常用演算法

  • PCA:對任何資料都通用
  • LDA:分類專用
  • t-SNE:視覺化降維首選

降維效能的評估

量化(用數字評估)

  1. 既有指標
  2. 用降維結果去做分類或建模,看效果如何

質化(用現象/案例讓專家決定)

  1. 挑正常與極端的案例,判斷降維後兩者是否能分開
  2. 質化討論目標:
    • 大部分好
    • 少部分差(解釋原因):資料本身的問題(包含模型沒考慮的特殊狀況)→ 承認模型限制,列為未來工作目標

補充:資料科學常見手段

如何把未知族群分成多群並探討各群原因?

機器學習實現方式:

  1. 分群演算法:如 k-means
  2. 隨機森林:做可解釋 AI

分類(Classification)與 分類與ConfusionMatrix

⚠️ 必考重點:要取 Confusion Matrix 哪個數值作為結果是需要討論的!

Confusion Matrix 範例

以辨識四個科系(工管、設計、電機、應外)為例:

工管(真實)設計(真實)電機(真實)應外(真實)
工管(預測)21 / 21.0%1 / 1.0%0 / 0.0%1 / 1.0%
設計(預測)2 / 2.0%20 / 20.0%1 / 1.0%0 / 0.0%
電機(預測)0 / 0.0%0 / 0.0%29 / 29.0%0 / 0.0%
應外(預測)2 / 2.0%0 / 0.0%0 / 0.0%29 / 29.0%

整體準確率:93%

三個討論問題

討論問題對應指標
討論1如果是要判斷辨識能力?整體 Accuracy
討論2如果是要判斷工管系學生被辨識出的容易程度?Recall(召回率)
討論3一個學生被說是電機學生,一定是對的嗎?Precision(精確率)

核心觀念:Accuracy、Precision、Recall 各有適用場景,不能單看一個數字!

⚠️ 陷阱:總辨識率不一定是最好

在訓練分類模型時,不是總辨識率最高就好!

情境:兩種快篩試紙的癌症辨識結果,哪種比較好?

試紙 A(總辨識率 75%)

試紙呈現 \ 真實狀況有癌症沒有癌症辨識率
有癌症1005067%
沒有癌症050100%
辨識率100%50%75%

試紙 B(總辨識率 95%)

試紙呈現 \ 真實狀況有癌症沒有癌症辨識率
有癌症900100%
沒有癌症1010091%
辨識率90%100%95%

分析比較

指標試紙 A試紙 B
總辨識率75%95%
癌症 Recall(有癌症被抓出來的比例)100%90%
偽陰性(漏診癌症人數)0 人10 人
偽陽性(誤診為有癌症)50 人0 人

結論

  • 試紙 A:不漏診任何癌症(Recall 100%),但誤判率高(50 人被誤診),總辨識率低
  • 試紙 B:總辨識率高(95%),偽陽性為 0,但有 10 例癌症被漏診

關鍵觀念:要選哪個指標,取決於「哪種錯誤的代價更高」

  • 癌症篩檢 → 漏診代價遠大於誤診 → 優先看 Recall(召回率)
  • 不同場景要選不同指標,不能只看 Accuracy!

📊 Regression 評估指標(MAE / MSE / RMSE / MAPE)

評估指標說明

指標公式特性
MAE(平均絕對誤差)Σ |error| / n不放大大誤差
MSE(均方誤差)Σ (error²) / n放大大誤差,outlier 敏感
RMSE(均方根誤差)√(Σ error² / n)單位與原始資料相同,常用
MAPE(平均絕對百分比誤差)Σ (|error / y|) × 100%看相對誤差,對數值大小敏感

四個模型比較

模型1(完美預測):誤差總和 = 0

模型2:誤差總和 = 0

模型3(有偏差):有規律性正負誤差,平均誤差 ≈ 0.8

模型4(有 outlier):x=5 時誤差達 -4,明顯 outlier

重點比較:MAE/MSE/RMSE 相同,MAPE 差很多

例1:誤差固定 +100,但 y 值小(100~500)

  • MAE / MSE / RMSE:一樣
  • MAPE:❌ 很大(高達 100%)

例2:誤差固定 +100,但 y 值大(10000~50000)

  • MAE / MSE / RMSE:一樣
  • MAPE:✅ 很小(約 1%)

核心結論(老師重點)

MAE / MSE / RMSE 看「絕對誤差」,不考慮數值大小比例

MAPE 看「相對誤差」,對數值 scale 非常敏感

⚠️ 所以:MAPE 不能單獨使用,必須考慮資料的 scale!


分群(Clustering)

分群與輪廓係數(Silhouette Coefficient)

分群的目標:

  • 內部距離最小化:同一群內的點要越近越好
  • 外部距離最大化:不同群之間的點要越遠越好

輪廓係數就是量化這兩個目標的指標。

如何決定最佳分群數量?——手肘法(Elbow Method)

當分群數量還沒有明確答案時,透過「輪廓係數 vs 分群數量」的圖來找最佳解:

  • X 軸:分群數量
  • Y 軸:輪廓係數(KPI)
  • 曲線通常先快速下降,再趨於平緩
  • 肘點(Elbow Point)= 最佳解:KPI 改善幅度開始變小的轉折點

核心觀念:Trade-off 效能 v.s. 成本

  • 分群數量越多 → 建模成本越高
  • 分群之後會建模,分群數量越多,後續建模成本增加
  • 肘點是「相對好的效能 + 合理成本」的平衡點

分類與分群的質化評估方式

問題類型質化評估方式
分類挑正常與極端案例討論即可
分群想辦法證明同一群內的資料類似(case by case)