kaggle(www.kaggle.com/)์ Intermediate Machine Learning ์ฝ์ค๋ฅผ ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค.
์์ฒด ๋ฒ์ญ์ผ๋ก ๊ณต๋ถํ๋ค๋ณด๋ ์๋ฏธ๊ฐ ์ ๋๋ก ์ ๋ฌ๋์ง ์์ ๋ถ๋ถ์ด ์์ ์ ์์ต๋๋ค.
์๋ชป๋ ๋ด์ฉ, ์๊ฒฌ์ ๋๋ ๋ณด๊ณ ์ถ์ ๋ด์ฉ, ์คํ ๋ฑ์ด ์๋ค๋ฉด ํธํ๊ฒ ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์ธ์ =)
1. Missing Values - ๊ฒฐ์ธก์น
Three Approaches
1) ๊ฒฐ์ธก์น๊ฐ ์๋ ์ด ์ ์ฒด ์ญ์
๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ด์ง๋ง ์ค์ํ ๋ฐ์ดํฐ๊ฐ ๋ด๊ธด ์ด์ ์์์ ๊ฒฐ์ธก์น๊ฐ ์์ ๊ฒฝ์ฐ ์ด ์ ์ฒด๊ฐ ์ญ์ ๋๋ ๋จ์ ์ด ์กด์ฌํ๋ค.
cf. NaN? Not a Number. ํํ ๋ถ๊ฐ๋ฅํ ์์นํ ๊ฒฐ๊ณผ
2) ๋์น(Imputation)
๊ฒฐ์ธก์น๋ฅผ ํน์ ๊ฐ์ผ๋ก ๋์ฒดํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์์ ์ฌ์ง์ ํ๊ท ๊ฐ์ ์ด์ฉํด ๊ฐ์ ์ฑ์ด ๋ชจ์ต์ด๋ค. ๋ง์ ๊ฒฝ์ฐ ๋์ฒด๊ฐ์ด ์๋ฒฝํ๊ฒ ๋ง์๋จ์ด์ง๋ ๊ฒ์ ์๋์ง๋ง ์ด ์ ์ฒด๋ฅผ ์ญ์ ํ๋ ๋ฐฉ๋ฒ๋ณด๋ค๋ ๋์ ์ ํ๋๋ฅผ ์ป์ ์ ์๋ค.
์ฌ์ดํท๋ฐ์์ ์ ๊ณตํ๋ SimpleImputer ๋ชจ๋์ ์ด์ฉํด ์์ฝ๊ฒ ๊ณ์ฐ์ด ๊ฐ๋ฅํ๋ค.
3) ๋์น์ ํ์ฅ
2)์ ๊ฒฝ์ฐ์์ ๊ฒฐ์ธก์น์ ์์น๋ฅผ ํ์ํ๋ ์ด์ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ์ด๋ค. kaggle ์ฌ์ดํธ์๋ 'In some cases, this will meaningfully improve results. In other cases, it doesn't help at all.' ๋ผ๊ณ ๋์์๋๋ฐ ์ ๋ฌธ์ฅ์์ ๋งํ๋ some cases์ other cases๊ฐ ์ ํํ ์ด๋ค ๊ฒฝ์ฐ์ธ์ง๋ ๋ชจ๋ฅด๊ฒ ๋ค ๐ค
2. Categorical Variables - ๋ฒ์ฃผํ ๋ณ์
Categorical Variables
์กฐ์ฌ ๋์์ ํน์ฑ์ ๋ฐ๋ฅธ ๋ฒ์ฃผ๋ก ๊ตฌ๋ถํ์ฌ ์ธก์ ๋ ๋ณ์๋ก, ์ง์ ๋ณ์๋ผ๊ณ ๋ ํ๋ค. ์๋ฅผ ๋ค์ด ๋๋ฌผ=0, ์๋ฌผ=1์ด๋ผ๊ณ ํ ๋ 0.5๋ ์๋ฏธ๊ฐ ์๋ ๊ฐ์ด๋ฉฐ ๋ ๋ณ์ ๊ฐ์ ์ฐ์ฐ์ ๋ฌด์๋ฏธํ๊ธฐ ๋๋ฌธ์ ์ฐ์ฐ์ด๋ผ๋ ๊ฐ๋ ์ ์ ์ฉํ ์ ์๋ค.
Three Approaches
1) ๋ฒ์ฃผํ ๋ณ์ ์ญ์
๋ฐ์ดํฐ์ ์ผ๋ก๋ถํฐ ๋ฒ์ฃผํ ๋ณ์๋ฅผ ์ญ์ ํ๋ ๋ฐฉ๋ฒ์ ์ด์ด ์ค์ํ ์ ๋ณด๋ฅผ ๋ด๊ณ ์์ง ์์ ๋๋ง ์ ์ฉํ ๋ฐฉ๋ฒ์ด๋ค.
2) ๋ผ๋ฒจ ์ธ์ฝ๋ฉ
๋จ์ด๋ ๊ธ์๋ฅผ ์ซ์ ํํ๋ก ๋ฐ๊ฟ์ฃผ๋ ์์ ์ผ๋ก ๊ฐ๊ฐ์ ํญ๋ชฉ์ ๊ณ ์ ํ ์ซ์๋ฅผ ๋ถ์ด๊ณ ์์๋ฅผ ๋ถ์ฌํ๋ ๋ฐฉ์์ผ๋ก ์๊ฐํ๋ฉด ๋๋ค. ์์ ์ฌ์ง์์๋ Never(0) < Rarely(1) < Most days(2) < Every day(3)์ ์์๊ฐ ์ ์ฉ๋๋ค.
3) โญ One-Hot Encoding
์์ฐ์ด ์ฒ๋ฆฌ์์ ๋ฌธ์๋ฅผ ์ซ์๋ก ๋ฐ๊พธ๋ ๋ํ์ ์ธ ๊ธฐ๋ฒ์ผ๋ก ๊ฐ ๋จ์ด์ ๊ณ ์ ํ ์ธ๋ฑ์ค๋ฅผ ๋ถ์ฌํ ํ ํํํ๊ณ ์ ํ๋ ๋จ์ด์ ์ธ๋ฑ์ค ์์น์๋ 1, ์๋ ๊ณณ์ 0์ ๋ถ์ฌํ๋ ๋ฐฉ์์ด๋ค. ํ ์ค๋ก ์์ฝํ๋ฉด ํด๋น๋๋ ํ๋์ ๋ฐ์ดํฐ๋ 1, ๊ทธ๋ ์ง ์์ ๋ฐ์ดํฐ๋ 0์ผ๋ก ์ฑ์์ฃผ๋ ๊ฒ์ด๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ฒ์ฃผํ ๋ณ์์ ์ข ๋ฅ๊ฐ ๋ง์ ๋๋ ์ด ๋ฐฉ์์ด ์ ๋์ํ์ง ์๋๋ค.
3. Pipelines
Introduction
ํ์ดํ๋ผ์ธ์ ์ฌ์ฉํด์ ์ป์ ์ ์๋ ์ฅ์ ์
- ๊น๋ํ ์ฝ๋
- ์ ์ ๋ฒ๊ทธ
- ์ฌ์ด ์์ฐํ
- ๋ชจ๋ธ ๊ฒ์ฆ์ ์ํ ๋ค์ํ ์ต์
๋ฆฌ์คํธ ํํ๋ก ๋ฃ์์ ๋ ๊ธ์ ํฌ๊ธฐ ์กฐ์ ์๋๋ ๊ฑฐ ๋๋ฌด ๋ถ-ํธ
Construct the full pipeline
โ ์ ์ฒ๋ฆฌ ๋จ๊ณ(๊ฒฐ์ธก์น ์ฒ๋ฆฌ ๋ฐ ๋ฒ์ฃผํ ๋ฐ์ดํฐ์ one-hot encoding ์ ์ฉ)
โก ๋ชจ๋ธ ์ ์
โข ํ์ดํ๋ผ์ธ ์์ฑ ๋ฐ ํ๊ฐ
4. Cross-Validation - ๊ต์ฐจ ๊ฒ์ฆ
๋ฐ์ดํฐ๋ฅผ folds๋ผ๋ ๋จ์๋ก ๋๋๊ณ ๊ฐ ํด๋๋ง๋ค ํ ์คํธํด๋ณด๋ฉด์ ๋ชจ๋ธ์ ์ฑ๋ฅ์ ํ๊ฐํ๋ ๊ณผ์ ์ด๋ค.
๊ต์ฐจ ๊ฒ์ฆ ๊ณผ์ ์ ๋ชจ๋ธ์ ์ฑ๋ฅ ์ธก์ ์ ์์ด์ ์ข ๋ ๋์ ์ ํ๋๋ฅผ ์ ๊ณตํ์ง๋ง ๋ชจ๋ธ์ ์ฌ๋ฌ ๋ฒ ํ๊ฐํ๊ธฐ ๋๋ฌธ์ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฐ๋ค๋ ๋จ์ ์ด ์๋ค.
5. XGBoost
Introduction
์์๋ธ ๊ธฐ๋ฒ์ธ gradient Boosting์ ๋จ์ ์ ๋ณด์ํ๊ธฐ ์ํด ๋์จ ๊ฒฐ์ ํธ๋ฆฌ ๊ธฐ๋ฐ ๋ชจ๋ธ
Gradient Boosting
๊ฐ๋จํ๊ฒ ์ ๋ฆฌํ๋ฉด ๋จ์ผ ๋ชจ๋ธ์ ๋ค๋ฅธ ๋ชจ๋ธ์ ๋ฐ๋ณต์ ์ผ๋ก ๊ฒฐํฉ์ํค๋ ์์๋ธ ๊ธฐ๋ฒ์ด๋ค. ์งํ ๊ณผ์ ์ ์๋ ์ฌ์ง๊ณผ ๊ฐ๋ค.
Parameter Tunning
XGBoost์๋ ์ ํ๋์ ํ์ต ์๋์ ๋๋ผ๋งํฑํ ์ํฅ์ ์ฃผ๋ ๋ช๋ช ํ๋ผ๋ฏธํฐ๋ค์ด ์๋๋ฐ ๊ฐ ํ๋ผ๋ฏธํฐ์ ๋ํด ์์๋ณด๋๋ก ํ์.
1) n_estimators
๋ชจ๋ธ๋ง ์ฌ์ดํด(๋ฐ๋ก ์์ ์ฌ์ง)์ ๋ฐ๋ณต ํ์๋ฅผ ์ง์ ํ๋ค. ์์๋ธ์ ํฌํจ์ํค๋ ๋ชจ๋ธ์ ์์ ๋์ผํ๋ฉฐ ๋๋ฌด ๋ฎ์ ๊ฒฝ์ฐ์๋ ์ธ๋ํผํ ์, ๋๋ฌด ํบ์ ๊ฒฝ์ฐ์๋ ์ค๋ฒํผํ ์ ๋ฐ์์ํค๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ์์น๋ 100~1000์ด๋ค.
2) early_stopping_rounds
n_estimators์ ์ด์์ ์ธ ๊ฐ์ ์๋์ผ๋ก ์ฐพ์ ์ ์๋๋ก ํ๋ค. ์ง์ ํ ๊ฐ ์ดํ์ ๋ฐ๋ณต์์ ํ๊ฐ ์งํ์ ๊ฐ์ ์ด ์์ ๊ฒฝ์ฐ ๋ชจ๋ธ์ ๋ฉ์ถ๊ฒ ํ๋ ๊ฐ์ผ๋ก early_stopping_rounds ๊ฐ์ 10์ผ๋ก ์ง์ ํ๋ค๋ฉด 10๋ฒ์ ๋ฐ๋ณต ํ์๋ ์ฑ๋ฅ์ด ์ข์์ง์ง ์์ผ๋ฉด ๋ชจ๋ธ ํ์ต์ ๋ฉ์ถ๋ ๊ฒ์ด๋ค.
๋ฐ๋ณต ํ์๋ฅผ ๋๋ ค๋ ์ฑ๋ฅ์ด ๋์์ง์ง ์๋๋ฐ ๋ฌด์๋ฏธํ ํ์ต์ ๊ณ์ ํจ์ผ๋ก์จ ์๊ธฐ๋ ์๊ฐ ๋ญ๋น๋ฅผ ๋ฐฉ์งํด์ค๋ค.
3) learning_rate
์์ ํ์ต๋ฅ ๊ณผ ํฐ estimators ๊ฐ์ XGBoost ๋ชจ๋ธ์ ๊ฒฐ๊ณผ๋ฅผ ์ข ๋ ์ ํํ๊ฒ ๋ง๋ ๋ค. ๋ํดํธ๋ก ์ง์ ๋ ํ์ต๋ฅ ์ 0.1์ด๋ค.
4) n_jobs
๋ฐ์ดํฐ์ ์ด ํด ๊ฒฝ์ฐ parallelism์ ์ด์ฉํด ์๋๋ฅผ ํฅ์์ํค๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋๋ค. ์ปดํจํฐ์ ์ฝ์ด ์์ ๋์ผํ๊ฒ ์ค์ ํด์ฃผ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๊ณ ๋ฐ์ดํฐ์ ์ด ์์ ๊ฒฝ์ฐ์๋ ๋์์ด ๋์ง ์๋๋ค.
6. Data Leakage
Target Leakage
์์ธก๊ธฐ๊ฐ ์์ธก์ ๋ง๋๋ ์๊ฐ์ ์ด์ฉํ ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๊ณ ์์ ๋ ๋ฐ์ํ๋ ๋ฐ์ดํฐ ๋์
Train-Test Contamination
ํ์ต ๋ฐ์ดํฐ์ ๊ฒ์ฆ ๋ฐ์ดํฐ๋ฅผ ๋ช ํํ๊ฒ ๊ตฌ๋ณํด๋์ง ์์์ ๋ ๋ฐ์ํ๋ ๋์
'๐ฉโ๐ป' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ART] adversarial_training_mnist.ipynb ์ฝ๋ ๋ถ์ (0) | 2022.01.12 |
---|---|
[ART] ART for TensorFlow v2 - Callable ์ฝ๋ ๋ถ์ (0) | 2022.01.03 |
[ART] ART for TensorFlow v2 - Keras API ์ฝ๋ ๋ถ์ (0) | 2021.12.31 |
[DACON] ์ฝ๋ ๋ถ์ - MNIST : ์ซ์ ์ด๋ฏธ์ง ๋ถ๋ฅ (0) | 2021.05.25 |
[kaggle] Intro to Machine Learning (0) | 2021.04.26 |