문제의 이름이 평가 방법을 정해
머신러닝 프로젝트에서 첫 번째로 정할 건 알고리즘이 아니라 문제의 종류야. 무엇을 맞히려는지에 따라 목표값의 모양, 자료를 나누는 방법, 평가 지표, 비교할 기준선이 달라지거든. 이 선택을 대충 하면 뒤에서 아무리 정교하게 튜닝해도 엉뚱한 시험을 보게 돼. 문제의 종류는 분류표를 외우기 위한 이름이 아니라 실험이 정직한지 지키는 계약이야.
자주 만나는 일곱 가지
- 회귀는 가격, 수요, 지연 시간처럼 이어지는 숫자를 예측해.
- 이진 분류는 해지 여부나 사기 거래처럼 두 경우 중 하나를 다뤄. 결과는 보통 확률로 받아.
- 다중 분류는 여러 범주 가운데 하나를 고르는 문제야. 손글씨 숫자나 문의 유형이 여기 들어가.
- 다중 라벨 분류는 여러 꼬리표가 동시에 붙을 수 있어. 글의 주제 태그를 떠올리면 돼.
- 순위화는 검색 결과나 추천 목록처럼 무엇을 먼저 보여줄지 정해.
- 예측 시계열은 과거 흐름을 바탕으로 다음 주 수요나 용량을 내다봐.
- 이상 탐지는 평소와 다른 드문 패턴을 찾아. 기계 고장이나 의심 거래가 대표적이지.
화면의 모양에 속지 마
최종 화면에 예와 아니오가 나온다고 무조건 이진 분류인 건 아니야. 영업팀이 하루에 서른 명에게만 전화할 수 있다면 필요한 건 모든 고객의 해지 여부보다 전화할 순서일 수 있어. 다음 주 서버 용량을 정하려면 범주가 아니라 시간에 따른 수요를 예측해야 하지. 위험도를 0에서 1 사이로 매긴 뒤 비용에 맞춰 행동할 수도 있어. 사용자가 마지막에 보는 버튼이 아니라 시스템이 실제로 내려야 하는 결정을 보고 문제를 이름 붙여야 해.
이름을 잘못 붙이면 지표가 조용히 망가져
순위 문제를 분류 정확도로 재면 상위 서른 명을 제대로 골랐는지 알 수 없어. 시계열 자료를 무작위로 섞으면 미래 정보가 과거 학습에 흘러들어가. 희귀한 이상을 찾으면서 전체 정확도를 보면 아무것도 찾지 않는 모델이 우승할 수도 있지. 이런 실패는 코드가 깨지지 않아서 더 위험해. 숫자는 멀쩡하게 나오는데 질문과 답이 어긋난 상태거든.
한 문장으로 검산해봐
누구에게서, 무엇을, 어느 시점에 예측해서, 어떤 행동에 쓸지 한 문장으로 적어봐. 그 문장에서 필요한 출력이 숫자인지, 확률인지, 순서인지, 미래의 곡선인지 드러나야 해. 팀원 셋이 서로 다른 종류를 말한다면 모델을 만들기 전에 제품 결정을 먼저 맞춰야 해.