dataset도 계약이야
supervised dataset은 그냥 테이블이 아냐. 각 row가 example, feature는 prediction 시점에 알려진 정보, label은 train 중에 모델이 배우도록 허용된 답이야. dataset 설계의 가장 어려운 부분은 어느 column이 어떤 역할인지 정직하게 정하는 거.
column마다 던질 세 질문
- 이 column이 비즈니스적으로 뭘 의미하나? 한 문장으로 못 적으면 미래의 버그.
- 이 값은 언제 알려지나? prediction 후에만 존재하면 leakage.
- 혹시 target을 우연히 인코딩하고 있지는 않나? hash-encoded ID, post-event status, 지원 통화 카운트, 환불 금액 — 흔한 범인들.
스키마를 가드로
작은 column-audit DataFrame은 고전 ML에서 가장 leverage 큰 습관 중 하나야. 각 column을 feature / label / identifier / leakage risk / post-event metadata로 마킹하게 강제해. 일단 이게 있으면, 새 column이 들어올 때 역할을 골라야만 pipeline에 들어와.