30.1 Feature Engineering - yojulab/learn_MLs GitHub Wiki
- ํน์ฑ ๊ณตํ ๊ธฐ๋ฒ : ์ปดํจํฐ๊ฐ ํ์ต์ ์ํ ํ ๋, ์ผ๋ฐํ ๋ ์์์ด ์ ์ ํ๊ฒ ๋์ถ์ด ๋ ์ ์๋๋ก ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฌ๋ ๊ธฐ๋ฒ
- Imputation (๊ฒฐ์ธก๊ฐ ์ฒ๋ฆฌ)
- Scaling & Encoding
- Cross Validation
- Hyper Parameter Tuning
- Imbalanced Data Sampling
ํญ๋ชฉ๋ณ ์ค๋ช
- Imputation (๊ฒฐ์ธก๊ฐ ์ฒ๋ฆฌ)
- ๊ฒฐ์ธก๊ฐ์ ๋ค๋ฅธ ๊ฐ์ผ๋ก ๋์นํ์ฌ ๋ฐ์ดํฐ์ ๊ณต๋ฐฑ ์์ด ํ์ต์ ์ํ
- ์ ๊ฑฐ : ๊ฒฐ์ธก๊ฐ์ด ์๋ ๋ชจ๋ ํ ์ ๊ฑฐ (DataFrame.dropna() )
- ๋์น
- ์ฐ์ํ -> ํ๊ท (์ค์๊ฐ) / ๋ฒ์ฃผํ -> ์ต๋น๊ฐ
- ๋จธ์ ๋ฌ๋ ์๊ณ ๋ฆฌ์ฆ ์ด์ฉํ ๋์น(KNN)
- ๋ณด๊ฐ๋ฒ (DataFrame.interpolate( )) : ์๊ณ์ด ๋ฐ์ดํฐ์ธ ๊ฒฝ์ฐ
ex)
์ด๋ฆ | ํค | ๋ชธ๋ฌด๊ฒ | ๋์ด | ์ฑ๋ณ |
---|---|---|---|---|
John | 180cm | 80kg | 30์ธ | ๋จ์ฑ |
Kate | 165cm | 25์ธ | ์ฌ์ฑ | |
Mike | 175cm | 70kg | 35์ธ | ๋จ์ฑ |
Jane | 50kg | 28์ธ | ์ฌ์ฑ |
- Scaling & Encoding
- Scaling : ์ฐ์ํ ๋ฐ์ดํฐ์ Scale ๋ง์ถฐ์ฃผ๋ ์์
Ex) ๊ณ์ฝ๊ธฐ๊ฐ 12~60 / ๋น์ฉ 10,000,000 ~ 100,000,000 / ์ฐ๋ น 20 ~ 80
- Standard Scaler : ๋ชจ๋ ์ซ์ ๋ฐ์ดํฐ๋ฅผ ํ๊ท 0 / ํ์คํธ์ฐจ 1
- Min Max Scaler : ๋ชจ๋ ์ซ์ ๋ฐ์ดํฐ๋ฅผ ์ต์๊ฐ์ด 0/ ์ต๋๊ฐ 1
- Robust Scaler : ๋ชจ๋ ์ซ์ ๋ฐ์ดํฐ๋ฅผ ์ค์๊ฐ 0/ IQR(Inter Quantile Range) 1
- Encoding : ๋ฒ์ฃผํ ๋ฐ์ดํฐ๋ฅผ ์ฐ์ํ ์ซ์ ๋ฐ์ดํฐ๋ก ๋ณํ
- Label Encoding : ๋ฒ์ฃผํ ๋ฐ์ดํฐ์ ๊ฐ ํญ๋ชฉ์ ์ ์๋ก ๋ณํ
- One Hot Encoding : ํญ๋ชฉ๋งํผ ๋ฒกํฐํ
-
CrossValidation (๊ต์ฐจ ๊ฒ์ฆ) : ๋ชจ๋ ํ์ต๋ฐ์ดํฐ๋ฅผ ๊ต์ฐจ๋ก ๋ฐ๊ฟ ๋๊ฐ๋ฉฐ ํ์ต ์ํํ๋ ๊ธฐ๋ฒ
-
Hyper Parameter Tuning : ๋ฐ์ดํฐ๋ฅผ ํ์ตํ ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ํด ๋ฐ์ํ๋ ๊ตฌ์กฐ๋ค์ ์ฌ์ฉ์๊ฐ ํต์
- Hyper Parameter : ์๊ณ ๋ฆฌ์ฆ ๋ด ์ํ ๊ตฌ์กฐ / ํ์ต์ ์ํํ๋ฉด์ ๋ฐ์ํ๋ ๊ตฌ์กฐ
- Random Search : Random์ผ๋ก ๋ถ์ฌํด ๊ฐ์ฅ ์ ์ ํ ๊ฒ ์ฐพ๋ ๋ฐฉ๋ฒ
- Grid Search : ์ฌ์ฉ์๊ฐ ์ฌ์ ์ ์ง์ ํ ๋ฐฉ๋ฒ๋๋ก ๋ถ์ฌํ์ฌ ํด ์ฐพ๋ ๋ฐฉ๋ฒ
Ex) Decision Tree(Depth / Leaf / Split ...)
- Random Search: Depth: 10 / Leaf : 7 / Split :15 or Depth: 20 / Leaf : 3 / Split :5
- Grid Search : Depth 5
10 / Leaf 510 / Split : 1~20
- Imbalanced Data Sampling : ๋ถ๋ฅ๋ชจ๋ธ์์ Dataset ๋น์จ์ด ์ฐจ์ด๋๋ ๊ฒฝ์ฐ, ํญ๋ชฉ ๋น๋์๊ฐ ๋ง๊ฑฐ๋ ์ ์ ์ชฝ์ผ๋ก ๋น์จ ๋ง์ถ์ด ํ์ตํ๋ ๊ธฐ๋ฒ
- Under Sampling : ๋ฐ์ดํฐ์ ๋น์จ์ด ์ ์ ์ชฝ์ผ๋ก ํ์ชฝ์ ๋ฐ์ดํฐ๋ฅผ ์ค์ฌ์ฃผ๋ ๊ธฐ๋ฒ(Random Under Sampling / Tomek's Link / KNN ....)
- Over Sampling : ๋ฐ์ดํฐ์ ๋น์จ์ด ๋ง์ ์ชฝ์ผ๋ก ํ์ชฝ์ ๋ฐ์ดํฐ๋ฅผ ๋๋ ค์ฃผ๋ ๊ธฐ๋ฒ(Random Over Sampling / SMOTE / ADASYN ...)
Ex) ๋ถ๋์ฌ๋ถ(Y) <-> X1, X2, X3... -> ์ ์ 950/ ๋ถ๋ 50 Imbalanced Sampling : ์ ์ 50 / ๋ถ๋ 50 or ์ ์ 950 / ๋ถ๋ 950