AI 기초
혼동 행렬이란 무엇인가?
기계 학습과 데이터 과학에서 가장 강력한 분석 도구 중 하나는 혼동 행렬입니다. 혼동 행렬은 연구자에게 기계 학습 분류기가 대상 클래스에 대해 어떻게 수행했는지에 대한 자세한 정보를 제공할 수 있습니다. 혼동 행렬은 올바르게 분류된 예제와 잘못 분류된 예제를 비교하여 표시합니다. 혼동 행렬의 구조와 해석 방법을 더 자세히 살펴보겠습니다.
혼동 행렬이란 무엇인가?
혼동 행렬의 간단한 정의부터 시작해 보겠습니다. 혼동 행렬은 예측 분석 도구입니다. 구체적으로, 실제 값과 모델의 예측 값을 비교하여 표시하는 표입니다. 기계 학습의 contexto에서 혼동 행렬은 기계 학습 분류기의 성능을 분석하는 데 사용되는 지표입니다. 혼동 행렬은 정밀도, 정확도, 특이도, 재현율과 같은 지표를 시각화하는 데 사용됩니다.
혼동 행렬이 특히 유용한 이유는 다른 유형의 분류 지표와 달리 혼동 행렬이 모델의 성능에 대한 더 완전한 그림을 제공하기 때문입니다. 단순히 정확도와 같은 지표만 사용하면 한 클래스를 완전히 잘못 식별하는 모델이 평균 성능이 좋기 때문에 이를 발견하지 못할 수 있습니다. 그러나 혼동 행렬은 다양한 값을 비교하여 실제 음성, 거짓 음성, 거짓 양성, 실제 양성과 같은 값을 제공합니다.

혼동 행렬에서 나타나는 다양한 지표를 정의해 보겠습니다.
혼동 행렬의 재현율
재현율은 실제 양성 예제의 수를 실제 음성 예제의 수와 실제 양성 예제의 총 수로 나눈 값입니다. 즉, 재현율은 기계 학습 모델이 실제 양성 예제를 얼마나 잘 분류했는지 나타냅니다. 재현율은 모델이 양성 예제를 얼마나 잘 분류했는지의 비율로 표시됩니다. 이 값은 또한 “적중률” 또는 “민감도”로 알려져 있으며, 실제 양성 예제를 모델이 얼마나 잘 예측했는지 나타냅니다.
혼동 행렬의 정밀도
정밀도는 재현율과 마찬가지로 모델의 성능을 추적하는 값입니다. 그러나 정밀도는 실제 양성 예제의 수를 모델이 양성으로 분류한 예제의 총 수로 나눈 값입니다. 즉, 정밀도는 모델이 양성으로 분류한 예제 중 실제 양성 예제의 비율입니다.
정밀도와 재현율을 구별하기 위해, 정밀도는 모델이 양성으로 분류한 모든 예제 중 실제 양성 예제의 비율을 나타내며, 재현율은 실제 양성 예제 중 모델이 양성으로 분류한 예제의 비율을 나타냅니다.
혼동 행렬의 특이도
재현율과 정밀도는 양성 예제와 실제 양성 예제의 비율을 나타내는 값입니다. 그러나 특이도는 실제 음성 예제의 수를 모델이 음성으로 분류한 예제의 총 수로 나눈 값입니다. 즉, 특이도는 모델이 음성으로 분류한 예제 중 실제 음성 예제의 비율입니다.
혼동 행렬 이해하기

Photo: Jackverr via Wikimedia Commons, (https://commons.wikimedia.org/wiki/File:ConfusionMatrix.png), CC BY SA 3.0
혼동 행렬의 예
정밀도, 재현율, 민감도, 특이도와 같은 용어를 정의한 후에, 이러한 값들이 혼동 행렬에서 어떻게 나타나는지 살펴보겠습니다. 혼동 행렬은 분류 문제에서 생성되며, 두 개 이상의 클래스가 있는 경우에 적용됩니다. 생성된 혼동 행렬은 필요한 클래스 수만큼 높고 넓을 수 있지만, 단순성을 위해 2×2 혼동 행렬을 살펴보겠습니다.
예를 들어, 분류기가 환자가 질병을 가지고 있는지 여부를 결정하는 경우를 가정해 보겠습니다. 특징들은 분류기에 입력되고, 분류기는 두 가지 분류 중 하나를 반환합니다. 즉, 환자가 질병을 가지고 있지 않거나 가지고 있습니다.
혼동 행렬의 왼쪽 부분을 살펴보겠습니다. 왼쪽 부분은 분류기가 각 클래스에 대한 예측을 나타냅니다. 이진 분류 문제에는 두 개의 행이 있습니다. 행렬의 상단 부분은 데이터 인스턴스의 실제 클래스 레이블을 나타냅니다.
혼동 행렬을 해석하는 방법은 행과 열이 교차하는 부분을 살펴보는 것입니다. 모델의 예측을 실제 레이블과 비교합니다. 이 경우, 실제 양성 값은 왼쪽 상단에 위치하며, 모델이 올바르게 양성으로 분류한 예제의 수입니다. 오류 양성은 오른쪽 상단에 위치하며, 실제 음성 예제지만 모델이 양성으로 분류한 예제입니다.
그리드의 왼쪽 하단에는 모델이 음성으로 분류했지만 실제 양성인 예제가 표시됩니다. 마지막으로, 혼동 행렬의 오른쪽 하단에는 실제 음성 값이 있습니다. 즉, 실제 음성 예제입니다.
데이터셋에 두 개 이상의 클래스가 있는 경우, 행렬의 크기는 클래스 수에 따라 증가합니다. 예를 들어, 세 개의 클래스가 있는 경우, 행렬은 3×3 행렬이 됩니다. 그러나 행렬의 크기에 관계없이 해석 방법은 동일합니다. 왼쪽 부분에는 예측 값이 있고, 실제 클래스 레이블은 상단에 있습니다. 모델이 올바르게 예측한 예제는 왼쪽 상단에서 오른쪽 하단으로 대각선으로 표시됩니다. 행렬을 살펴보면 앞서 논의한 네 가지 예측 지표를 파악할 수 있습니다.
예를 들어, 재현율은 실제 양성과 오류 음성을 더한 값을 실제 양성 예제의 수로 나눈 값입니다. 한편, 정밀도는 오류 양성과 실제 양성을 더한 값을 실제 양성 예제의 수로 나눈 값입니다.
정밀도, 재현율, 특이도와 같은 지표를 수동으로 계산하는 데 시간을 할애할 수 있지만, 이러한 지표는 इतन나 많이 사용되므로 대부분의 기계 학습 라이브러리가 이러한 지표를 표시하는 방법을 제공합니다. 예를 들어, Python의 Scikit-learn 라이브러에는 혼동 행렬을 생성하는 함수가 있습니다.












