학습 자료는 그냥 표가 아니야
지도 학습 자료의 한 행은 하나의 사례고, 각 열은 그 사례를 바라보는 서로 다른 창이야. 어떤 열은 예측에 쓸 정보고, 어떤 열은 맞혀야 할 정답이며, 어떤 열은 사례를 구별하기 위한 식별자일 뿐이야. 이 역할을 섞으면 모델은 우리가 의도한 관계가 아니라 우연히 열린 뒷문을 배워. 자료 설계에서 어려운 일은 열을 많이 모으는 게 아니라 각 열의 책임을 정직하게 정하는 거야.
모든 열에 세 가지를 물어봐
- 이 값은 현실에서 무엇을 뜻해? 한 문장으로 설명할 수 없다면 아직 사용할 준비가 안 된 열이야. 이름만 보고 추측하면 몇 달 뒤 다른 뜻으로 쓰인 값을 발견하게 돼.
- 이 값은 언제 생겨? 예측한 뒤에야 생기는 값이라면 아무리 높은 성능을 내도 사용할 수 없어. 시간표를 그려서 예측 시점보다 앞에 있는지 확인해야 해.
- 정답을 몰래 품고 있지 않아? 해시된 식별자, 사건 뒤 상태값, 환불액, 취소 사유처럼 정답과 거의 같은 정보를 다른 이름으로 담은 열이 흔해.
식별자는 정보처럼 보여서 더 위험해
고객 번호나 상품 번호는 숫자로 되어 있어도 크기에 뜻이 없는 경우가 많아. 모델이 특정 번호를 외우면 검증 자료에서는 잘 맞을 수 있지만 새 고객에게는 아무 힘도 없어. 식별자를 특성으로 쓸지 말지는 자료가 나뉘는 방식과 함께 판단해야 해. 같은 고객의 행이 학습과 검증에 동시에 들어가면 번호 하나만으로도 사람을 알아볼 수 있거든.
열 감사표를 살아 있는 계약으로 만들어
열마다 의미, 역할, 생성 시점, 사용 여부, 누출 위험을 적은 작은 표를 만들어봐. 새 열이 들어올 때 이 칸을 채우지 않으면 학습 흐름에 들어가지 못하게 하는 거야. 이렇게 하면 열 감사표가 설명 문서에서 끝나지 않고 입력 스키마 역할을 해. 변경 전후를 비교하면 어떤 새 정보가 모델의 판단을 바꿨는지도 추적할 수 있어.
자료의 모양은 제품의 모양을 드러내
목표값을 만들기 위해 복잡한 사후 처리가 필요하거나, 대부분의 특성이 예측 뒤에 생긴다면 모델 문제가 아니라 제품 흐름이 아직 정리되지 않은 거야. 어떤 객체가 어느 순간 어떤 상태를 아는지 그려보면 경계가 보여. 머신러닝 자료도 결국 객체와 사건의 기록이야. 시간과 소유권을 무시한 열은 좋은 특성이 아니라 잘못된 상속이야. 모델 성능표보다 먼저 이 구조를 바로잡아야 해. 그래야 새 자료에도 버티는 모델이 돼.