특이도

IT 위키

특이도(Specificity)는 실제 음성인 데이터 중에서 모델이 음성으로 올바르게 예측한 비율을 나타내는 분류 모델의 성능 평가 지표이다. 주로 질병 진단, 이상 탐지, 스팸 탐지, 보안 탐지 등에서 실제 음성을 얼마나 잘 걸러내는지를 평가할 때 사용된다.

특이도는 이진 분류 문제에서 실제로 음성인 대상을 모델이 얼마나 정확하게 음성으로 판별했는지를 나타낸다.

예를 들어 질병 진단 모델에서 음성은 "질병이 없는 사람"을 의미할 수 있다. 이때 특이도가 높다는 것은 실제로 질병이 없는 사람을 정상으로 잘 판별한다는 뜻이다.

특이도는 재현율과 함께 이진 분류 모델의 성능을 해석할 때 중요하다. 재현율이 실제 양성을 얼마나 잘 찾아내는지를 나타낸다면, 특이도는 실제 음성을 얼마나 잘 제외하는지를 나타낸다.

특이도는 실제 음성 중에서 음성으로 올바르게 예측한 비율이다.

특이도 = 실제 음성 중 음성으로 올바르게 예측한 수 / 전체 실제 음성 수

혼동 행렬 기준으로 표현하면 다음과 같다.

특이도 = TN / (TN + FP)

여기서 각 항목의 의미는 다음과 같다.

기호 의미 설명
TN True Negative 실제 음성을 음성으로 올바르게 예측
FP False Positive 실제 음성을 양성으로 잘못 예측

혼동 행렬과의 관계

[편집 | 원본 편집]

특이도는 혼동 행렬에서 실제 음성 행을 기준으로 계산한다.

실제 \ 예측 양성 예측 음성 예측
실제 양성 TP FN
실제 음성 FP TN

특이도는 실제 음성인 FP와 TN 중에서 TN이 차지하는 비율이다.

특이도 = TN / (FP + TN)

이진 분류 모델의 결과가 다음과 같다고 하자.

구분 개수
True Positive 40
True Negative 50
False Positive 10
False Negative 5

특이도는 실제 음성 데이터인 TN과 FP를 기준으로 계산한다.

특이도 = TN / (TN + FP)
특이도 = 50 / (50 + 10)
특이도 = 50 / 60
특이도 = 0.8333

따라서 이 모델의 특이도는 약 83.3%이다.

특이도가 높다는 것은 실제 음성인 대상을 양성으로 잘못 판단하는 경우가 적다는 뜻이다.

즉, 특이도는 다음 질문에 답하는 지표이다.

실제로 음성인 것들 중에서 모델이 얼마나 잘 음성으로 판별했는가?

예를 들어 질병 진단에서 특이도가 높으면 실제로 질병이 없는 사람을 질병이 있다고 오진하는 경우가 줄어든다.

위양성률과의 관계

[편집 | 원본 편집]

특이도는 위양성률(False Positive Rate)과 반대되는 개념이다.

위양성률 = FP / (FP + TN)
특이도 = TN / (TN + FP)

따라서 다음 관계가 성립한다.

특이도 = 1 - 위양성률
위양성률 = 1 - 특이도
구분 의미
특이도 실제 음성 중 음성으로 맞힌 비율 TN / (TN + FP)
위양성률 실제 음성 중 양성으로 잘못 예측한 비율 FP / (FP + TN)

재현율과의 차이

[편집 | 원본 편집]

재현율은 실제 양성 중에서 양성으로 올바르게 예측한 비율이다. 반면 특이도는 실제 음성 중에서 음성으로 올바르게 예측한 비율이다.

구분 영어 기준
재현율 Sensitivity, Recall 실제 양성 TP / (TP + FN)
특이도 Specificity 실제 음성 TN / (TN + FP)

재현율은 양성을 잘 찾아내는 능력이고, 특이도는 음성을 잘 배제하는 능력이다.

민감도와 특이도

[편집 | 원본 편집]

재현율은 의료 통계나 진단 검사 분야에서 민감도(Sensitivity)라고도 부른다.

민감도와 특이도는 진단 검사의 성능을 평가할 때 함께 사용된다.

구분 의미 관심 대상
민감도 실제 양성을 양성으로 판별하는 능력 질병이 있는 사람을 놓치지 않는 능력
특이도 실제 음성을 음성으로 판별하는 능력 질병이 없는 사람을 오진하지 않는 능력

정확도와의 차이

[편집 | 원본 편집]

정확도는 전체 예측 중 맞힌 비율이다. 반면 특이도는 실제 음성에 대해서만 계산한다.

구분 설명
정확도 전체 예측 중 올바른 예측 비율 (TP + TN) / (TP + TN + FP + FN)
특이도 실제 음성 중 음성으로 맞힌 비율 TN / (TN + FP)

정확도는 전체 성능을 직관적으로 보여주지만, 클래스 불균형이 심한 경우에는 모델 성능을 왜곡할 수 있다. 특이도는 음성 클래스에 대한 모델의 판별 능력을 별도로 보여준다.

정밀도와의 차이

[편집 | 원본 편집]

정밀도는 양성으로 예측한 것 중 실제 양성의 비율이다. 특이도는 실제 음성 중 음성으로 맞힌 비율이다.

구분 설명
정밀도 양성 예측 중 실제 양성 비율 TP / (TP + FP)
특이도 실제 음성 중 음성 예측 비율 TN / (TN + FP)

정밀도는 양성 예측의 신뢰도를 나타내고, 특이도는 실제 음성을 잘 걸러내는 능력을 나타낸다.

특이도는 다음과 같은 분야에서 활용된다.

의료 진단

[편집 | 원본 편집]

질병이 없는 사람을 질병이 있다고 잘못 판단하는 오진을 줄이는 데 중요하다.

예:

  • 암 검진
  • 감염병 검사
  • 유전 질환 검사
  • 건강검진 판정

스팸 탐지

[편집 | 원본 편집]

정상 메일을 스팸으로 잘못 분류하지 않는 능력을 평가할 수 있다.

사기 탐지

[편집 | 원본 편집]

정상 거래를 사기 거래로 잘못 판단하는 비율을 줄이는 데 중요하다.

침입 탐지

[편집 | 원본 편집]

정상 트래픽이나 정상 행위를 공격으로 잘못 탐지하는 오탐을 줄이는 데 활용된다.

품질 검사

[편집 | 원본 편집]

정상 제품을 불량으로 잘못 판정하는 경우를 줄이는 데 사용된다.

특이도가 중요한 경우

[편집 | 원본 편집]

특이도는 위양성, 즉 False Positive를 줄이는 것이 중요한 상황에서 특히 중요하다.

예를 들어 다음과 같은 경우 특이도가 중요하다.

  • 정상 사용자를 공격자로 오탐하면 서비스 이용에 불편이 큰 경우
  • 정상 거래를 사기 거래로 오탐하면 고객 불만이 커지는 경우
  • 정상 제품을 불량으로 오판하면 폐기 비용이 증가하는 경우
  • 질병이 없는 사람을 질병이 있다고 판정하면 추가 검사 비용과 심리적 부담이 큰 경우

특이도와 임계값

[편집 | 원본 편집]

이진 분류 모델은 보통 양성일 확률을 출력하고, 임계값을 기준으로 양성 또는 음성을 결정한다.

예측 확률 >= 임계값 → 양성
예측 확률 < 임계값 → 음성

임계값을 높이면 양성으로 예측하는 기준이 엄격해진다. 이 경우 FP가 줄어들 수 있으므로 특이도는 높아지는 경향이 있다.

반대로 임계값을 낮추면 양성으로 예측하는 대상이 늘어나므로 FP가 증가하고 특이도가 낮아질 수 있다.

민감도와 특이도의 trade-off

[편집 | 원본 편집]

민감도와 특이도는 서로 trade-off 관계를 가질 수 있다.

  • 민감도를 높이려면 양성을 더 많이 잡아내야 한다.
  • 이 과정에서 실제 음성을 양성으로 잘못 판단하는 FP가 늘어날 수 있다.
  • FP가 늘어나면 특이도는 낮아질 수 있다.

반대로 특이도를 높이기 위해 양성 판정 기준을 엄격하게 하면 실제 양성을 놓치는 FN이 늘어나 민감도가 낮아질 수 있다.

ROC 곡선과의 관계

[편집 | 원본 편집]

ROC 곡선은 다양한 임계값에서 민감도위양성률의 관계를 나타낸 그래프이다.

ROC 곡선에서 사용되는 축은 일반적으로 다음과 같다.

지표
y축 민감도, 재현율, True Positive Rate TP / (TP + FN)
x축 위양성률, False Positive Rate FP / (FP + TN)

특이도와 위양성률은 다음 관계를 가지므로, ROC 곡선은 특이도와도 밀접하게 관련된다.

위양성률 = 1 - 특이도

PR 곡선과의 차이

[편집 | 원본 편집]

PR 곡선은 정밀도와 재현율의 관계를 나타내는 그래프이다.

ROC 곡선은 민감도와 위양성률을 사용하므로 특이도와 관련이 깊다. 반면 PR 곡선은 양성 클래스 예측 성능을 더 직접적으로 보여준다.

불균형 데이터에서는 ROC-AUC보다 PR-AUC가 더 유용한 경우도 있다.

특이도와 오탐

[편집 | 원본 편집]

보안이나 이상 탐지에서는 FP를 오탐이라고 부르는 경우가 많다.

특이도가 낮으면 오탐이 많다는 의미가 될 수 있다.

예:

  • 정상 사용자를 공격자로 탐지
  • 정상 거래를 사기 거래로 탐지
  • 정상 메일을 스팸으로 탐지
  • 정상 서버 요청을 침입으로 탐지

오탐이 많으면 운영자가 경고를 신뢰하지 않게 되는 경보 피로가 발생할 수 있다.

예시: 질병 진단

[편집 | 원본 편집]

어떤 진단 검사에서 실제로 질병이 없는 사람이 100명이고, 이 중 95명을 정상으로 판정하고 5명을 질병 있음으로 잘못 판정했다고 하자.

TN = 95
FP = 5

특이도는 다음과 같다.

특이도 = 95 / (95 + 5)
특이도 = 0.95

즉, 이 검사의 특이도는 95%이다.

이는 질병이 없는 사람을 정상으로 잘 판정하는 능력이 높다는 뜻이다.

Python 예시

[편집 | 원본 편집]

scikit-learn에서는 특이도를 직접 계산하는 함수가 기본 지표명으로 제공되지 않는 경우가 많으므로, 혼동 행렬에서 TN과 FP를 구해 계산할 수 있다.

from sklearn.metrics import confusion_matrix

y_true = [1, 1, 0, 0, 0, 1]
y_pred = [1, 0, 0, 0, 1, 1]

tn, fp, fn, tp = confusion_matrix(y_true, y_pred).ravel()

specificity = tn / (tn + fp)
print(specificity)

위 예시에서 실제 음성 중 음성으로 맞힌 비율이 특이도이다.

특이도의 장점은 다음과 같다.

  • 실제 음성 클래스에 대한 판별 능력을 확인할 수 있다.
  • False Positive를 줄이는 관점에서 유용하다.
  • 의료 진단, 보안 탐지, 사기 탐지 등에서 중요하다.
  • 민감도와 함께 모델의 균형을 평가할 수 있다.
  • ROC 분석과 연결하여 해석할 수 있다.

특이도의 한계는 다음과 같다.

  • 양성 클래스를 얼마나 잘 찾는지는 보여주지 않는다.
  • 특이도만 높고 민감도가 낮은 모델은 실제 양성을 많이 놓칠 수 있다.
  • 클래스 불균형 문제를 완전히 해결하지는 못한다.
  • 임계값에 따라 값이 크게 달라질 수 있다.
  • 단독 지표로 모델 전체 성능을 평가하기 어렵다.

관련 지표 비교

[편집 | 원본 편집]
지표 의미
정확도 전체 예측 중 맞힌 비율 (TP + TN) / (TP + TN + FP + FN)
정밀도 양성 예측 중 실제 양성 비율 TP / (TP + FP)
재현율 실제 양성 중 양성으로 맞힌 비율 TP / (TP + FN)
특이도 실제 음성 중 음성으로 맞힌 비율 TN / (TN + FP)
위양성률 실제 음성 중 양성으로 잘못 예측한 비율 FP / (FP + TN)

학습 관점

[편집 | 원본 편집]

특이도는 혼동 행렬에서 TN과 FP를 기준으로 계산하는 지표이므로, 혼동 행렬과 함께 학습하는 것이 중요하다.

학습할 때는 다음을 중심으로 정리한다.

  • 특이도의 정의
  • 특이도의 계산식
  • TN과 FP의 의미
  • 민감도와의 차이
  • 재현율과의 관계
  • 위양성률과의 관계
  • ROC 곡선과의 관계
  • 임계값 변화에 따른 특이도 변화
  • 오탐을 줄이는 상황에서의 활용

시험 포인트

[편집 | 원본 편집]
  • 특이도는 실제 음성 중 음성으로 올바르게 예측한 비율이다.
  • 특이도는 TN / (TN + FP)로 계산한다.
  • 특이도는 Specificity라고 한다.
  • 특이도는 실제 음성을 잘 걸러내는 능력을 나타낸다.
  • 민감도는 실제 양성을 잘 찾아내는 능력을 나타낸다.
  • 민감도는 TP / (TP + FN)으로 계산한다.
  • 특이도와 위양성률은 서로 보완 관계이다.
  • 위양성률은 FP / (FP + TN)으로 계산한다.
  • 위양성률 = 1 - 특이도이다.
  • ROC 곡선의 x축은 위양성률이며, 이는 1 - 특이도이다.
  • 특이도가 높으면 실제 음성을 양성으로 잘못 판단하는 경우가 적다.
  • 특이도만 높고 민감도가 낮으면 실제 양성을 많이 놓칠 수 있다.

같이 보기

[편집 | 원본 편집]