1. 두 오류를 따로 센다
정의: 혼동행렬(confusion matrix)은 실제 클래스와 판정을 교차해 센 표다. 이 장에서 실제 APS 고장을 1, 다른 부품 고장을 0으로 둔다.
| 판정 | 실제 APS: 1 | 실제 비APS: 0 |
|---|---|---|
| APS: 1 | TP, 맞힌 APS | FP, 오경보 |
| 비APS: 0 | FN, 미탐지 | TN, 맞힌 비APS |
정의: 오경보(false positive)는 실제 0을 1로 판정한 오류다. 미탐지(false negative)는 실제 1을 0으로 판정한 오류다. 정답 판정 비용을 0으로 놓고 두 오류의 단가를 각각 $c_{FP},c_{FN}$이라 하면 총비용은 다음과 같다.
$$C=c_{FP}FP+c_{FN}FN$$Scania 챌린지의 단가는 10과 500이다. 이는 두 오분류를 평가하는 상대 비용이다. 정비 작업비 전체, 예방한 고장 수 또는 현금 절감액으로 읽지 않는다. UCI 원자료 설명.
정확도는 $(TP+TN)/N$이다. 두 오류를 동일하게 한 건으로 세므로, 오류 비용이 다를 때 정확도가 높은 규칙이 비용도 낮다는 보장은 없다.
2. 비용에서 판정 기준을 도출한다
정의: 임계값(threshold)은 점수가 그 값 이상이면 1로 판정하는 경계다. 실제 APS 확률이 $p$이고 정답 판정 비용이 0이면 APS로 판정할 기대비용은 $(1-p)c_{FP}$, 비APS로 판정할 기대비용은 $pc_{FN}$이다.
$$ (1-p)c_{FP}\le pc_{FN}\quad\Longleftrightarrow\quad p\ge\frac{c_{FP}}{c_{FP}+c_{FN}} $$10과 500에서는 약 0.019608이다. 예를 들어 $p=0.01$이면 두 기대비용은 9.9와 5이고, $p=0.03$이면 9.7과 15다. 등호에서는 기대비용이 같다. 교재는 점수가 기준 이상이면 APS로 판정하는 규약을 사용한다.
이 식에는 점수가 실제 확률에 맞고, 두 오류의 단가가 기록마다 같으며, 정답 판정 비용이 0이라는 조건이 있다. 비용 비율만 바뀌면 기준을 다시 계산할 수 있지만, 분포가 바뀌면 확률의 적합성도 다시 확인해야 한다.
정답 판정에도 비용이 있으면
판정을 $a$, 실제 클래스를 $y$라 하고 비용을 $L(a,y)$로 쓰자. 두 행동의 기대비용을 직접 비교한다.
$$R(1)=(1-p)L(1,0)+pL(1,1),\qquad R(0)=(1-p)L(0,0)+pL(0,1)$$$A=L(1,0)-L(0,0)$, $B=L(0,1)-L(1,1)$가 양수이면 기준은 $A/(A+B)$다. 이 조건이 아니면 원래 두 기대비용을 비교해야 한다. 모든 대상에게 발생하는 검사비나 개입 성공률을 무시하고 FP·FN 공식에 숫자만 넣어서는 안 된다.
3. 학습·검증·테스트의 역할
| 자료 | 이 장의 크기 | 정하는 것 |
|---|---|---|
| 학습용 | 48,000건 | 중앙값과 모델 |
| 검증용 | 12,000건 | 주어진 비용에서 임계값 |
| 테스트 | 16,000건 | 고정된 규칙의 평가 |
정의: 층화 분할(stratified split)은 클래스별 비율을 유지해 표본을 나누는 방법이다. 원래 학습 파일의 APS 1,000건을 800건과 200건으로 나눈다. 이 분할이 시간 변화나 실제 운행 모집단을 대표한다는 뜻은 아니다.
결측값을 채울 중앙값은 모델 학습용에서만 계산한다. 검증과 테스트는 그 값을 받아 변환한다. 검증까지 합친 중앙값으로 학습하면 검증 입력의 정보가 학습 과정에 들어간다. scikit-learn의 정보 누출 설명.
테스트 성적을 보고 시드·모델·기준을 바꾸면 테스트가 선택에 사용된다. 미리 정한 여러 규칙을 함께 평가하는 것과, 그 결과를 보고 새 규칙을 만드는 것은 구분한다. 이 장은 모델을 검증 선택 뒤 재학습하지 않는다. 새 모델의 점수 분포가 달라지면 기존 임계값과 맞지 않을 수 있기 때문이다.
4. 검증에서 가능한 판정을 비교한다
점수가 $s_i$인 기록을 $s_i\ge t$로 판정한다고 하자. 검증 표본에서 판정은 관측된 점수를 지날 때만 바뀐다. 따라서 모든 서로 다른 점수와 두 극단을 후보로 쓰면 가능한 임계값 판정을 모두 비교할 수 있다. 같은 점수의 기록은 함께 바뀐다.
교재의 확률 후보 0은 전원 APS 판정이고, 무한대는 전원 비APS 판정이다. 음수도 가능한 일반 점수에는 전원 판정을 보장하는 더 작은 기준을 사용한다. 단일 변수 기준선은 음의 무한대를 사용한다.
$$\hat t\in\arg\min_{t\in\mathcal T} \{c_{FP}FP_{val}(t)+c_{FN}FN_{val}(t)\}$$후보를 오름차순으로 놓고 최소 비용인 마지막 후보를 고른다. 이는 동률에서 APS 판정 수가 적은 후보를 우선하는 규약이다. 이 선택은 검증 표본의 최솟값이며, 미래 기록에서의 최적값을 보장하지 않는다.
작은 범위의 등간격 격자만 사용한다면 결론은 그 격자 안의 최소값이다. 최솟값이 검색 끝에 붙으면 범위 밖과 전원 판정 여부를 점검해야 한다.
5. 높은 점수와 맞는 확률은 다르다
정의: 확률 보정(calibration)은 같은 예측 확률을 받은 집단의 실제 양성 비율이 그 확률과 일치하는 성질이다. 양성을 음성보다 높게 정렬하는 능력과 확률값 자체의 정확성은 다른 특성이다.
확률 구간별 평균 점수와 실제 비율을 비교할 수 있지만, 구간에 양성이 몇 건 없는 경우 표본 변동이 크다. 하나의 구간에서 비율이 두 배라고 해서 전체 확률을 두 배로 바꾸거나 경험적 임계값의 원인을 확정하지 않는다. 보정 모델을 추가하려면 별도의 학습·검증 설계가 필요하다.
검증과 테스트의 총비용 차이는 표본 크기, 클래스 비율, 기록 구성, 임계값 선택의 변동을 함께 반영한다. 검증 비용을 표본 수로 환산한 뒤 테스트와의 차이 전부를 과적합으로 설명하지 않는다.
6. 교재에서 제공하는 모델
LightGBM은 그래디언트 부스팅 결정 트리의 구현이다. 이전 단계의 손실을 줄이도록 트리를 순서대로 더한다. 출력 점수를 분류 기준에 적용하는 것이 이 장의 주제이며 모델 설정의 최적화가 주제는 아니다.
| 인자 | 제공값 | 뜻 |
|---|---|---|
| num_leaves | 15 | 트리의 최대 잎 수 |
| learning_rate | 0.03 | 각 트리를 더할 때의 반영 크기 |
| n_estimators | 800 | 부스팅 반복 수 |
| min_child_samples | 20 | 잎에 요구하는 표본 수 설정 |
| subsample / subsample_freq | 0.8 / 1 | 매 반복 행 표본 추출 |
| colsample_bytree | 0.8 | 트리별 입력 열 표본 비율 |
| random_state | 0 | 난수 시드 |
| n_jobs | 1 | 실행 스레드 수 |
| deterministic / force_col_wise | True / True | 재현성을 위한 계산 설정 |
| verbose | −1 | 로그 출력 억제 |
이 값은 제공 설정이며 5겹 교차검증에서 최적이었다는 근거를 제시한 것은 아니다. 같은 소프트웨어 버전과 환경을 사용하는 것이 재현에 유리하다. 익명화된 변수로 만든 분류 모델이므로 특정 부품의 고장 원인을 설명하는 모델로 해석하지 않는다.
교재: 5주차 교재 (Colab) · 랩: 같은 APS 자료의 비용 조건 비교