5.2 GRU Classification
時間序列不只可以預測下一個數值,也可以拿來分類。例如判斷設備運轉型態、使用者行為片段、感測器狀態或心電圖片段。本篇使用 GRU 建立三類序列分類模型,示範從序列資料到分類報告的完整流程。
1. 學習目標
本篇聚焦 sequence classification。每筆資料不是一列表格,而是一段固定長度的序列;模型要根據整段序列判斷它屬於哪一類。GRU 和 LSTM 類似,能處理時間前後關係,但參數較少,訓練速度通常也比較快。
2. 範例資料
Notebook 會產生三種序列型態:
- increasing:整體往上移動。
- periodic:週期震盪。
- spike:中間出現尖峰。
每筆輸入 shape 為 (timesteps, features),整批資料 shape 為 (samples, timesteps, features),標籤則是三類整數。
3. 為什麼使用 GRU?
GRU 適合用在需要時間順序資訊,但又不想使用太大模型的情境。它能保留前面時間點的狀態,對趨勢、週期或事件片段都有基本建模能力。
4. 實作流程
Notebook 會建立合成序列資料,依 train/validation/test 切分後,只用訓練集統計量標準化。接著建立 GRU 分類模型,用 sparse_categorical_crossentropy 訓練,最後用 accuracy、confusion matrix 與 classification report 評估。
5. 如何套用自己的資料?
換成自己的資料時,先把每個樣本整理成固定長度片段。例如每 60 秒感測器資料是一筆樣本,或每 100 個時間點是一筆行為片段。若原始序列長度不同,可使用 padding、裁切或滑動視窗。分類任務的最後一層神經元數量等於類別數。
6. 小結
GRU classification 適合建立時間序列分類 baseline。只要能把資料整理成 (samples, timesteps, features),就能沿用本篇流程到設備狀態、行為模式、訊號片段或其他序列分類任務。