기계 학습의 혼동 매트릭스 : 원 스톱 솔루션



이 기사는 정확성을 평가하는 데 사용되는 기계 학습 알고리즘의 가장 중요한 측면 중 하나 인 혼동 매트릭스에 중점을 둡니다.

에 일반적으로 두 가지 유형의 사용 사례가 있습니다. , 및 문제. Confusion Matrix는 분류 모델의 성능을 설명하는 데 간접적으로 도움이되는 분류 모델의 정확도를 계산하는 데 도움이됩니다. 모델을 평가할 때 가장 중요한 단계입니다. 이 기사에서는 다음 주제를 다룰 것입니다.

1. 혼동 행렬이란 무엇입니까?





2. 혼동 행렬의 정확성과 구성 요소

3. 정밀도, 리콜 및 F- 측정



4. Python과 Sklearn을 사용하여 혼동 행렬 만들기

혼동 행렬이란 무엇입니까?

혼동 행렬은 예측 결과와 분류 문제 사용 사례의 실제 결과를 비교 요약 한 것입니다. 비교 요약은 일부 학습 데이터로 학습 된 후 모델의 성능을 결정하는 데 매우 필요합니다. Accuracy-Confusion-Matrix이진 분류 사용 사례의 경우 혼동 행렬은 아래와 같은 2x2 행렬입니다.
예상 클래스 1 값 예 : 1 예측 된 클래스 2 값 예 : 0
실제 클래스 1 값

예 : 1

TP (참 양성) FN (거짓 음수)
실제 클래스 2 값



예 : 0

FP (False Positive) TN (참 음성)

위 그림에서 :
우리는

  • 이진 결과의 양수 값과 유사한 실제 클래스 1 값 = 1입니다.
  • 이진 결과의 음수 값과 유사한 실제 클래스 2 값 = 0입니다.

혼동 행렬의 왼쪽 인덱스는 기본적으로 실제 값을 나타내고 상단 열은 예측 값을 나타냅니다.

혼동 행렬을 만들 때 존재하는 다양한 구성 요소가 있습니다. 구성 요소는 다음과 같습니다.

양성 (P) : 예상 결과는 긍정적입니다 (예 : 이미지가 고양이).

부정 (N) : 예상 결과가 부정적 (예 : 이미지가 고양이가 아님)

참 양성 (TP) : 여기서 TP는 기본적으로 예측값을 나타내고 실제 값은 1 (True)입니다.

참 음성 (TN) : 여기서 TN은 예측값을 나타내고 실제 값은 0 (False)입니다.

자바가 있습니다

거짓 음성 (FN) : 여기서 FN은 예측 값이 0 (음수)이고 실제 값이 1임을 나타냅니다. 여기서 두 값이 일치하지 않습니다. 따라서 그것은 거짓 음성입니다.

거짓 양성 (FP) : 여기서 FP는 예측 값이 1 (양수)이고 실제 값이 0임을 나타냅니다. 여기서 다시 두 값이 일치하지 않습니다. 따라서 그것은 False Positive입니다.

혼동 행렬의 정확도 및 구성 요소

혼동 행렬이 생성되고 모든 성분 값을 결정한 후에는 정확도를 계산하기가 매우 쉬워집니다. 따라서이를 더 잘 이해하기 위해 구성 요소를 살펴 보겠습니다.
  • 분류 정확도

위의 공식에서 TP (True Positive)와 TN (True Negative)의 합은 정확한 예측 결과입니다. 따라서 정확도를 백분율로 계산하기 위해 다른 모든 구성 요소로 나눕니다. 그러나 정확성에는 몇 가지 문제가 있으며 우리는 그것에 완전히 의존 할 수 없습니다.

반환 유형 만 다른 함수는 오버로드 할 수 없습니다.

우리의 데이터 세트가 완전히 불균형하다고 생각해 봅시다. 이 시나리오에서 98 % 정확도는 문제 설명에 따라 좋거나 나쁠 수 있습니다. 따라서 우리는 우리가 계산하는 정확성에 대해 확신하는 데 도움이 될 몇 가지 핵심 용어가 있습니다. 약관은 다음과 같습니다.

  • TPR (True Positive Rate) 또는 감도 :

민감도라고도하는 참 양성 비율은 (TP + FN)으로 표시된 총 실제 양성에 대한 참 양성 비율을 측정합니다.

예상 클래스 1 값 예 : 1 예측 된 클래스 2 값 예 : 0 합계
실제 클래스 1 값

예 : 1

TP (참 양성) FN (거짓 음수) 총 실제 긍정
실제 클래스 2 값

예 : 0

FP (False Positive)TN (참 음성)총 실제 부정
TPR = 참 양성 / (참 양성 + 거짓 음성
  • TNR (True Negative Rate) 또는 특이성 :

참 음성 비율 또는 특이성은 총 음성에 대한 실제 음성 비율을 측정합니다.

예상 클래스 1 값 예 : 1 예측 된 클래스 2 값 예 : 0 합계
실제 클래스 1 값

예 : 1

TP (참 양성)FN (거짓 음수)총 실제 긍정
실제 클래스 2 값

예 : 0

FP (False Positive) TN (참 음성) 총 실제 부정

TNR = 참 음성 / (참 음성 + 거짓 양성)

  • 거짓 양성률 (FPR) :

거짓 양성률은 총 예측 양성 결과 수 (TP + FP)에 대한 예측 된 거짓 양성 (FP)의 백분율입니다.

예상 클래스 1 값 예 : 1 예측 된 클래스 2 값 예 : 0
실제 클래스 1 값 EG : 1 TP (참 양성) FN (거짓 음수)
실제 클래스 2 값 EG : 0 FP (False Positive) TN (참 음성)
총 예측 긍정의 합 총 예측 음성의 합
FPR = 거짓 양성 / (참 양성 + 거짓 양성)
  • FNR (False Negative Rate) :

거짓 음성 비율은 예측 음성 결과의 총 수 (TN + FN)에 대한 예측 거짓 음성 (FP)의 백분율입니다.

예상 클래스 1 값 예 : 1 예측 된 클래스 2 값 예 : 0
실제 클래스 1 값 EG : 1TP (참 양성) FN (거짓 음수)
실제 클래스 2 값 EG : 0FP (False Positive) TN (참 음성)
총 예측 긍정의 합 총 예측 음성의 합
FNR = 거짓 음성 / (거짓 음성 + 참 음성)

정밀도, 재현율 및 F- 측정

  • 소환:

리콜은 참 양성률과 유사하며 올바르게 예측 된 양수 값 (TP)의 총 수와 모든 양수 값의 비율입니다.

  • 정도:

정밀도는 기본적으로 모델이 양수로 예측 한 모든 포인트와 실제로 양수인 비율을 나타냅니다.

정밀도와 재현율은 위의 공식에서 볼 수 있듯이 포지티브 클래스에 초점을 맞춘 메트릭 결과입니다.

  • F- 측정

따라서 F-Measure는 Precision과 Recall 기법을 모두 결합한 기법이며, 극한값이 처벌되는 일반적인 산술 평균 대신 Harmonic Mean을 사용합니다. F- 측정 값은 F1- 점수라고도하며 아래 공식으로 제공됩니다.

예를 들어서 정확도, 정밀도, 재현율 및 F1 점수를 계산하는 방법을 살펴 보겠습니다.

N = 165 YES 예측 예상 NO
실제 예 TP = 150 FN = 10
현재 아니오 FP = 20 TN = 100
    • 정확도 = (TP + TN) / (TP + TN + FP + FN) = (150 + 100) / (150 + 100 + 20 + 10) = 0.89
    • 리콜 = TP / (TP + FN) = 150 / (150 + 10) = 0.93
    • 정밀도 : TP / (TP + FP) = 150 / (150 + 20) = 0.88

  • F- 측정 = (2 * 리콜 * 정밀) / (리콜 + 정밀) = (2 * 0.93 * 0.88) / (0.93 + 0.88) = 0.90

Python 및 Sklearn을 사용하여 혼동 행렬 만들기

이제 우리는 sklearn 라이브러리와 함께 파이썬을 사용하여 혼동 행렬을 만드는 방법의 예를 볼 것입니다.

하나. 처음에는 실제 데이터 목록을 만들고 아래와 같이 정확도를 확인하기 위해 예측합니다.

# 혼동 행렬 생성을위한 Python 스크립트. actual_data = [1, 1, 0, 1, 0, 0, 1, 0, 0, 0,1,0,1] predicted_data = [0, 1, 1, 1, 0, 0, 1, 0, 1, 0,1,0,1]

2. 아래와 같이 sklearn 라이브러리에서 혼동 행렬을 가져와야합니다.

sklearn.metrics에서 confusion_matrix 가져 오기

삼. 다음으로 아래와 같이 혼동 행렬을 생성합니다.

final_results = confusion_matrix (actual_data, predicted_data)

네. 이제 다음과 같이 라이브러리를 가져 와서 정확도를 계산할 수 있습니다.

sklearn.metrics에서 import precision_score 정확도 = accuracy_score (actual_data, predicted_data)

5. 마지막으로 아래와 같이 F1- 점수 또는 F- 측정을 계산합니다.

sklearn.metrics에서 import classification_report report = classification_report (actual_data, predicted_data)

아래는 완전한 코드입니다.

actual_data = [1, 1, 0, 1, 0, 0, 1, 0, 0, 0,1,0,1] predicted_data = [0, 1, 1, 1, 0, 0, 1, 0, 1, 0,1,0,1] from sklearn.metrics import confusion_matrix final_results = confusion_matrix (actual_data, predicted_data) print (final_results) from sklearn.metrics import 정확도 _score 정확도 = accuracy_score (actual_data, predicted_data) from sklearn.metrics import classification_report report = classification_report ( actual_data, predicted_data) print (정확도) print (report)

matrix

그래서 이것으로 우리는이 기사의 끝으로 왔습니다. 혼란 매트릭스에 대한 모든 혼란이 이제 해결되기를 바랍니다.

system.exit 메소드는 응용 프로그램을 종료합니다.
에두 레카 회귀, 클러스터링, 의사 결정 트리, 랜덤 포레스트, Naïve Bayes 및 Q-Learning과 같은 다양한 기계 학습 알고리즘에 대한 전문 지식을 얻을 수 있습니다. Python Training을 사용하는이 기계 학습은 통계, 시계열 및 감독, 비지도 및 강화 알고리즘과 같은 다양한 종류의 기계 학습 알고리즘에 대한 개념을 제공합니다. 데이터 과학 인증 과정을 통해 미디어, 의료, 소셜 미디어, 항공, HR에 대한 실제 사례 연구를 해결하게됩니다.