【技術分享】資料科學初學者建模易犯的錯誤盤點
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 (同步)
喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!
- 来自作者
- 相关推荐