혼란 행렬 w/Python

2634 단어

혼란 행렬



Confusion Matrix는 기계 학습 알고리즘이 얼마나 잘 작동하는지 시각화하는 가장 쉬운 방법 중 하나입니다. 혼동 매트릭스를 만들면 참음성, 거짓음성, 참긍정 및 거짓긍정을 볼 수 있습니다. 그러나이 용어는 무엇을 의미합니까? 이 블로그에서는 이러한 용어에 대한 더 나은 이해와 다음 프로젝트에서 사용할 Python으로 멋진 시각화를 만드는 방법을 제공하려고 노력할 것입니다.

따라서 혼란 행렬이 어떻게 생겼는지에 대한 몇 가지 값과 시각 자료로 시작하겠습니다. 이 튜토리얼을 위해 내가 만든 몇 가지 값을 사용할 것입니다. 일반적으로 테스트 값을 모델이 생성한 예측과 비교합니다.



무슨 일이야



이제 이 Confusion Matrix가 우리에게 보여주는 것을 살펴보겠습니다.
  • 참음성: 거짓을 올바르게 예측했습니다. 따라서 예측 값과 테스트 값이 모두 0입니다.
  • 거짓 긍정: 우리의 예측은 참이었지만 실제 값은 거짓이었습니다. 따라서 테스트 값(왼쪽)은 0이지만 예측 값(아래)은 1입니다.
  • False Negative: 우리의 예측은 거짓이었지만 실제 값은 참이었습니다. 따라서 테스트 값(왼쪽)은 1이지만 예측 값(아래)은 0입니다.
  • 참 긍정: 참을 올바르게 예측했습니다. 테스트 값은 1이고 1을 예측했습니다.

  • 창조



    이제 혼란 행렬의 각 사각형이 무엇을 의미하는지 파악했으므로 데이터를 추가해 보겠습니다.

    import pandas as pd
    import seaborn as sn
    from matplotlib import pyplot as plt
    from sklearn.metrics import confusion_matrix
    
    data = {'y_test': [1,1,1,1,1,0,0,0,0,0],
            'y_pred': [1,1,1,0,0,0,0,0,0,1]}
    
    df = pd.DataFrame(data, columns=['y_test','y_pred'])
    



    이제 왼쪽 열에 테스트 값이 있고 오른쪽 열에 예측이 있는 일부 데이터 열이 있습니다. 모든 행이 유사한 결과를 갖도록 열을 구성했지만 보기가 쉽지 않습니다. 샘플 열을 자세히 살펴보면 둘 다 1인 행 3개(참 양성), 테스트용 행 2개와 예측용 0개 행(거짓 음성), 둘 다 0인 행 4개(참 음성)가 있음을 알 수 있습니다. ) 및 1로 예측되는 행 1개는 테스트가 0(가양성)입니다.

    따라서 이 데이터를 훨씬 쉽게 읽을 수 있도록 혼란 행렬을 만드는 방법은 다음과 같습니다. 첫 번째 명령은 혼동 행렬의 값을 계산하고 [[4,2],[1,3]]와 같은 배열에 배치합니다. 그런 다음 Matplotlib 라이브러리를 사용하여 혼동 행렬의 표시 크기를 설정합니다. 정사각형을 원하는 경우 숫자 값은 동일합니다. 그런 다음 마지막으로 Seaborn 라이브러리의 히트맵 기능을 사용하여 혼란 매트릭스에 생명을 불어넣을 수 있습니다.

    시각화



    #create confusion matrix array
    cm1 = confusion_matrix(df['y_pred'],df['y_test'])
    
    #set figure size
    plt.figure(figsize = (4,4))
    
    #create confusion matrix
    sn.heatmap(cm1,linewidths=1,linecolor='black', annot=True,cbar=False,fmt="",cmap=plt.cm.Blues);
    



    이제 모델이 값을 얼마나 잘 예측하는지 확인하고 친구들에게 자랑할 수 있는 고유한 혼란 매트릭스가 있습니다.

    좋은 웹페이지 즐겨찾기