SKALA ๋ฐ์ดํฐ ๋ถ์ ๋ฏธ๋ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์,
์กฐ์๋ค์ด ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํฐ ๋ถ์ ํ๋ก์ธ์ค๋ ์ ๋ฐ์ ์ธ ํ๋ฆ์ ๋ง์ด ์ด๋ ค์ํ๋ค๋ ๊ฒ์ ์๊ฒ ๋์๋ค.
์ ๊ณต ๋ ๋ฐ์ดํฐ ๋ง์ด๋์ ์ฒ์ ๋ฐฐ์ฐ๋ ๋ด ๋ชจ์ต์ด ์๊ฐ๋๋ฉฐ,,,
ํ์๋ค์ ์ํด ๋ด๊ฐ ์๊ฐํ๋ ํ๋ก์ธ์ค๋ฅผ ์ ๋ฆฌํด๋ดค๋ค.
๋ฐ์ดํฐ ๋ถ์์ ์ฒ์ ๋ฐฐ์ฐ๋ ์ฌ๋๋ค์๊ฒ๋ ๋์์ด ๋ ๊ฒ ๊ฐ์ ๋ณด์ํด์ ๊ณต์ ํด ๋ณธ๋ค~!
๐ ๋ฐ์ดํฐ ๋ถ์ ๋ฐ ๋จธ์ ๋ฌ๋ ํ๋ก์ธ์ค ๋ถ์ ํ๋ก์ฐ
โ ๏ธ ์ฐธ๊ณ : ํ๋ฆด ์ ์์ ์ฃผ์
์๋์ ํ๋ก์ธ์ค๋ ์ ๊ฐ ์ฃผ๋ก ์งํํ๋ ๋ถ์ ํ๋ฆ์ ๋๋ค.
๋ฐ์ดํฐ์ ํน์ฑ์ด๋ ๋ฌธ์ ์ ์์ ๋ฐ๋ผ ์์๋ ๊ธฐ๋ฒ์ด ์ ๋์ ์ผ๋ก ์กฐ์ ํ๋ฉด ๋ฉ๋๋ค.
๋จ, train/test ๋ถํ ์ดํ์๋ง ํด์ผ ํ ์์ (์ํ๋ง, ์ค์ผ์ผ๋ง ๋ฑ)์ ๋ช ํํ๊ฒ ๊ตฌ๋ถํด์ผ ํฉ๋๋ค.
๐ฏ ์ ์ฒด ์์ ๊ฐ์
1. ๋ฐ์ดํฐ ๊ตฌ์กฐ ๋ฐ ๊ธฐ๋ณธ ์ ๋ณด ํ์ธ
2. ํ์์ ๋ฐ์ดํฐ ๋ถ์ (EDA)
3. ๊ฒฐ์ธก๊ฐ ์ฒ๋ฆฌ
4. ๋ฐ์ดํฐ ํ์
์ ๋ฆฌ
5. ์ด์์น ํ์ง ๋ฐ ์ฒ๋ฆฌ
6. ์ธ์ฝ๋ฉ
7. ํ์ ๋ณ์ ์์ฑ
8. ๋ณ์ ์ ํ ๋ฐ ์ฐจ์ ์ถ์
9. ๋ฐ์ดํฐ ๋ถํ
10. ๋ผ๋ฒจ ๋ถ๊ท ํ ์ฒ๋ฆฌ
11. ์ค์ผ์ผ๋ง
12. ๊ต์ฐจ ๊ฒ์ฆ
13. ๋ชจ๋ธ ํ์ต ๋ฐ ํ๊ฐ
14. ํ์ดํผํ๋ผ๋ฏธํฐ ํ๋
15. ์์๋ธ ๋ฐ ์ฑ๋ฅ ํฅ์ ๊ธฐ๋ฒ
1. ๋ฐ์ดํฐ ๊ตฌ์กฐ ๋ฐ ๊ธฐ๋ณธ ์ ๋ณด ํ์ธ
๋ชฉ์ : ๋ฐ์ดํฐ ๊ตฌ์กฐ ํ์ ๋ฐ ์ค๋ฅ ํ์
- ํ/์ด ์, ๋ฐ์ดํฐ ํ์ ํ์ธ: `.info()`, `.shape`, `.dtypes`
- ๊ธฐ์ด ํต๊ณ ์์ฝ: `.describe()`
2. ํ์์ ๋ฐ์ดํฐ ๋ถ์ (EDA)
๋ชฉ์ : ๋ณ์ ๊ฐ ๊ด๊ณ๋ ๋ถํฌ ํ์ , ์ด์์น ์๊ฐํ
- ํ๊ฒ ๋ถํฌ ํ์ธ
- ๋ฐ์ดํฐ ๋ถํฌ ์๊ฐํ
- ๋ณ์ ๊ฐ ์๊ด๊ด๊ณ ๋ถ์
- ํ๊ฒ ๋ณ์์ ๋ค๋ฅธ ๋ณ์ ๊ฐ ๊ด๊ณ ๋ถ์
- ์ด์์น ์๊ฐํ (๋ฐ์คํ๋กฏ, ์ฐ์ ๋)
3. ๊ฒฐ์ธก๊ฐ ์ฒ๋ฆฌ
- ๊ฒฐ์ธก๊ฐ ํ์ธ : `.isna().sum()`
- ์ฒ๋ฆฌ ๋ฐฉ๋ฒ
- ๋์ฒด: ์ต๋น๊ฐ(`mode()`), ํ๊ท ๊ฐ(`mean()`), ์ค์๊ฐ(`median()`)
- ์กฐ๊ฑด๋ถ ๋์ฒด(Conditional imputation): ํน์ ๊ทธ๋ฃน๋ณ ํต๊ณ์น๋ก ๋์ฒด
- ์์ธก ๊ธฐ๋ฐ ๋์ฒด: KNN, ํ๊ท ๋ชจ๋ธ์ ํ์ฉํ ์์ธก๊ฐ์ผ๋ก ๋์ฒด
4. ๋ฐ์ดํฐ ํ์ ์ ๋ฆฌ
๋ชฉ์ : ๋ชจ๋ธ์ด ๋ฐ์ดํฐ๋ฅผ ์ ํํ ํด์ํ ์ ์๋๋ก ๋ณ์ ํ์ ๋ช ํํ ์ค์
- ์ ์ ํ ๋ฐ์ดํฐ ํ์ ์ผ๋ก ๋ณํ: `astype()`
- ๋ฒ์ฃผํ/์ฐ์ํ ๋ณ์ ๊ตฌ๋ถ
- ๋ ์งํ ๋ฐ์ดํฐ ๋ณํ: `pd.to_datetime()`
5. ์ด์์น ํ์ง ๋ฐ ์ฒ๋ฆฌ
- ํ์ธ ๋ฐฉ๋ฒ
- IQR (box plot)
- Z-score
- scatter plot
- ์ฒ๋ฆฌ ๋ฐฉ๋ฒ
- ์ ๊ฑฐ : ํ์คํ ์ค๋ฅ์ธ ๊ฒฝ์ฐ, ๊ฒฐ์ธก๊ฐ์ด ๋๋ฌด ๋ง์ ์ด์ธ ๊ฒฝ์ฐ
- winsorizing : ์/ํํ๊ฐ์ผ๋ก ๋์ฒด
- ๋ณํ : ๋ก๊ทธ, ์ ๊ณฑ๊ทผ ๋ฑ์ผ๋ก ๋ณํํ์ฌ ์ํฅ ์ถ์
- flag ๋ณ์ ์ถ๊ฐ : ํด๋น ๊ฐ์ด ์ด์์น์ธ์ง๋ฅผ ๋ํ๋ด๋ ์๋ก์ด ๋ณ์ (์นผ๋ผ)์ ์ถ๊ฐ
์ฌ๊ธฐ์ ๋ ์์ธ๋ก scatter plot์ ๋ง์ด ํ์ฉํ๋ ํธ์ด๋ค.
๊ทธ๋ผ ์ซ์์์ผ๋ก ๋ณด์ด์ง ์๋ ์ด์์น์ ์๋ฏธ๋ฅผ ์ฝ๊ฒ ํ์ ํ ์ ์๋ค~!
6. ์ธ์ฝ๋ฉ
๋ชฉ์ : ๋ชจ๋ธ์ด ์ดํดํ ์ ์๋๋ก ๋ฒ์ฃผํ ๋ฐ์ดํฐ๋ฅผ ์์นํ์ผ๋ก ๋ณํ
- ๋ฒ์ฃผํ ๋ณ์ ์ธ์ฝ๋ฉ:
- One-Hot ์ธ์ฝ๋ฉ: `pd.get_dummies()`, `OneHotEncoder()`
- ๋ผ๋ฒจ ์ธ์ฝ๋ฉ: `LabelEncoder()`
- ํ๊ฒ ์ธ์ฝ๋ฉ: ํ๊ฒ ๋ณ์์์ ๊ด๊ณ๋ฅผ ๋ฐ์ํ ์ธ์ฝ๋ฉ
7. ํ์ ๋ณ์ ์์ฑ
- ๋๋ฉ์ธ ์ง์ ํ์ฉํ ์๋ก์ด ๋ณ์ ์์ฑ
- ์ํ์ ๋ณํ: ๋ก๊ทธ, ์ ๊ณฑ, ์ ๊ณฑ๊ทผ, ๋คํญ์ ํน์ฑ
- ๋น์จ, ์ฐจ์ด, ํฉ๊ณ ๋ฑ ๋ณ์๋ค ๊ฐ ์กฐํฉ
- ์๊ณ์ด ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ: ์๊ฐ ๊ธฐ๋ฐ ํน์ฑ ์ถ์ถ (์์ผ, ์, ๊ณ์ ๋ฑ)
- ํ ์คํธ ๋ฐ์ดํฐ: ๊ธธ์ด, ๋จ์ด ์, TF-IDF ๋ฑ
8. ๋ณ์ ์ ํ or ์ฐจ์ ์ถ์
๋ชฉ์ : ๋ณ์๊ฐ ๋๋ฌด ๋ง์ผ๋ฉด ๊ณผ์ ํฉ์ด ๋ฐ์ํ๊ฑฐ๋ ๋ชจ๋ธ์ ์ค๋ช ๋ ฅ์ด ๋จ์ด์ง๋ค.
- ์ค์๋ ๋ฎ์ ๋ณ์ ์ ๊ฑฐ: ํต๊ณ ํ ์คํธ, ์๊ด๊ด๊ณ ๋ถ์, ๋ชจ๋ธ์ feature importance ํ์ฉ
- ๋ค์ค๊ณต์ ์ฑ ์ฒ๋ฆฌ: VIF(Variance Inflation Factor) ํ์ธ
- ์ฐจ์ ์ถ์: PCA, LDA, t-SNE
9. ๋ฐ์ดํฐ ๋ถํ
- ํ์ต/ํ ์คํธ ์ธํธ ๋ถ๋ฆฌ: `train_test_split()`
- ์ผ๋ฐ์ ์ธ ๋น์จ: 8:2, 7:3 (๋ฐ์ดํฐ ํฌ๊ธฐ์ ๋ฐ๋ผ ์กฐ์ )
- ์ธตํ ์ถ์ถ(stratified sampling): ๋ถ๊ท ํ ๋ฐ์ดํฐ๋ฉด `stratify=y` ํ์
10. ๋ผ๋ฒจ ๋ถ๊ท ํ ์ฒ๋ฆฌ (* train ๋ฐ์ดํฐ๋ง)
- ์ค๋ฒ ์ํ๋ง:
- Random Over Sampling: `RandomOverSampler()`
- SMOTE: `SMOTE()`
- ADASYN: `ADASYN()`
- ์ธ๋ ์ํ๋ง (๋ฐ์ดํฐ๊ฐ ์ถฉ๋ถํ ๋):
- Random Under Sampling: `RandomUnderSampler()`
- NearMiss: `NearMiss()`
- ํ์ด๋ธ๋ฆฌ๋ ๋ฐฉ๋ฒ: `SMOTETomek`, `SMOTEENN`
- ๋น์ฉ ๊ฐ์ค์น ์กฐ์ : `class_weight` ํ๋ผ๋ฏธํฐ ํ์ฉ
* ๊ฐ์ธ์ ์ผ๋ก ์ค๋ฒ/์ธ๋ ์ํ๋ง ์ค์์๋ ์ค๋ฒ ์ํ๋งํ์ ๋ ๋ชจ๋ธ ์ฑ๋ฅ์ด ์กฐ๊ธ ๋ ์ข์ ๋ฏ!
11. ์ค์ผ์ผ๋ง (* train ๋ฐ์ดํฐ๋ก fit, test ๋ฐ์ดํฐ๋ transform๋ง)
- min-max scaling
- standard scaling
- robust scaling
- normal scaling
* ์ ๋ ๊ทธ๋ฅ ๋ค ํด๋ณด๊ณ ์ฑ๋ฅ ์ข์ ๊ฑฐ ์ฑํํ๋ ํธ... (๋ฌผ๋ก ๋ฐ์ดํฐ์ ํน์ฑ์ ์ ๋นํ ๊ณ ๋ คํด์ผ ํจ~!)
๐จ ์ค์: test ๋ฐ์ดํฐ์๋ `transform()`๋ง ์ ์ฉํด์ผ ํจ (๋ฐ์ดํฐ ๋์ ๋ฐฉ์ง)
12. ๊ต์ฐจ ๊ฒ์ฆ
๋ชฉ์ : ๋ชจ๋ธ์ ์ผ๋ฐํ ์ฑ๋ฅ์ ๊ฐ๊ด์ ์ผ๋ก ํ๊ฐํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ๋๋ ๊ฒ์ฆ
- ์ผ๋ฐ์ : K-fold ๊ต์ฐจ ๊ฒ์ฆ
- ๋ผ๋ฒจ ๋ถ๊ท ํ ๋์ : ์ธตํ K-fold ๊ต์ฐจ ๊ฒ์ฆ
- ์๊ณ์ด : TimeSeriesSplit
- ์๊ท๋ชจ ๋ฐ์ดํฐ์ : LOOCV(Leave-One-Out Cross-Validation)
13. ๋ชจ๋ธ ํ์ต ๋ฐ ํ๊ฐ
- Regression model : Linear Regression, Ridge/Lasso Regression ๋ฑ...
- Classification model : Logistic Regression, Decision Tree, RandomForest, SVM ๋ฑ...
- ํ๊ฐ ์งํ
- Regression ํ๊ฐ ์งํ : MAE, MSE, RMSE ๋ฑ...
- Classification ํ๊ฐ ์งํ : Accuracy, Precision, Recall, F1 Score, ROC-AUC ๋ฑ...
14. ํ์ดํผํ๋ผ๋ฏธํฐ ํ๋
๋ชฉ์ : ๋ชจ๋ธ์ ์ฑ๋ฅ์ ์ต์ ํํ๊ธฐ ์ํด ํ์ต๊ฐ ์กฐ์
- Grid Search
- Random Search
- BayesianOptimization
- ์กฐ๊ธฐ ์ข ๋ฃ (Early Stopping) : ๊ณผ์ ํฉ ๋ฐฉ์ง (LightGBM, XGBoost ๋ฑ์์ ๋ด์ฅ ์ง์
15. ์์๋ธ ๋ฐ ์ฑ๋ฅ ํฅ์ ๊ธฐ๋ฒ
๋ชฉ์ : ์ฌ๋ฌ ๋ชจ๋ธ์ ์์ธก์ ๊ฒฐํฉํด ๊ฐ๋ณ ๋ชจ๋ธ๋ณด๋ค ๋ ๋์ ์์ธก ์ ํ๋์ ์์ ์ฑ ํ๋ณด
- ๋ณดํ (Voting): `VotingClassifier()`
- ๋ฐฐ๊น (Bagging): `BaggingClassifier()`
- ์คํํน(Stacking): `StackingClassifier()`
- ๋ธ๋ ๋ฉ(Blending): ๊ฒ์ฆ ์ธํธ ํ์ฉ
โ ๏ธ ๋ฐ์ดํฐ ๋ถํ ์ดํ ์ ์ฉ ์ฃผ์์ฌํญ
- Sampling : train ๋ถํ ์ดํ
- Scaling : train์์ `fit()` → test์๋ `transform()`๋ง
- Encoding : ๋ฒ์ฃผํ ์ฒ๋ฆฌ ์ train ๊ธฐ์ค์ผ๋ก ๋ง์ถ๊ณ test๋ ๋์ผ ๋ฐฉ์ ์ ์ฉ
* ํ
์คํธ ๋ฐ์ดํฐ๋ train ๋ฐ์ดํฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ณํํด์ผ ํจ (๋ฐ์ดํฐ ๋์ ๋ฐฉ์ง)
๋๋ ์ด๋ฐ์๋ ์ ์ฒ๋ฆฌ์ ํฐ ํ์ ๋ค์ด์ง ์๊ณ ,
์ผ๋จ 13๋ฒ๊น์ง ๋น ๋ฅด๊ฒ ๋ง๋ค๊ณ 7๋ฒ๋ถํฐ ๋ฐ๋ณต์ ์ผ๋ก ์งํํ๋ฉด์ ๋ชจ๋ธ์ ์ฑ๋ฅ์ ๋์ด๋ ํธ์ด๋ค.
(์๋ฌด๋ฆฌ ํฉ๋ฆฌ์ ์ผ๋ก ์ ์ฒ๋ฆฌ๋ฅผ ํด๋, ๋ชจ๋ธ์ ์ฑ๋ฅ์ ์์ธ์ง ๋ด๊ฐ ์๋ํ ๋๋ก ๋์ค์ง ์๊ธฐ ๋๋ฌธ...)
โ๏ธ ์ถ๊ฐ ํ
1) ๋ฐ์ด์ฝ, ์บ๊ธ ํ์ฉํ๊ธฐ
๋ด๊ฐ ํ๋ ค๋ ๋จธ์ ๋ฌ๋ ์ฃผ์ ๋๋ถ๋ถ์ ์๋ง ๋ฐ์ด์ฝ์ด๋ ์บ๊ธ์์ ์ด๋ฏธ ์งํํ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
๋ฐ๋ผ์ ๋๋ ์ด๋ฐ ๋ํ์์ ์ฐ์น์์ด๋ ์์๊ถ ์ฌ๋๋ค์ด ํ ๋ฐฉ๋ฒ์ ๋ ํผ๋ฐ์ค ์ผ์ ๊ณต๋ถํ๊ณ , ๋ด ํ๋ก์ ํธ์ ์ ์ฉํด ๋ณธ๋ค.
2) ์ ํ๋ธ์ ๋ฐ์ดํฐ ๋ถ์ ๊ณต๋ชจ์ ์์ ๋ณด๊ธฐ
์ ํ๋ธ์ ๋ณด๋ฉด ๋ค์ํ ๋ฐ์ดํฐ ๋ถ์ ์์์๋ค์ด ์ฌ๋ผ์จ๋ค.
๋ฐ์ดํฐ ๋ถ์ ํ๋ฆ๋ฟ๋ง ์๋๋ผ ์ฃผ์ ์ ์ฐธ์ ํจ, ๋ถ์ ํ๋ก์ฐ, ํผํผํฐ ๊ตฌ์ฑ, ๋ฐํ ์คํฌ ๋ฑ
์ป์ ์ ์๋ ๊ฒ๋ค์ด ๋งค์ฐ ๋ง๋ค.
3) ๋ ผ๋ฌธ ์ฐพ์๋ณด๊ธฐ
๋ด๊ฐ ์๋ฌด๋ฆฌ ์ ๋ฐํ ์ฃผ์ ๋ฅผ ์ฐพ์๋, ๋ ผ๋ฌธ์ ์ฐพ์๋ณด๋ฉด ์ด๋ฏธ ์งํ๋ ์ฐ๊ตฌ์ผ ํ๋ฅ ์ด ๋งค์ฐ ๋๋ค.
1๋ฒ์ฒ๋ผ ๋ ํผ๋ฐ์ค ์ผ์ ๋ด ๋ถ์ ์ฃผ์ ๋ฅผ ์ฌํํ๊ณ ๋๋ฒจ๋กญ์ํค๋๋ฐ ๋งค์ฐ ์ ์ฉํ๋ค!
๐ ์ถ์ฒ ๋งํฌ
๋ถ๋ฅ ๋ชจ๋ธ ํ๊ฐ ์งํ ์ด์ ๋ฆฌ (feat. Confusion matrix and Roc Curve)
Confusion Matrix True Positive (TP): ์ค์ ๊ฐ์ด Positive์ด๊ณ , ๋ชจ๋ธ๋ Positive๋ก ์์ธกํ ๊ฒฝ์ฐTrue Negative (TN): ์ค์ ๊ฐ์ด Negative์ด๊ณ , ๋ชจ๋ธ๋ Negative๋ก ์์ธกํ ๊ฒฝ์ฐFalse Positive (FP): ์ค์ ๊ฐ์ด Negative์ธ๋ฐ, ๋ชจ๋ธ์ด Po
thswldud.tistory.com
'IT' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ถ๋ฅ ๋ชจ๋ธ ํ๊ฐ ์งํ ์ด์ ๋ฆฌ (feat. Confusion matrix and Roc Curve) (0) | 2025.04.07 |
---|---|
[GitHub] ๊นํ๋ธ ๊ฟํ ๋ชจ์์ง.zip (0) | 2025.04.04 |
ERP ํด๋ผ์ฐ๋, ํจํค์ง vs ์จํ๋ ๋ฏธ์ค ๋ฐฉ์ ์ฅ๋จ์ ๋น๊ต (0) | 2024.12.12 |