정확도

IT 위키

정확도(Accuracy)는 전체 예측 중에서 올바르게 예측한 비율을 나타내는 분류 모델의 성능 평가 지표이다. 머신러닝데이터과학에서 분류 모델이 얼마나 많은 샘플을 맞혔는지 직관적으로 확인할 때 사용된다.

정확도는 분류 문제에서 가장 기본적으로 사용되는 성능 지표이다. 전체 데이터 중 모델이 정답을 맞힌 비율을 의미한다.

예를 들어 100개의 데이터를 분류했을 때 90개를 올바르게 예측했다면 정확도는 90%이다.

정확도는 이해하기 쉽고 계산이 간단하지만, 클래스 분포가 불균형한 데이터에서는 모델 성능을 제대로 반영하지 못할 수 있다. 따라서 정밀도, 재현율, F1 점수, 혼동 행렬 등과 함께 해석하는 것이 중요하다.

정확도는 전체 예측 건수 중 정답을 맞힌 건수의 비율이다.

정확도 = 올바르게 예측한 건수 / 전체 예측 건수

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

정확도 = (TP + TN) / (TP + TN + FP + FN)

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

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

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

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

정확도는 다음과 같이 계산한다.

정확도 = (40 + 50) / (40 + 50 + 5 + 5)
정확도 = 90 / 100
정확도 = 0.9

즉, 이 모델의 정확도는 90%이다.

혼동 행렬과의 관계

[편집 | 원본 편집]

정확도는 혼동 행렬에서 대각선에 해당하는 올바른 예측의 비율이다.

이진 분류의 혼동 행렬은 다음과 같이 나타낼 수 있다.

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

정확도는 TP와 TN을 합한 값을 전체 샘플 수로 나눈 값이다.

정확도의 장점은 다음과 같다.

  • 계산이 간단하다.
  • 의미가 직관적이다.
  • 전체적인 예측 성공률을 쉽게 파악할 수 있다.
  • 클래스 분포가 균형 잡힌 데이터에서 유용하다.
  • 여러 모델의 기본 성능 비교에 사용할 수 있다.

정확도의 가장 큰 한계는 불균형 데이터에서 성능을 왜곡할 수 있다는 점이다.

예를 들어 전체 데이터의 95%가 정상이고 5%만 이상 거래인 데이터가 있다고 하자. 모델이 모든 데이터를 정상으로 예측하면 정확도는 95%가 된다.

그러나 이 모델은 실제로 중요한 이상 거래를 하나도 탐지하지 못한다.

전체 데이터: 1000개
정상 데이터: 950개
이상 거래: 50개

모델 예측: 모두 정상
정확도 = 950 / 1000 = 95%

이 경우 정확도는 높지만 좋은 모델이라고 보기 어렵다.

불균형 데이터에서의 문제

[편집 | 원본 편집]

불균형 데이터에서는 다수 클래스를 맞히는 것만으로 높은 정확도를 얻을 수 있다.

대표적인 사례는 다음과 같다.

  • 사기 거래 탐지
  • 질병 진단
  • 침입 탐지
  • 불량품 탐지
  • 스팸 탐지
  • 이탈 고객 예측

이러한 문제에서는 양성 클래스나 희소 클래스의 탐지가 중요하므로 정확도만으로 모델을 평가하면 안 된다.

정밀도와의 차이

[편집 | 원본 편집]

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

구분 설명
정확도 전체 예측 중 맞힌 비율 (TP + TN) / (TP + TN + FP + FN)
정밀도 양성 예측 중 실제 양성의 비율 TP / (TP + FP)

정확도는 전체 예측 결과를 본다. 반면 정밀도는 모델이 양성이라고 예측한 결과가 얼마나 정확한지를 본다.

재현율과의 차이

[편집 | 원본 편집]

재현율은 실제 양성 중 모델이 양성으로 맞힌 비율이다.

구분 설명
정확도 전체 예측 중 맞힌 비율 (TP + TN) / (TP + TN + FP + FN)
재현율 실제 양성 중 양성으로 맞힌 비율 TP / (TP + FN)

재현율은 놓치면 안 되는 대상을 얼마나 잘 찾아냈는지를 나타낸다. 질병 진단이나 침입 탐지처럼 누락 비용이 큰 문제에서는 재현율이 중요할 수 있다.

F1 점수와의 관계

[편집 | 원본 편집]

F1 점수는 정밀도와 재현율의 조화평균이다.

정확도는 전체 정답률을 보는 반면, F1 점수는 양성 클래스 탐지 성능을 더 중점적으로 본다.

따라서 불균형 데이터에서는 정확도보다 F1 점수가 더 적절한 평가 지표가 될 수 있다.

다중 분류에서의 정확도

[편집 | 원본 편집]

정확도는 이진 분류뿐 아니라 다중 분류에서도 사용할 수 있다.

다중 분류에서는 전체 샘플 중 예측 클래스가 실제 클래스와 일치한 비율로 계산한다.

예를 들어 손글씨 숫자 분류에서 1000개 이미지 중 930개를 올바르게 분류했다면 정확도는 93%이다.

정확도 = 올바르게 분류한 샘플 수 / 전체 샘플 수

정확도와 오차율

[편집 | 원본 편집]

정확도와 오차율은 서로 반대되는 개념이다.

오차율 = 1 - 정확도
정확도 = 1 - 오차율

예를 들어 정확도가 0.9이면 오차율은 0.1이다.

구분 의미
정확도 맞힌 비율
오차율 틀린 비율

정확도는 다음과 같은 상황에서 활용된다.

  • 분류 모델의 기본 성능 확인
  • 모델 간 성능 비교
  • 학습 과정에서 성능 추적
  • 클래스 분포가 비교적 균형 잡힌 데이터 평가
  • 다중 분류 문제의 전체 정답률 확인

사용이 적절한 경우

[편집 | 원본 편집]

정확도는 다음과 같은 경우에 적절하다.

  • 클래스 비율이 비교적 균형적일 때
  • 모든 오분류 비용이 비슷할 때
  • 전체적인 예측 성공률이 중요한 경우
  • 모델의 대략적인 성능을 빠르게 비교할 때

예를 들어 고양이와 강아지 이미지가 비슷한 비율로 있는 분류 문제에서는 정확도가 유용할 수 있다.

사용에 주의해야 하는 경우

[편집 | 원본 편집]

정확도만 사용하면 위험한 경우는 다음과 같다.

  • 클래스 불균형이 심한 경우
  • 양성 클래스 탐지가 중요한 경우
  • False Positive와 False Negative의 비용이 다른 경우
  • 희귀 사건 탐지 문제
  • 의료 진단, 사기 탐지, 보안 탐지 문제

이 경우에는 정밀도, 재현율, F1 점수, ROC-AUC, PR-AUC 등을 함께 고려해야 한다.

평가 지표 비교

[편집 | 원본 편집]
지표 의미 주로 유용한 상황
정확도 전체 예측 중 맞힌 비율 클래스가 균형적일 때
정밀도 양성 예측 중 실제 양성 비율 오탐을 줄이는 것이 중요할 때
재현율 실제 양성 중 탐지 성공 비율 미탐을 줄이는 것이 중요할 때
F1 점수 정밀도와 재현율의 조화평균 정밀도와 재현율을 균형 있게 볼 때
ROC-AUC 여러 임계값에서 분류 성능을 종합 평가 이진 분류 모델 비교

예측 임계값과 정확도

[편집 | 원본 편집]

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

예:

예측 확률 >= 0.5 → 양성
예측 확률 < 0.5 → 음성

임계값을 바꾸면 TP, TN, FP, FN이 달라지고, 정확도도 달라질 수 있다.

따라서 정확도는 모델 자체뿐 아니라 분류 임계값의 영향을 받는다.

Python 예시

[편집 | 원본 편집]

scikit-learn에서는 `accuracy_score` 함수를 사용하여 정확도를 계산할 수 있다.

from sklearn.metrics import accuracy_score

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

acc = accuracy_score(y_true, y_pred)
print(acc)

위 예시에서는 5개 중 4개를 맞혔으므로 정확도는 0.8이다.

관련 개념 비교

[편집 | 원본 편집]

정확도와 모델 성능

[편집 | 원본 편집]

정확도는 모델 성능을 나타내는 하나의 지표일 뿐이다. 정확도가 높다고 해서 항상 좋은 모델은 아니다.

특히 클래스 불균형이 있거나 오분류 비용이 서로 다르면 정확도만으로 모델을 평가하기 어렵다.

정확도와 정확성

[편집 | 원본 편집]

일상어로는 정확도와 정확성이 비슷하게 쓰이지만, 데이터과학에서는 정확도는 분류 모델 평가 지표인 Accuracy를 가리키는 경우가 많다.

정확도와 정밀도

[편집 | 원본 편집]

한국어 표현상 정확도와 정밀도는 혼동되기 쉽다. 그러나 머신러닝 평가 지표에서는 Accuracy와 Precision이 서로 다른 지표이다.

한국어 영어 핵심 의미
정확도 Accuracy 전체 중 맞힌 비율
정밀도 Precision 양성 예측 중 맞힌 비율

학습 관점

[편집 | 원본 편집]

정확도는 분류 모델 평가의 기본 지표이므로, 혼동 행렬과 함께 이해해야 한다.

학습할 때는 다음 내용을 중심으로 정리하는 것이 좋다.

  • 정확도의 정의
  • 정확도의 계산식
  • TP, TN, FP, FN의 의미
  • 혼동 행렬과의 관계
  • 정밀도와의 차이
  • 재현율과의 차이
  • F1 점수와의 관계
  • 불균형 데이터에서의 한계
  • 오차율과의 관계
  • 임계값 변화에 따른 정확도 변화

시험 포인트

[편집 | 원본 편집]
  • 정확도는 전체 예측 중 올바르게 예측한 비율이다.
  • 정확도는 (TP + TN) / (TP + TN + FP + FN)으로 계산한다.
  • 정확도는 분류 모델의 성능 평가 지표이다.
  • 클래스가 균형적일 때 직관적인 성능 지표로 유용하다.
  • 불균형 데이터에서는 정확도만으로 모델 성능을 평가하면 안 된다.
  • 모든 데이터를 다수 클래스로 예측해도 높은 정확도가 나올 수 있다.
  • 정밀도는 양성으로 예측한 것 중 실제 양성의 비율이다.
  • 재현율은 실제 양성 중 양성으로 맞힌 비율이다.
  • F1 점수는 정밀도와 재현율의 조화평균이다.
  • 정확도와 오차율은 서로 보완적인 관계이다.

같이 보기

[편집 | 원본 편집]