π― νλ‘μ νΈμ μ 체 λͺ©μ μ?
λ°°ν°λ¦¬ ν© νμ§ μ΄μ κ°μ§
β λΉμ μμ μΈ μ μ/μ¨λ ν¨ν΄μ λ¨Έμ λ¬λμΌλ‘ νμ§νκΈ° μν λΉμ§λ μ΄μ νμ§ λͺ¨λΈμ ꡬμΆνλ κ²μ΄ λͺ©ν.
- λ°μ΄ν°: λ°°ν°λ¦¬ μ
μ μ μ(MxxCVxx), μ¨λ(MxxTxx), νκ· μ¨λ(Tavg) λ± μΌμ κ° μκ³μ΄
- λΌλ²¨ μμ β μ§μ βμ μ/λΉμ μβμ λΆλ₯ν μ μμ β GAN κΈ°λ° λΉμ§λ νμ΅ μ¬μ©
π€― λ΄κ° μ§κΈ λ νκ³ μλ κ±ΈκΉ?
π ν μ€ μμ½
λΉμ μ λ°°ν°λ¦¬ λμμ μλμΌλ‘ νμ§νλ μΈκ³΅μ§λ₯μ λ§λλ μ€.
νΉν, βμ μ vs λΉμ μβ λΌλ²¨μ΄ μκΈ° λλ¬Έμ GAN κΈ°λ° λΉμ§λ νμ΅μ νμ©νκ³ μμ.
μ§κΈ λ°°ν°λ¦¬ μ
μ μ/μ¨λ λ°μ΄ν°λ₯Ό κΈ°λ°μΌλ‘ μ΄μ μ§ν(λΆλ κ°λ₯μ±)λ₯Ό μ‘°κΈ° νμ§νλ λͺ¨λΈμ νμ΅ μ€
- νλ ¨ λ°μ΄ν° (
1000_chg.csv
): μ μ λ°μ΄ν°λ₯Ό κΈ°λ°μΌλ‘ νμ΅ν¨
- λͺ©ν: ν
μ€νΈ λ°μ΄ν°μ λν΄ μ¬κ΅¬μ± μ€λ₯(Reconstruction Error)κ° λμΌλ©΄ β μ΄μμΌλ‘ νλ¨
- μ¦, "μ μλ§ νμ΅ν λͺ¨λΈμ΄ λΉμ μμ λν΄ μ΄μλ°μμ 보μ΄κ² ν¨" μ΄κ² ν΅μ¬ μ
π μ μ€μνκ°?
- λ°°ν°λ¦¬ ν© νμ§μ μ κΈ°μ°¨/ESS λ± μμ μ μ§κ²°λλ ν΅μ¬ μμ
- μ¬λμ΄ λͺ¨λ μΌμλ₯Ό μΌμΌμ΄ κ°μνλ 건 λΆκ°λ₯ β AIλ‘ μλ κ°μ§
- νΉν λΌλ²¨ μλ λΉμ μ νμ§λ νμ€μ μΌλ‘ λ§€μ° νν¨ β μ€λ¬΄ μ μ©μ± λμ
1. λ°μ΄ν° λ‘λ© λ° μ μ²λ¦¬
β
1. PCA μ°¨μ μΆμ
- μ
λ ₯ λ°μ΄ν°μ κ³ μ°¨μ(208κ° feature)μ
PCA
λ₯Ό ν΅ν΄ 3κ° μ°¨μμΌλ‘ μΆμ
pca_1
, pca_2
, pca_3
μ΄λΌλ 컬λΌμΌλ‘ ꡬμ±λ df
λ₯Ό μμ±
PCA(n_components=3)
β df: ['pca_1', 'pca_2', 'pca_3']
- μ?: λ°μ΄ν° μ°¨μμ΄ λ무 λμΌλ©΄ νμ΅μ΄ μ΄λ ΅κ³ , μ‘μμ΄ λ§μμ Έ μ΄μ νμ§λ λΆμ νν΄μ§.
- μ΄λ»κ²?:
1000_chg.csv
νμΌμ λΆλ¬μμ 208κ°μ μΌμ λ°μ΄ν°λ₯Ό 3κ°μ μ£Όμ μ±λΆ(pca_1, pca_2, pca_3)μΌλ‘ μΆμ.
- κ²°κ³Ό μλ―Έ: κ°μ₯ λ§μ λ³λμ±μ μ€λͺ
νλ 3κ°μ μΆμΌλ‘ λ°μ΄ν°λ₯Ό μ¬κ΅¬μ±ν κ². μ΄κ±Έ κΈ°λ°μΌλ‘ λͺ¨λΈμ΄ "μ μ vs μ΄μ"μ λ μ ꡬλΆν μ μμ.
1. PCA μ°¨μ μΆμ
π λͺ©μ :
- 200κ°κ° λλ μΌμ λ°μ΄ν°λ₯Ό 3μ°¨μμΌλ‘ μμΆν΄ μκ°νμ νμ΅ κ°λ₯μ± ν보
- λΆνμν μ‘μ μ κ±°, μλ―Έ μλ ν¨ν΄ μΆμΆ
βοΈ μμ
λ΄μ©:
PCA(n_components=3)
λ‘ μ°¨μ μΆμ
- κ²°κ³Ό:
pca_1
, pca_2
, pca_3
π κ²°κ³Ό ν΄μ:
- κ° principal componentλ μ¬λ¬ μΌμ κ°μ κ²°ν©λ λ³ν ν¨ν΄μ λν
- 3D 곡κ°μ μκ³μ΄μ λ§€ννλ©΄, λ°μ΄ν°μ ꡬ쑰μ ν¨ν΄μ΄ λ λλ ·νκ² λλ¬λ¨
β
2. μκ° κ΅¬κ° μ§κ³ (Time Aggregation)
date
λ₯Ό κΈ°μ€μΌλ‘ μ§μ ν interval
λ¨μλ‘ μ§κ³
- μ§κ³ λ°©μμ κΈ°λ³Έμ μΌλ‘
mean
νκ· κ° μ¬μ©
X, index = time_segments_aggregate(...)
Time Segment Aggregation
2. μκ° λ¨μλ‘ μ§κ³ (Aggregation)
π λͺ©μ :
- μκ³μ΄ λ°μ΄ν°λ₯Ό μΌμ μκ° λ¨μλ‘ νκ· κ° μ§κ³ β λ°μ΄ν° λΆλλ½κ² λ§λ€κΈ°
βοΈ μμ
λ΄μ©:
time_segments_aggregate
μ¬μ©
- νκ· κ° μ§κ³λ‘ μν κ° λ
Έμ΄μ¦ κ°μ
β
3. μ κ·ν
SimpleImputer
λ‘ κ²°μΈ‘κ° μ±μ°κ³
MinMaxScaler
λ‘ [-1, 1] λ²μλ‘ μ€μΌμΌλ§
X = MinMaxScaler(feature_range=(-1, 1)).fit_transform(X)
β
4. μλμ° μνμ€ μμ±
- μκ³μ΄ λ°μ΄ν°λ₯Ό κ³ μ λ μλμ° κΈΈμ΄(
win_size=10
)λ‘ λλμ΄ νμ΅ κ°λ₯ν input μνμ€λ‘ λ³ν
X, y = rolling_window_sequences(X, ...)
β X.shape = (5999, 10, 3) # [batch, timesteps, features]
β y.shape = (5999, 1) # λ€μ μμ μ
3.4. μ κ·ν λ° μλμ° μνμ€ κ΅¬μ±
π λͺ©μ :
- λ₯λ¬λ νμ΅μ μν΄ μ
λ ₯ λ°μ΄ν°λ₯Ό μ κ·ννκ³ , μκ³μ΄μ κ³ μ λ κΈΈμ΄λ‘ λΆν
βοΈ μμ
λ΄μ©:
MinMaxScaler
λ‘ [-1, 1] μ κ·ν
rolling_window_sequences
λ‘ μκ³μ΄μ [win_size, features]
ννλ‘ μ¬λΌμ΄λ© μλμ° μμ±
π Min-Max Scaling
π Rolling Window μνμ€ μμ±