네. 분류 임계값이 바뀌면 같은 사례라도 양성·음성 예측이 달라질 수 있으므로 TP·FP·FN·TN과 그에 따른 정밀도·재현율도 다시 계산해야 합니다.

기존 임계값에서 집계한 혼동행렬만으로 다른 임계값의 새 지표를 알아낼 수는 없습니다. 개별 점수와 정답 라벨을 다시 비교해야 하며, 아래 8건은 직접 만든 연습 자료입니다.

임계값은 점수를 예측 라벨로 바꾸는 경계입니다

분류 모델은 각 사례에 점수(score)를 낼 수 있습니다. 이 점수가 양성인지 음성인지 결정하려면 경계값인 classification threshold를 정합니다. 점수가 경계보다 높은 사례를 양성으로 분류하는 예를 생각해 봅시다. 경계를 낮추면 기존보다 더 많은 사례가 양성 예측이 되고, 높이면 양성 예측 사례가 줄 수 있습니다. 따라서 임계값은 혼동행렬을 계산하기 전에 고정해야 할 조건입니다. 같은 모델을 썼다는 사실만으로 같은 TP·FP·FN·TN이 보장되지는 않습니다.

핵심은 경보가 실제로 흔한지 따지는 기저율 계산이 아닙니다. 임계값을 바꾸어 예측 결과 자체가 어떻게 변하는지 확인하는 문제입니다. #32의 FPR·FNR 글은 주어진 혼동행렬에서 실제 상태별 분모를 정확히 계산하고, 기저율 글은 실제 양성 비율이 정밀도에 미치는 영향을 풉니다. 이 연습은 동일한 사례 목록에 두 경계를 적용해 혼동행렬을 다시 만드는 데 초점을 둡니다.

같은 8건에 두 임계값을 적용해 봅니다

교육용으로 만든 작은 분류 자료에 실제 공격 4건과 정상 4건이 있다고 합시다. 각 사례에는 탐지기가 낸 점수와 사후 확인한 정답 라벨이 있습니다. 이번 예에서는 점수가 임계값과 정확히 같은 사례가 없도록 정했습니다. 그러면 경계에서 동점인 경우를 각 라이브러리가 어떻게 처리하는지 추가 가정하지 않고 두 결과를 비교할 수 있습니다.

직접 만든 사례별 점수와 정답 라벨
사례실제 라벨점수
가공격0.93
나공격0.81
다공격0.72
라공격0.44
마정상0.88
바정상0.62
사정상0.31
아정상0.15

먼저 threshold 0.50을 적용합니다. 점수가 0.50보다 큰 공격은 가·나·다 세 건이라 TP=3이고, 공격인데 음성으로 남은 라는 FN=1입니다. 정상 중 점수가 0.50보다 큰 마·바 두 건은 FP=2이며, 사·아는 TN=2입니다. 따라서 정밀도는 TP/(TP+FP)=3/(3+2)=60%, 재현율은 TP/(TP+FN)=3/(3+1)=75%입니다. 이 네 칸은 실제 라벨과 예측 라벨을 교차해 센 결과입니다.

같은 점수와 정답을 그대로 두고 threshold만 0.80으로 올려 보겠습니다. 공격 가·나의 두 건만 양성 예측이 되므로 TP=2, 공격 다·라는 놓쳐 FN=2입니다. 정상 가운데 마의 점수 0.88은 경계보다 높아 FP=1이고, 나머지 정상 세 건은 TN=3입니다. 정밀도는 2/(2+1), 약 66.7%이고 재현율은 2/(2+2)=50%입니다. 양성 예측 수가 줄면서 여기서는 정밀도가 높아지고 재현율이 낮아졌지만, 이 결과를 모든 모델과 자료에서 늘 성립하는 법칙으로 단정하지는 마세요. 실제 값은 점수 분포와 정답에 따라 달라집니다.

임계값별 혼동행렬을 다시 세는 순서

  1. 비교할 자료의 사례별 점수와 확인된 실제 라벨을 같은 기준으로 고정합니다.
  2. 각 행의 점수를 새 임계값과 비교해 예측 양성 또는 예측 음성을 표시합니다.
  3. 실제 라벨과 예측 라벨을 교차해 TP·FP·FN·TN을 다시 셉니다.
  4. 새 혼동행렬에서 정밀도 TP/(TP+FP), 재현율 TP/(TP+FN) 등 필요한 지표를 계산합니다.
  5. 자료 범위, positive class, 임계값과 점수 동률 처리 조건을 결과 옆에 기록합니다.

운영 환경에서는 임계값을 바꾸는 이유도 함께 봅니다. 정상 메일을 공격으로 분류하는 비용과 공격을 놓치는 비용이 다를 수 있고, 담당자가 조사할 수 있는 경보량에도 한계가 있습니다. 그렇다고 표본에서 계산한 정밀도 하나로 실제 배포 정책을 자동 결정할 수 있는 것은 아닙니다. 평가 자료가 현재 입력 분포를 대표하는지, 라벨이 정확한지, 점수 기준이 비교 가능한지 확인해야 합니다. 여기의 8건은 절차를 손으로 따라가기 위한 작은 예시일 뿐 제품 성능의 근거가 아닙니다.

예전 혼동행렬에서 새 임계값 지표를 추측하지 않습니다

흔한 실수는 모델이 같으니 이전 TP·FP·FN·TN도 그대로 쓸 수 있다고 생각하는 것입니다. 하지만 혼동행렬은 모델 이름만으로 정해지지 않습니다. 평가 사례, 정답 라벨, 양성 클래스, 점수에서 라벨로 바꾸는 임계값이 모두 결과에 관여합니다. 이전 임계값에서 집계한 네 숫자만 있고 각 사례의 점수는 없다면, 어떤 사례가 새 경계를 넘는지 알 수 없습니다. 따라서 그 집계표만으로 새 임계값의 혼동행렬이나 정밀도를 정확하게 복원할 수 없습니다. 점수별 정답 자료 또는 새 조건에서 다시 얻은 예측이 필요합니다.

또 threshold를 낮추면 무조건 더 많은 공격을 찾아내고 오탐만 늘어난다고 단정하기보다, 실제 평가 자료에 새 경계를 적용해 두 변화량을 측정해야 합니다. 이론적인 경향은 유용한 직관이지만 구체적인 지표 값은 임계값을 통과하는 공격과 정상 사례가 각각 몇 개인지에 달려 있습니다. 보고서에는 어떤 데이터와 경계에서 나온 지표인지 적어야 서로 다른 평가 결과를 잘못 비교하지 않습니다.

경계를 옮겼을 때 무엇을 다시 계산하나요

회상 연습: 위 여덟 사례에 threshold 0.80을 적용하면 실제 공격 중 몇 건이 TP이고, 정상 중 몇 건이 FP인가요? 정밀도와 재현율은 각각 얼마인가요? 답은 TP=2, FN=2, FP=1, TN=3입니다. 정밀도는 2/3, 약 66.7%이고 재현율은 2/4=50%입니다. 더 중요한 조건 판단은 이전 0.50 혼동행렬만 주어진 경우 이 값을 정확히 계산할 수 있는가입니다. 개별 점수나 새 threshold에서의 예측이 없다면 계산할 수 없습니다. 점수와 정답은 직접 작성한 학습 예시이며 실제 시험 문항이나 집중 180제 수록 문항을 뜻하지 않습니다. 정보보안기사 집중 180제 구성은 /decks/security#focus-180에서 확인할 수 있습니다.

정답을 가리고 확인해 보세요

이 글을 위해 만든 학습 예시이며 공식 기출문제나 판매 카드의 인용이 아닙니다.

실제 공격 점수는 0.93, 0.81, 0.72, 0.44이고 실제 정상 점수는 0.88, 0.62, 0.31, 0.15다. 점수가 threshold보다 크면 양성으로 예측한다. threshold 0.80에서 TP·FP·FN·TN과 precision·recall을 계산하라. threshold 0.50의 혼동행렬만으로 0.80의 결과를 복원할 수 있는가?

정답과 해설 확인threshold 0.80에서는 공격 0.93·0.81 두 건이 TP, 공격 0.72·0.44 두 건이 FN입니다. 정상 0.88은 FP, 나머지 정상 세 건은 TN이므로 TP=2, FP=1, FN=2, TN=3입니다. Precision=2/(2+1)≈66.7%, recall=2/(2+2)=50%입니다. 이전 0.50 혼동행렬 네 숫자만으로는 새 threshold에서 어떤 개별 사례가 양성으로 바뀌는지 알 수 없어 정확히 복원할 수 없습니다.

카드 질문에 실제 라벨과 점수를 모두 제시했으므로 본문 표 없이도 계산할 수 있습니다. 각 점수를 주어진 threshold와 비교해 예측 라벨을 붙이고, 실제 라벨과 교차해 혼동행렬을 다시 셉니다. 본문 예시와 마찬가지로 threshold와 같은 점수는 포함하지 않았습니다.

이 주제의 회상 연습 이어가기