์ ์ฒ๋ฆฌ: ์-ํซ์ธ์ฝ๋ฉ์์ ๋ผ๋ฒจ ์ธ์ฝ๋ฉ์ผ๋ก ๋ณ๊ฒฝ
๊ธฐ์กด ์ํซ์ธ์ฝ๋ฉ์ด ์ปฌ๋ผ์ ์๋ฅผ ๊ณผ๋ํ๊ฒ ๋๋ ค ํ์ต์ ๋ฐฉํดํ๊ณ ์๋ค๋ ํผ๋๋ฐฑ์ ๋ฐ์.
์ํซ์ธ์ฝ๋ฉ์ผ๋ก ์ฒ๋ฆฌํ๋ ํผ์ฒ๋ฅผ ๊ฐ์ ๋ฐ๋ผ 0~n์ผ๋ก ์ฒ๋ฆฌํ๋ ๋ผ๋ฒจ ์ธ์ฝ๋ฉ ๋ฐฉ์์ ์ฑํํจ.
| school1 | ํ๊ตid ํ๊ท ์ฒ ํ์จ. ๋ฑ์ฅ ํ์ 29ํ ๋ฏธ๋ง → ๊ธฐํ |
| doublem | ๋ณต์์ ๊ณต ์ฌ๋ถ 0/1 |
| itmajor | IT์ ๊ณต์ธ์ง(1์ ๊ณต 2์ ๊ณต ์ค ํ๋๋ผ๋ IT) 0/1 |
| ismajor | (๋ฐ์ดํฐ)์ ๊ณต์์ธ์ง 0/1 |
| job | ํ์ฌ ์ ๋ถ 0~3 |
| class1_1 | ๋ถ๋ฐ. ํ๊ท ์ฒ ํ์จ. ๋ฑ์ฅ ํ์ 100ํ ๋ฏธ๋ง → ๊ธฐํ |
| re_registration | ์=1, ์๋์=0, NaN=-1 |
| nationality | ๋ด๊ตญ์ธ=0, ์ธ๊ตญ์ธ=1, NaN=-1 |
| inflow_route | ์ฃผ์ ๊ฒฝ๋ก๋ณ 0~4, ๊ธฐํ=5 |
| whyBDA | 5% ๋ฏธ๋ง ๊ธฐํ ํตํฉ ํ 0~5 |
| what_to_gain | 5% ๋ฏธ๋ง ๊ธฐํ ํตํฉ ํ 0~4, NaN=-1 |
| hope_for_group | ์คํ๋ผ์ธ=0, ์จ๋ผ์ธ=1, ๊ฐ์ธ ํ๋=2, NaN=-1 |
| major_field | ์ญ์ |
| desired_career_path | ํ ์คํธ ํ์คํ → ๋ผ๋ฒจ ์ธ์ฝ๋ฉ (0~3) |
| interested_company | ์ญ์ |
| expected_domain | ๋น์ค 5% ๋ฏธ๋ง ๊ธฐํ๋ก ๋ฌถ์ ๋ค ๋ผ๋ฒจ ์ธ์ฝ๋ฉ |
| project_type | ๊ฐ์ธ=0, ํ=1 |
| desired_job | ์์ ์นดํ ๊ณ ๋ฆฌ(<10): ๊ธฐํ๋ก ํฉ์น๊ธฐ |
| certificate_acquisition | Multi-Label Encoding ์์ ์นดํ ๊ณ ๋ฆฌ(<10): ๊ธฐํ๋ก ํฉ์น๊ธฐ ๊ธฐ์กด ์ปฌ๋ผ : ADsp, AWS, SQLD, ๊ตฌ๊ธ์ ๋๋ฆฌ์คํฑ์ค, ๋น ๋ฐ์ดํฐ๋ถ์๊ธฐ์ฌ, ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ, ํ๋ธ๋ก, ์ปดํจํฐ ํ์ฉ ๋ฅ๋ ฅ, ์ค๋น์ค, ๊ธฐํ |
| desired_certificate | Multi-Label Encoding ์์ ์นดํ ๊ณ ๋ฆฌ(<10): ๊ธฐํ๋ก ํฉ์น๊ธฐ |
| certificate_study_period | ์ํ์ผ ์ 3์ฃผ = 0 ์ํ์ผ ์ 4์ฃผ = 1 ์ํ์ผ ์ 5์ฃผ = 2 ์ ์์ผ ์ 3์ฃผ = 3 ์ ์์ผ ์ 4์ฃผ = 4 ์ ์์ผ ์ 5์ฃผ = 5 |
| desired_job_except_data | Multi-Label Encoding ์์ ์นดํ ๊ณ ๋ฆฌ(<10): ๊ธฐํ๋ก ํฉ์น๊ธฐ? ๊ธฐ์กด ์ปฌ๋ผ : R&D/์ฐ๊ตฌ, ๊ฐ๋ฐ, ๊ฒฝ์/๊ด๋ฆฌ, ๊ธ์ต/ํ๊ณ, ๊ธฐํ/์ ๋ต, ๋ง์ผํ /๊ด๊ณ /MD , ์์ , ๋ฏธ์ |
| incumbents_level | ์ฃผ๋์ด(0~3๋ ์ฐจ)=0, ์๋์ด(10๋ ์ฐจ)=1 |
| incumbents_company_level | ์์ ์นดํ
๊ณ ๋ฆฌ(<10): ๊ด๋ จ ์๋ ์ปฌ๋ผ/๊ธฐํ๋ก ํฉ์น๊ธฐ ๊ตญ๋ด๋๊ธฐ์ IT ๊ตญ๋ด๋น ํ ํฌ ๊ธ์ต๊ถ(์ ๋ฐ) ๊ธฐํ ๋ฌธํ/์ํฐ/๊ฒ์ ๋ฏธ์ ๋ฐ์ด์ค ๋ฐ๋์ฒด ์คํํธ์ C๋ ๋ฒจ ์คํฌ์ธ ํด์ธ๋น ํ ํฌ |
| incumbents_lecture_type | ์จ๋ผ์ธ=0, ์จ/์คํ๋ผ์ธ ๋์์ = 1, ์คํ๋ผ์ธ = 2 |
| incumbents_lecture_scale | ์์ ์นดํ
๊ณ ๋ฆฌ(<10): ๊ธฐํ๋ก ํฉ์น๊ธฐ? 100๋ช ์ด์์ ๋ฆฌ์ค๋์ 1-2๋ช ์ ํ์ง์ 100๋ช ์ด์์ ๋ฆฌ์ค๋์ 10๋ช ์ด์์ ํ์ง์ 100๋ช ์ด์์ ๋ฆฌ์ค๋์ 3๋ช ์ ํ์ง์ 10๋ช ๋ด์ธ์ ๊ฐ์ ๋ฆฌ์ค๋์ 1๋ช ์ ํ์ง์ 3~50๋ช ๋ด์ธ์ ๊ฐ์ ๋ฆฌ์ค๋์ 1๋ช ์ ํ์ง์ ๋ฌด๊ด |
| onedayclass_topic | Multi-Label Encoding ์์ ์นดํ ๊ณ ๋ฆฌ(<10): ๊ธฐํ/๊ด๋ จ ์๋ ์ปฌ๋ผ์ผ๋ก ํฉ์น๊ธฐ ML/DL/AI/NLP/CV/LLM Python / R ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ํฉ์น๊ธฐ SQL/DB ๊ณต๋ชจ์ /ํ๋ก์ ํธ/ํฌํธํด๋ฆฌ์ค/์ปค๋ฆฌ์ด ๋ฐ์ดํฐ์์ง๋์ด๋ง/๋น ๋ฐ์ดํฐ/ํด๋ผ์ฐ๋ ์๊ฐํ/BI ๊ธฐํ |
1056 rows × 53 columns ํฌ๊ธฐ์ csvํ์ผ๋ก ๋ชจ๋ธ์ ๋ค์ ํ์ตํจ.
CATBOOST ์ฑ๋ฅ
Accuracy: 0.5047
F1-score: 0.4976
AUC: 0.6889
์ธ๋์ํ๋ง ๊ฒฐ๊ณผ:
์ธ๋์ํ๋ง ํ ํด๋์ค ๋ถํฌ: withdrawal 1 = 261/ 0 = 261
Name: count, dtype: int64
Accuracy: 0.5613 F1-score: 0.5792 AUC: 0.7363
์ค๋ฒ์ํ๋ง ๊ฒฐ๊ณผ:
์ค๋ฒ์ํ๋ง ํ: withdrawal 1 = 583 / 0 583
Name: count, dtype: int64
Accuracy: 0.6934 F1-score: 0.8189 AUC: 0.6734
XGBOOST ์ฑ๋ฅ
์ ํ๋ : 0.6604
์ด์ ์ ๋นํด
- ์ ํ๋ ์ด์ง(+1.4%) ์์น
- ์ด์ weighted F1: 0.65
- ์ด๋ฒ weighted F1: 0.64 ← ๊ฑฐ์ ๋น์ทํ๊ฑฐ๋ ์ฝ๊ฐ worse
- Class 1์ ๋ง์ถ์ง๋ง, ํฌ๊ท ํด๋์ค(0)๋ ๋ ๋ฌด์ํ๋ ํํ๊ฐ ์ฌํด์ก๋ค.
๋ชจ๋ธ์ ํน์ฑ์ ๊ณ ๋ คํด ๊ฒฐ์ธก์น๋ฅผ -1๋ก ์ฑ์ฐ์ง ์๊ณ ๋น์์ ํ์ต์์ผฐ์ ๋
์ ํ๋(Accuracy): 0.6368
ํด๋์ค๊ฐ ๊ฒฉ์ฐจ๋ ๋ฒ์ด์ง๊ณ ์ ํ๋ ๋จ์ด์ง
RandomForest ์ฑ๋ฅ
ํธ๋ฆฌ 500์ผ๋ ์ ํ๋: 0.7216981132075472 f-1 0.8259587020648967
ํธ๋ฆฌ 800์ผ๋ก ์ค์ ์ ํ๋: 0.7311320754716981
๊ฒฐ๋ก ์ ์ผ๋ก RandomForest๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฑ๋ฅ์ ๋ฐ์ ์ํค๊ธฐ๋ก ํ์๋ค.
๋ฆฌ๋๋ณด๋(1์ฐจ)
๋๋คํฌ๋ ์คํธ ๋ชจ๋ธ๋ก ์ฒ ํ ์ฌ๋ถ๋ฅผ ์์ธกํด ์ ์ถํ ๊ฒฐ๊ณผ
public 0.64604 private 0.6471600688 (151๋ฑ)
๋๋คํฌ๋ ์คํธ ์ฑ๋ฅ ๊ฐ์
- Baseline RF: ๊ธฐ๋ณธ ๋๋ค ํฌ๋ ์คํธ.
- RF class_weight: ํด๋์ค ๊ฐ์ค์น๋ฅผ ์ฌ์ฉํ ๋๋ค ํฌ๋ ์คํธ.
- SMOTE + RF: **๊ณผํ์ง(Oversampling)**์ ํตํ ๊ท ํ ๋ง์ถ๊ธฐ.
- UnderSample + RF: **๋ฏธํ์ง(Under-sampling)**์ ํตํ ๊ท ํ ๋ง์ถ๊ธฐ.
- Balanced RF: ๋ถ๊ท ํ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ํนํ๋ ์์๋ธ ๊ธฐ๋ฒ.
๋ชจ๋ธ๋ณ ํน์ง
- Baseline RF (ID X)
- ์ ์ฒด ์ฑ๋ฅ(f1_macro) ์ค์
- ์์ ํด๋์ค 0 ์ฑ๋ฅ ๋ฎ์(f1_0 0.33, recall 0.21) → ์ฌ์ ํ 0 ๊ณผ์ ์์ธก
- RF class_weight
- class_weight ์คฌ์ง๋ง ์ฑ๋ฅ ์คํ๋ ค ๋ฎ์(f1_macro 0.54)
- recall_0 ์ฝ๊ฐ ํฅ์ํ์ง๋ง precision_0 ์ ์ง → ์ค๋ฒํจ๋ํฐ ๊ฐ๋ฅ
- SMOTE + RF
- ์์ ํด๋์ค ๋๋ ค ํ์ต
- recall_0 ๋น์ทํ์ง๋ง precision_0 0.5๋ก ๋ฎ์์ง → false positive ์ฆ๊ฐ
- ์ ์ฒด f1_macro ๋น์ท
- UnderSample + RF
- ๋ค์ ํด๋์ค ์ค์ → ์์ ํด๋์ค F1 ํฌ๊ฒ ํฅ์(f1_0 0.51, recall_0 0.74)
- precision_0 ๋ฎ์(0.39) → ๊ณผ์ ์์ธก ์กด์ฌ
- roc_auc ์ต๊ณ (0.614) → ๋ถ๋ฅ ๊ฒฝ๊ณ๊ฐ ์ข ๋ ๊ท ํ๋จ
- Balanced RF
- ์ ์ฒด์ ์ผ๋ก ๊ฐ์ฅ ๊ท ํ ์กํ(f1_macro ์ต๊ณ 0.594)
- ์์ ํด๋์ค ์ฑ๋ฅ(f1_0 0.46, recall_0 0.50) → UnderSample๋ณด๋ค๋ ๋ฎ์ง๋ง ์ ์ฒด ์ฑ๋ฅ ์ข์
- roc_auc๋ ์ค์(0.60)
์๊ณ๊ฐ ํ ์คํธ
| ๐ฅ F1-macro ์ต๋ํ | 0.4700 | 0.6507 | 0.5041 | 0.7973 | ํด๋์ค 1(ํํด)์ ์ฌ์ ํ ์ ๋ฆฌํ์ง๋ง, ๊ท ํ ์กํ ์ฑ๋ฅ |
| ๐ฅ F1-0 ์ต๋ํ | 0.5700 | 0.5457 | 0.5200 | 0.5714 | ํด๋์ค 0(๋ฏธํํด) ์์ธก ์ฑ๋ฅ ์ต๋ํ |
- Balanced Random Forest ์ฌ์ฉ → ์์ ํด๋์ค ๋ถ๊ท ํ ๋ณด์
- ์๊ณ๊ฐ(Threshold) ํ๋ ์ ์ฉ → BEST_THRESHOLD = 0.47๋ก class 0/1 ์์ธก ๊ธฐ์ค ์กฐ์
๊ฒฐ๊ณผ - public 0.6247689464, private 0.6273062731
์ฝ๋ - ์๊ณ๊ฐ 0.57 ๋ฒ์
๊ฒฐ๊ณผ - public 0.4186046512, private 0.4702842377
- NaN ์ฒ๋ฆฌ
- SimpleImputer(strategy="median")๋ฅผ ์ฌ์ฉํ์ฌ ์์นํ ๊ฒฐ์ธก์น ์ฒ๋ฆฌ → SMOTE ์์ด๋ NaN ๋ฌธ์ ํด๊ฒฐ.
- Balanced ์ฒ๋ฆฌ
- ๊ธฐ์กด BalancedRandomForestClassifier ๋์ RandomForestClassifier + class_weight="balanced" ์ฌ์ฉ
- ์์ ํด๋์ค์ ๊ฐ์ค์น๋ฅผ ๋ถ์ฌํ์ฌ ๋ถ๊ท ํ ๋ฌธ์ ์ํ.
- Threshold ํ๋
- ์ต์ ์๊ณ๊ฐ BEST_THRESHOLD = 0.47 ์ ์ฉ → ํด๋์ค 0(F1) ์ฑ๋ฅ ๊ฐ์ .
- ์ ์ฒด ํ์ต ๋ฐ์ดํฐ ์ฌํ์ต
- ์ต์ข ์ ์ถ์ฉ ์์ธก ์ split๋ train/valid๊ฐ ์๋ X, y ์ ์ฒด ๋ฐ์ดํฐ๋ก ์ฌํ์ต → ์ผ๋ฐํ ์ฑ๋ฅ ํฅ์.
๊ฒฐ๊ณผ - public 0.64604811, private 0.64604811
- SMOTE๋ก ํด๋์ค 0 ์ํ์ ๋๋ ค recall ๊ฐ์ .
- Threshold๋ฅผ 0.47 → 0.4๋ก ๋ฎ์ถฐ 0์ ๋ ๋ง์ด ์ก๋๋ก ์กฐ์ .
- BalancedRandomForest + class_weight="balanced" ์ ์ง.
⇒ ๊ฒฐ๊ณผ public 0.64716
์๊ณ๊ฐ ์กฐ์ : accuracy ๊ธฐ์คpublic์ ์ : 0.6483704974, private์ ์ : 0.6471600688
์ค์๋๊ฐ ๋์ ํผ์ฒ๋ง ์ถ์ถํด ๋ฐ์ดํฐ๋ฅผ ๋ง๋ค์ด ์ฌํ์ต ์ํด + ์๊ณ๊ฐ ์กฐ์
top 20 : public์ ์ : 0.6483704974, private์ ์ : 0.6459412781
top 30 : public์ ์ : 0.6483704974, private์ ์ : 0.64604811 → ํ ๊ฒ ์ค ๊ฐ์ฅ ๋์
ํ์ดํผํ๋ผ๋ฏธํฐ ํ๋ํ ๊ฐ
model = RandomForestClassifier(
n_estimators=800,
max_depth=30,
min_samples_split=2,
min_samples_leaf=1,
max_features="sqrt",
bootstrap=True,
random_state=42,
class_weight="balanced", # ํ๋ ๋ balanced๋ก ํ์ผ๋ฉด ์ ์ง, ์๋๋ฉด ๋นผ๊ธฐ
n_jobs=-1
)
์ต์ข ๋๋คํฌ๋ ์คํธ ๋ชจ๋ธ ๊ธฐ๋ฐ ์๊ณ ๋ฆฌ์ฆ
DACON ๋ฆฌ๋๋ณด๋ ์ ์ถ ๊ฒฐ๊ณผ
0.6483704974, 0.6471600688
'๐ก WIDA > ํ๋ก์ ํธ ๋ณด๊ณ ์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [WIDA] 3ํ_1์ฐจ๋ณด๊ณ ์ (0) | 2026.04.03 |
|---|---|
| [WIDA] 1ํ_3์ฐจ ๋ณด๊ณ ์ (0) | 2025.11.28 |
| [WIDA] 3ํ_2์ฐจ ๋ณด๊ณ ์ (0) | 2025.11.14 |
| [WIDA]2ํ_2์ฐจ๋ณด๊ณ ์ (1) | 2025.11.14 |
| [WIDA]1ํ_2์ฐจ๋ณด๊ณ ์ (0) | 2025.11.14 |