TIL(Today I Learned)
1️⃣실전 자동화 프로젝트 (7)
리키지 발견부터 Boruta 도입까지
문제 발견
피처 선택에 쓴 RepeatedStratifiedKFold(seed=42)의 첫 5-fold가, 성능 평가에 쓴 StratifiedKFold(seed=42)와 100% 동일했다.
→ 피처를 고를 때 본 데이터를 성능 평가에도 그대로 재사용 (데이터 누수)
정직하게 재측정 (Nested CV)
outer-test를 피처 선택에서 완전히 배제하고 재평가:
| 제품 | 기존(리키지) | 정직(Nested CV) | 차이 |
|---|---|---|---|
| A_31 | 0.7990 | 0.6536 | -14.5%p |
| TO_31 | 0.6972 | 0.6305 | -6.7%p |
(계산 비용 문제로 3모델 Union 대신 LGBM 단일모델로 검증)
근본 원인
- 리키지 외에도 피처 채택 기준(
positive_ratio≥0.6)이 통계적 근거 없는 휴리스틱 - Union(3모델 합집합)은 이 느슨한 기준을 3배로 관대하게 만들 뿐
해결책
- Boruta: 임계값을 이항검정 기반 formal한 방법으로 교체 (섞은 가짜 피처 대비 유의성 검정)
- 부수 효과: Boruta 기본 모델(Random Forest)이 최종 후보 모델 어디에도 안 속해서, Union을 도입했던 이유(순환논리)도 자동 해결
- 덴드로그램 클러스터링: 상관 0.7 초과 피처를 군집화해 대표 1개만 채택 → 상관 잔존 문제 완화
남은 한계
- TO_31 클래스 불균형(8/83/9%), 소표본(A_31 316행)은 어떤 방법으로도 완전 해결 불가
2️⃣멘토링 노트
팀 질문
- 멘토님은 프로젝트 중간에 발표할 때 어떤 부분을 중요하게 생각하면서 준비하시는지
- 피처 선택을 stratified k-fold와 permutation importance 기반으로 하고 덴드로그램을 반영을 했더니 피처 컬럼수가 너무 적어져서 과적합 문제가 일어나고 있음. (현재 상황: 컬럼 2,881개 → 35~36개로 축소, 데이터 행 수가 900개뿐이라 과적합이 계속 발생.)→ 이에 대한 해결방안은 무엇인가요?
- 만약 기업에서 분석해야 되는데 비식별 컬럼으로 주어지면 어떻게 접근하는지요? (사실 우리 상황이랑 똑같아요)
- 요즘 멘토님이 생각하는 취준생들이 준비하면 좋은 것들은 무엇인가요?
- 동등한 비율로 폴드별로 나눴을때 성적 차이가 심한데, 원인과 해결 방법은 무엇인가요?
멘토님 코멘트
- 지금 결과가 중요한게 아닌 해온 과정이 중요하므로 과정에 대한 언급이 중요해보임
/덴드로그램(군집화) 컬럼수가 너무 적어서 과적합문제가 일어나서 이걸 어떻게 해결했는지/현재 어디까지 해왔고, 왜 이런 전처리를 했고 왜 이런 모델링, 튜닝을 했는지, 전처리를 위한 기법을 썼다 (근거에 기반한 스토리라인을 보여주는 형식) - 덴드로 그램 기반 군집화 접근 방식은 매우 좋지만, 피처를 너무 많이 잘라내, 과도하게 줄어든 피처로 모델의 표현력(차원 경계면)이 사라짐. 따라서, 임계값(cut-off/거리 임계값)을 낮춰서 군집을 더 촘촘하게 나누고, 군집 수를 최소 50개까지 늘려서 성능(스코어)을 비교해볼 것.
2-1. 과적합 잡으려고 컬럼을 줄인건데 컬럼을 늘림으로서 과적합을 감수할 이유로는 뭐가있을까요?
-> **모델의 차원 경계면이나 표현력이 없어진다. 군집의 밀집도를 결정할 수 있는 입계값이 있는데**
**그것을 좀더 촘촘히 잘라봐야할것**이다, 피처 압축 시 PCA(주성분 분석) 기반의 압축 방식을 적용해
볼 것을 권장함.- 현업에서는 기업 간 보안 조약으로 인해 비식별 칼럼이 없으며 전면 공개되므로,
- 통계로 추측하던지, 차원축소 위주로 접근해야 함.
💡 느낀점
성능 숫자가 잘 나왔다고 안심하면 안 된다. 0.799라는 숫자는 코드가 틀리지 않았어도 "무엇을 재는지"가 틀리면 의미가 없었다.
seed를 고정하는 것이 재현성엔 좋지만, 서로 다른 단계에서 같은 seed를 재사용하면 오히려 누수를 숨길 수 있다는 걸 처음 알았다. 이론적으로 그럴듯한 방법(Union)"과 "통계적으로 검증된 방법(Boruta)"은 다르다. 새롭게 구성한 파이프라인을 바탕으로 피처선택 과정을 거쳐 높은 성적의 모델을 구성하는 것이 목표이다.
'최종 프로젝트' 카테고리의 다른 글
| Chapter.9 최종 실전 자동화 프로젝트 (10) (1) | 2026.07.09 |
|---|---|
| Chapter.9 최종 실전 자동화 프로젝트 (9) (0) | 2026.07.08 |
| Chapter.9 최종 실전 자동화 프로젝트 (7) (0) | 2026.07.02 |
| Chapter.9 최종 실전 자동화 프로젝트 (6) (0) | 2026.07.01 |
| Chapter.9 최종 실전 자동화 프로젝트 (5) (0) | 2026.06.30 |