Python에서 혼동 행렬을 만드는 방법


로지스틱 회귀 는 응답 변수가 이진일 때 사용할 수 있는 회귀 유형입니다.

로지스틱 회귀 모델의 품질을 평가하는 일반적인 방법은 모델의 예측 값과 테스트 데이터 세트의 실제 값을 보여주는 2×2 테이블인 혼동 행렬을 만드는 것입니다.

Python에서 로지스틱 회귀 모델에 대한 혼동 행렬을 만들려면 sklearn 패키지의 Confusion_matrix() 함수를 사용할 수 있습니다.

 from sklearn import metrics
metrics.metrics. confusion_matrix (y_actual, y_predicted)

다음 예에서는 이 함수를 사용하여 Python에서 로지스틱 회귀 모델에 대한 혼동 행렬을 만드는 방법을 보여줍니다.

예: Python에서 혼동 행렬 만들기

응답 변수의 실제 값과 로지스틱 회귀 모델에 의해 예측된 값을 포함하는 다음 두 테이블이 있다고 가정합니다.

 #define array of actual values
y_actual = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

#define array of predicted values
y_predicted = [0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1]

sklearn의 conflict_matrix() 함수를 사용하여 이 데이터에 대한 혼동 행렬을 만들 수 있습니다.

 from sklearn import metrics

#create confusion matrix
c_matrix = metrics. confusion_matrix (y_actual, y_predicted)

#print confusion matrix
print (c_matrix)

[[6 4]
 [2 8]]

원하는 경우 pandas의 crosstab() 함수를 사용하여 시각적으로 더 매력적인 혼동 행렬을 만들 수 있습니다.

 import pandas as pd

y_actual = pd. Series (y_actual, name=' Actual ')
y_predicted = pd. Series (y_predicted, name=' Predicted ')

#create confusion matrix
print (pd. crosstab (y_actual, y_predicted))

Predicted 0 1
Current         
0 6 4
1 2 8

열에는 반응 변수에 대한 예측 값이 표시되고 행에는 실제 값이 표시됩니다.

sklearn 패키지의 함수를 사용하여 정확도, 정밀도 및 재현율을 계산할 수도 있습니다.

 #print accuracy of model
print ( metrics.accuracy_score (y_actual, y_predicted))

0.7

#print precision value of model
print ( metrics.precision_score (y_actual, y_predicted))

0.667

#print recall value of model
print (metrics. recall_score (y_actual, y_predicted))

0.8

다음은 정확성, 정밀성 및 재현율에 대한 간단한 정보입니다.

  • 정확도 : 정확한 예측의 비율
  • 정확도 : 전체 긍정적 예측에 비해 긍정적 예측을 수정합니다.
  • 알림 : 전체 실제 긍정에 대한 긍정적 예측 수정

다음은 이 예에서 이러한 각 측정항목이 실제로 계산된 방법입니다.

  • 정확도 : (6+8) / (6+4+2+8) = 0.7
  • 정확도 : 8 / (8+4) = 0.667
  • 알림 : 8 / (2+8) = 0.8

추가 리소스

로지스틱 회귀 소개
로지스틱 회귀의 세 가지 유형
로지스틱 회귀와 선형 회귀

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다