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