【技術分享】資料科學初學者建模易犯的錯誤盤點

JY的興趣行李箱
·
·
IPFS
·

並非每次我們接觸到的資料,針對每一個預測標的,都有獨立、整理好的特徵值;尤其是在面對時間序列資料時,我們也希望捕捉預測標的,隨時間變化的特徵變化規律。本篇整理時間序列建模時,注意的重點:

(I) Scale-transformation

發生情境:
屬性之間的值域差異大,例如:有的欄位是 boolean (0, 1)、有的欄位是金額量 (ex: 0 ~ 10^8)。

如果不將多個屬性的數值 scale 到差不多的範圍,Loss 在收斂時會受到那些量級較大的屬性影響,可能無法輕鬆地往下尋找 global minimal;因為量級大的屬性,權重每更新一次所改變的量更大、量級小的屬性對權重的影響被縮小,本來 loss 可以順利下降的地方,因為快速變動的權重導致 overfit 情形。

解法:進行 Scaling

常見 Scaling Methods:
1. Standardization
2. MinMax Scaling
3. Robust Normalization

import numpy as np
from sklearn.preprocessing import StandardScaler, MinMaxScaler, RobustScaler
X = np.random.randint(5, size=(100, 5))
ss = StandardScaler()
ss.fit(X)
standard_X = ss.transform(X)
ms = MinMaxScaler()
ms.fit(X)
minmax_X = ms.transform(X)
rs = RobustScaler()
rs.fit(X)
robust_X = rs.transform(X)

(II) Padding

發生情境:
每一個預測標的在資料集中的時間序列長度不同。

解法:
1. 補齊到一樣長度
2. 把長度相近的一起 train:batch_size設定為那一群長度相近的個數
  缺點:速度慢、 等於 train 多個 LSTM

(III) Input Format

發生情境:
資料的維度和長度,要搭配對的模型參數

One-to-many

Many-to-one

Many-to-many

Many-to-many (同步)

CC BY-NC-ND 2.0 授权

喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!

JY的興趣行李箱一個數據分析師的個人興趣分享,走到哪寫到哪 可能是程式技能分享、綜藝點評、舞台/歌曲/樂曲/電影收藏、書摘、產業觀察等
  • 来自作者
  • 相关推荐

Git 協作不可不知的重要指令

【Python】複製一份 conda 環境的各種方式

【資料分析】認識統計顯著性|A/B Testing 觀測數值增減多少才是顯著有效?