혼동 행렬은 예측 분석에서 분류 모델의 성능을 평가하기 위해 사용되는 2x2 표이다. 실제 값과 예측 값의 조합을 진양성, 거짓 음성, 거짓 양성, 진음성으로 나타내며, 이진 분류뿐 아니라 다중 클래스 분류에도 적용된다. 데이터 불균형 문제에 유의하여 정확도 외 다른 지표들을 함께 고려해야 한다.
더 읽어볼만한 페이지
통계적 분류 - 서포트 벡터 머신 서포트 벡터 머신(SVM)은 지도 학습 모델로서 분류와 회귀 분석에 사용되며, 데이터 집합을 기반으로 새로운 데이터의 범주를 판단하는 비확률적 이진 선형 분류 모델을 생성하고, 커널 트릭을 통해 비선형 분류에도 활용될 수 있다.
통계적 분류 - 민감도와 특이도 민감도와 특이도는 의학적 진단에서 검사의 정확성을 평가하는 지표로, 민감도는 실제 양성인 대상 중 양성으로 나타나는 비율, 특이도는 실제 음성인 대상 중 음성으로 나타나는 비율을 의미하며, 선별 검사에서 두 지표를 모두 높여 질병을 정확하게 진단하는 것을 목표로 한다.
기계 학습 - 비지도 학습 비지도 학습은 레이블이 없는 데이터를 통해 패턴을 발견하고 데이터 구조를 파악하는 것을 목표로 하며, 주성분 분석, 군집 분석, 차원 축소 등의 방법을 사용한다.
기계 학습 - 지도 학습 지도 학습은 레이블된 데이터를 사용하여 입력 데이터와 출력 레이블 간의 관계를 학습하는 기계 학습 분야로, 예측 모델 생성, 알고리즘 선택, 모델 최적화, 정확도 평가 단계를 거치며, 회귀 및 분류 문제에 적용되고 다양한 확장 기법과 성능 평가 방법을 활용한다.
혼동 행렬
개요
다른 이름
오류 행렬, 분류 행렬
정의
분류 모델의 성능을 시각화하는 표
용도
머신러닝에서 분류기의 성능 분석 및 평가
구성 요소
참 긍정 (True Positive, TP) 참 부정 (True Negative, TN) 거짓 긍정 (False Positive, FP) 거짓 부정 (False Negative, FN)
측정 지표
정확도 (Accuracy)
전체 샘플 중 정확하게 예측된 샘플의 비율
정밀도 (Precision)
긍정으로 예측된 샘플 중 실제 긍정 샘플의 비율
재현율 (Recall)
실제 긍정 샘플 중 긍정으로 정확하게 예측된 샘플의 비율
F1 점수 (F1 Score)
정밀도와 재현율의 조화 평균
활용 분야
머신러닝
분류 모델 성능 평가 및 개선
통계
가설 검정 및 데이터 분석
정보 검색
검색 시스템 성능 평가
의료 진단
질병 진단 정확도 평가
2. 혼동 행렬의 개념
분류 모델의 성능을 평가할 때 사용되는 혼동 행렬은 모델의 예측 결과와 실제 값을 비교하여 한눈에 파악할 수 있도록 돕는 도구이다. 특히, 이진 분류 문제에서 유용하게 활용되지만, 다중 클래스 분류 문제에도 적용 가능하다.
혼동 행렬은 다음과 같은 방식으로 이해할 수 있다. 예를 들어, 암 진단 여부를 예측하는 문제를 생각해보자.
실제 분류: 12명의 사람 중 8명은 실제로 암(양성, 클래스 1)을 가지고 있고, 4명은 암이 없다(음성, 클래스 0).
개인 번호
1
2
3
4
5
6
7
8
9
10
11
12
실제 분류
1
1
1
1
1
1
1
1
0
0
0
0
예측 분류: 어떤 분류기를 통해 12명을 분류한 결과, 9명은 정확하게 예측했지만 3명은 잘못 예측했다. 암이 있는 2명(샘플 1, 2)을 암이 없다고 예측했고, 암이 없는 1명(샘플 9)을 암이 있다고 예측했다.
개인 번호
1
2
3
4
5
6
7
8
9
10
11
12
실제 분류
1
1
1
1
1
1
1
1
0
0
0
0
예측 분류
0
0
1
1
1
1
1
1
1
0
0
0
이러한 예측 결과는 다음과 같은 네 가지 경우의 수로 나눌 수 있다.
진양성(TP): 실제로 암이 있고, 예측도 암인 경우.
거짓 음성(FN): 실제로 암이 있지만, 예측은 암이 없는 경우.
거짓 양성(FP): 실제로 암이 없지만, 예측은 암인 경우.
진음성(TN): 실제로 암이 없고, 예측도 암이 없는 경우.
위의 표를 정리하여 예측 결과에 따른 분류를 추가하면 다음과 같다.
개인 번호
1
2
3
4
5
6
7
8
9
10
11
12
실제 분류
1
1
1
1
1
1
1
1
0
0
0
0
예측 분류
0
0
1
1
1
1
1
1
1
0
0
0
결과
거짓 음성
거짓 음성
진양성
진양성
진양성
진양성
진양성
진양성
거짓 양성
진음성
진음성
진음성
이러한 혼동 행렬은 예측 분석에서 모델의 성능을 평가하고 개선하는 데 중요한 정보를 제공한다.
2. 1. 이진 분류 혼동 행렬
이진 분류 혼동 행렬은 예측 결과와 실제 값을 기준으로 4가지 경우의 수를 나타낸다. 이 4가지 경우의 수는 다음과 같다.
진양성(True Positive, TP): 실제 값이 양성이고 예측 결과도 양성인 경우.
거짓 음성(False Negative, FN): 실제 값은 양성이지만 예측 결과는 음성인 경우.
거짓 양성(False Positive, FP): 실제 값은 음성이지만 예측 결과는 양성인 경우.
진음성(True Negative, TN): 실제 값이 음성이고 예측 결과도 음성인 경우.
이 4가지 경우의 수를 2x2 행렬 형태로 나타낸 것이 이진 분류 혼동 행렬이다.
rowspan="2" style="border:none;" |
style="border:none;" |
예측된 상태
전체 모집단
양성
음성
실제 상태
양성
진양성 (TP)
거짓 음성 (FN)
음성
거짓 양성 (FP)
진음성 (TN)
출처: [4][5][6][7][8][9][10]
예를 들어, 12명의 사람들을 대상으로 암 진단 여부를 예측하는 분류기가 있다고 가정하자. 실제 암 환자는 8명(양성), 암이 아닌 사람은 4명(음성)이다. 분류 결과, 9개는 정확하게 예측했고 3개는 틀렸다. 암 환자 2명을 암이 아니라고 잘못 예측했고(거짓 음성), 암이 아닌 사람 1명을 암이라고 잘못 예측했다(거짓 양성).
개인 번호
1
2
3
4
5
6
7
8
9
10
11
12
실제 분류
1
1
1
1
1
1
1
1
0
0
0
0
예측 분류
0
0
1
1
1
1
1
1
1
0
0
0
결과
거짓 음성
거짓 음성
진양성
진양성
진양성
진양성
진양성
진양성
거짓 양성
진음성
진음성
진음성
이를 혼동 행렬로 나타내면 다음과 같다.
rowspan="2" style="border:none;" |
style="border:none;" |
예측된 상태
합계: 12
암 (7)
비암 (5)
실제 상태
암 (8)
6
2
비암 (4)
1
3
혼동 행렬에서 정확한 예측은 대각선에 표시되고, 대각선 밖의 값은 오류를 나타낸다. 따라서 혼동 행렬을 통해 예측 오류를 시각적으로 쉽게 확인할 수 있다.
2. 2. 다중 클래스 혼동 행렬
혼동 행렬은 이진 분류뿐만 아니라 클래스가 3개 이상인 다중 클래스 분류에서도 사용할 수 있다.[16] 다음은 두 화자 간의 휘파람 언어 통신을 요약한 표이다. 5가지 모음에 대한 예측 결과와 실제 값을 비교하여 나타내며, 명확성을 위해 값이 0인 셀은 생략되었다.[12][17]
i
e
a
o
u
i
15
1
e
1
1
a
79
5
o
4
15
3
u
2
2
이진 분류 혼동 행렬과 마찬가지로, 대각선에 위치한 값은 올바르게 예측된 경우를 나타내고, 대각선 밖에 위치한 값은 잘못 예측된 경우를 나타낸다.
3. 혼동 행렬의 예시
7
비암 5
rowspan="2"
암 8
6
2
비암 4
1
3
혼동 행렬에서 대각선은 올바른 예측을, 대각선 밖은 잘못된 예측을 나타낸다.
혼동 행렬은 이진 분류뿐 아니라 다중 클래스 분류에도 사용된다. 예를 들어, 휘파람 언어의 모음 분류 예시를 통해 다중 클래스 혼동 행렬을 확인할 수 있다.[12]
i
e
a
o
u
i
15
1
e
1
1
a
79
5
o
4
15
3
u
2
2
이처럼 혼동 행렬은 분류기의 성능을 다양한 측면에서 평가하고, 어떤 유형의 오류가 발생하는지 분석하는 데 유용하다.
4. 혼동 행렬 관련 지표
혼동 행렬을 바탕으로 모델의 성능을 평가하는 다양한 지표를 계산할 수 있다. 주요 지표로는 정확도, 정밀도, 재현율, F1 점수, 매튜스 상관 계수(MCC) 등이 있다.
12명의 개인을 대상으로 암 진단을 받은 8명(클래스 1, 양성)과 암이 없는 4명(클래스 0, 음성)이 있다고 가정하고, 어떤 분류기가 9개의 예측은 맞고 3개는 틀렸다고 가정한다. 암이 있는 2명(샘플 1과 2)을 암이 없는 것으로, 암이 없는 1명(샘플 9)을 암이 있는 것으로 잘못 예측한 경우이다.
개인 번호
1
2
3
4
5
6
7
8
9
10
11
12
실제 분류
1
1
1
1
1
1
1
1
0
0
0
0
예측 분류
0
0
1
1
1
1
1
1
1
0
0
0
결과
style=background:#ffdddd |
style=background:#ffdddd |
style=background:#ccffcc |
style=background:#ccffcc |
style=background:#ccffcc |
style=background:#ccffcc |
style=background:#ccffcc |
style=background:#ccffcc |
style=background:#ffcccc |
style=background:#bbeebb |
style=background:#bbeebb |
style=background:#bbeebb |
위 표에서 실제 분류와 예측 분류를 비교하면 다음과 같은 4가지 결과가 나올 수 있다.
진양성(TP): 실제 양성인 경우를 양성으로 올바르게 예측
거짓 음성(FN): 실제 양성인 경우를 음성으로 잘못 예측
거짓 양성(FP): 실제 음성인 경우를 양성으로 잘못 예측
진음성(TN): 실제 음성인 경우를 음성으로 올바르게 예측
일반적인 혼동 행렬은 다음과 같이 나타낼 수 있다.[4][5][6][7][8][9][10]
rowspan="2" style="border:none;" |
style="border:none;" |
예측된 상태
전체 모집단 = P + N
양성 (PP)
음성 (PN)
rowspan="2"
양성 (P)
TP
FN
음성 (N)
FP
TN
colspan="4" style="border:none;" |
위의 암 진단 예시를 혼동 행렬로 나타내면 다음과 같다.
rowspan="2" style="border:none;" |
style="border:none;" |
예측된 상태
합계: 12
암 7
비암 5
rowspan="2"
암 8
6
2
비암 4
1
3
혼동 행렬에서 정확한 예측은 대각선(녹색)에, 오류는 대각선 밖에 위치하여 시각적으로 예측 오류를 쉽게 확인할 수 있다.
4. 1. 각 지표의 의미와 중요성
혼동 행렬의 각 지표는 분류 모델의 성능을 다양한 관점에서 평가하는 데 사용된다.
예를 들어, 고양이 사진 8장과 개 사진 4장, 총 12장의 사진을 분류하는 모델을 생각해 보자. 고양이를 '클래스 1', 개를 '클래스 0'이라고 할 때, 실제 값은 다음과 같이 표현할 수 있다.
실제 = [1,1,1,1,1,1,1,1,0,0,0,0]
분류 모델을 통해 예측한 결과가 다음과 같다고 가정하자.
예측 결과 = [0,0,1,1,1,1,1,1,0,0,0,1]
이 예측 결과는 다음을 의미한다.
처음 2마리의 고양이를 개로 잘못 예측
마지막 1마리의 개를 고양이로 잘못 예측
이 결과를 바탕으로 혼동 행렬을 만들면 다음과 같다.
고양이
개
고양이
6
2
개
1
3
이 행렬에서 8장의 고양이 사진 중 2장을 개로, 4장의 개 사진 중 1장을 고양이로 잘못 예측했다. 올바른 예측은 표의 대각선(굵은 글씨)에 표시되고, 오판단의 수는 대각선 밖에 표시된다.[14]
혼동 행렬은 이진 분류뿐만 아니라 3개 이상의 분류에서도 사용 가능하다.[16] 예를 들어, 5가지 모음에 대한 휘파람 언어 커뮤니케이션을 정리하면 다음과 같다.[17]
i
e
a
o
u
i
15
1
e
1
1
a
79
5
o
4
15
3
u
2
2
데이터 불균형 상황, 즉 각 클래스에 속하는 데이터 수가 크게 차이 날 때, 정확도만으로는 모델의 성능을 제대로 파악하기 어렵다. 예를 들어, 고양이 사진이 95장, 개 사진이 5장인 경우, 모델이 모든 사진을 고양이로 예측해도 정확도는 95%가 된다. 하지만 이 모델은 개를 전혀 구별하지 못한다. 이러한 경우, 민감도, F1 점수, 매튜스 상관 계수(MCC)[15] 등 다른 지표를 함께 고려해야 한다.
5. 혼동 행렬의 활용 및 주의사항
혼동 행렬은 모델의 성능을 다각도로 분석하고 개선하는 데 유용한 도구이다. 예를 들어, 분류기가 특정 클래스를 다른 클래스와 혼동하는지 여부를 파악하여 모델의 약점을 식별하고 개선할 수 있다.[14]
암 진단 예시를 통해 혼동 행렬의 활용을 살펴보자. 12명의 개인 중 암 환자(양성, 클래스 1)는 8명, 비암 환자(음성, 클래스 0)는 4명이라고 가정한다. 분류기가 9개의 정확한 예측을 하고 3개를 놓치는 경우, 다음과 같은 혼동 행렬을 얻을 수 있다.
예측: 암
예측: 비암
실제: 암
6 (진양성)
2 (거짓 음성)
실제: 비암
1 (거짓 양성)
3 (진음성)
이 혼동 행렬에서 암 환자 8명 중 2명은 비암으로(거짓 음성), 비암 환자 4명 중 1명은 암으로(거짓 양성) 잘못 예측되었다. 혼동 행렬의 대각선은 정확한 예측(진양성, 진음성)을 나타내고, 대각선 밖의 값은 오류(거짓 양성, 거짓 음성)를 나타내므로 예측 오류를 쉽게 파악할 수 있다.
이처럼 혼동 행렬을 활용하면 정확도만으로는 알 수 없는 모델의 성능에 대한 통찰력을 얻을 수 있다. 특히, 데이터 불균형 문제(서로 다른 클래스의 관측 수에 큰 차이가 있는 경우)가 있을 때 정확도는 오해의 소지가 있을 수 있으므로, 혼동 행렬을 통해 더 자세한 분석이 필요하다.
혼동 행렬에는 매튜스 상관 계수(MCC) 등 다른 지표도 포함될 수 있으며, 이러한 지표들은 각각 고유한 중요성과 용도를 가진다.[11][15]
5. 1. 데이터 불균형 문제
데이터 불균형은 서로 다른 클래스에 속하는 데이터의 수가 크게 차이가 날 때 발생한다. 예를 들어, 암 환자 8명과 비암 환자 4명으로 구성된 데이터에서, 분류기가 모든 사람을 암 환자로 예측하면 정확도는 12명 중 8명, 즉 66.7%가 된다. 하지만 이 분류기는 암이 아닌 사람을 전혀 구별하지 못하므로 유용하지 않다.
이처럼 데이터 불균형이 심하면 정확도가 높아도 모델의 성능이 좋지 않을 수 있다. 이 문제를 해결하기 위해 다음과 같은 방법을 사용할 수 있다.
오버샘플링: 소수 클래스의 데이터를 복제하거나 새로운 데이터를 생성하여 데이터 수를 늘린다.
언더샘플링: 다수 클래스의 데이터 수를 줄여 데이터 불균형을 완화한다.
데이터 불균형 문제를 해결하면 모델의 성능을 향상시킬 수 있다. 예를 들어, 위의 암 진단 예시에서 오버샘플링 또는 언더샘플링을 적용하면 암 환자와 비암 환자를 더 잘 구별하는 분류기를 만들 수 있다. 혼동 행렬은 이러한 데이터 불균형 문제를 파악하고, 모델의 성능을 평가하는 데 유용한 도구이다.
참조
[1]
논문
Selecting and interpreting measures of thematic classification accuracy
[2]
논문
Evaluation: From Precision, Recall and F-Measure to ROC, Informedness, Markedness & Correlation
https://www.research[...]
2011
[3]
논문
A Closer Look at Classification Evaluation Metrics and a Critical Reflection of Common Evaluation Practice
https://doi.org/10.1[...]
2024
[4]
서적
Data science for business: what you need to know about data mining and data-analytic thinking
O'Reilly
2013
[5]
논문
An Introduction to ROC Analysis
http://people.inf.el[...]
2006
[6]
논문
Evaluation: From Precision, Recall and F-Measure to ROC, Informedness, Markedness & Correlation
https://www.research[...]
2011
[7]
서적
Encyclopedia of machine learning
Springer
2011
[8]
웹사이트
WWRP/WGNE Joint Working Group on Forecast Verification Research
https://www.cawcr.go[...]
World Meteorological Organisation
2015-01-26
[9]
논문
The advantages of the Matthews correlation coefficient (MCC) over F1 score and accuracy in binary classification evaluation
2020-01
[10]
논문
Classification assessment methods
2018-08
[11]
논문
The advantages of the Matthews correlation coefficient (MCC) over F1 score and accuracy in binary classification evaluation
2020-01
[12]
논문
Phonological and phonetic aspects of whistled languages
2005-08
[13]
논문
Evaluation: From Precision, Recall and F-Measure to ROC, Informedness, Markedness & Correlation
https://www.research[...]
2011
[14]
웹사이트
AutoML 実験結果の評価 - Azure Machine Learning
https://docs.microso[...]
2021-08-23
[15]
논문
The advantages of the Matthews correlation coefficient (MCC) over F1 score and accuracy in binary classification evaluation
[16]
간행물
Data Analytics in Asset Management: Cost-Effective Prediction of the Pavement Condition Index
2020-03-01
[17]
논문
Phonological and phonetic aspects of whistled languages
2005-08
[18]
논문
Selecting and interpreting measures of thematic classification accuracy
https://archive.org/[...] [19]
논문
Evaluation: From Precision, Recall and F-Measure to ROC, Informedness, Markedness & Correlation
https://www.research[...]
2011
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.