programing

혼동 행렬을 어떻게 표시할 수 있습니까?

css3 2023. 7. 19. 21:29

혼동 행렬을 어떻게 표시할 수 있습니까?

텍스트 문서(22000)를 100개 클래스로 분류하기 위해 scikit-learn을 사용하고 있습니다.나는 혼란 행렬을 계산하기 위해 scikit-learn의 혼란 행렬 방법을 사용합니다.

model1 = LogisticRegression()
model1 = model1.fit(matrix, labels)
pred = model1.predict(test_matrix)
cm=metrics.confusion_matrix(test_labels,pred)
print(cm)
plt.imshow(cm, cmap='binary')

이것이 제 혼동 매트릭스의 모습입니다.

[[3962  325    0 ...,    0    0    0]
 [ 250 2765    0 ...,    0    0    0]
 [   2    8   17 ...,    0    0    0]
 ..., 
 [   1    6    0 ...,    5    0    0]
 [   1    1    0 ...,    0    0    0]
 [   9    0    0 ...,    0    0    9]]

그러나 명확하거나 읽을 수 있는 플롯을 받지 못했습니다.이것을 하는 더 좋은 방법이 있습니까?

enter image description here

사용할 수 있습니다.plt.matshow()대신에plt.imshow()아니면 Seaborn 모듈의heatmap(설명서 참조) 혼동 행렬을 표시합니다.

import seaborn as sn
import pandas as pd
import matplotlib.pyplot as plt
array = [[33,2,0,0,0,0,0,0,0,1,3], 
        [3,31,0,0,0,0,0,0,0,0,0], 
        [0,4,41,0,0,0,0,0,0,0,1], 
        [0,1,0,30,0,6,0,0,0,0,1], 
        [0,0,0,0,38,10,0,0,0,0,0], 
        [0,0,0,3,1,39,0,0,0,0,4], 
        [0,2,2,0,4,1,31,0,0,0,2],
        [0,1,0,0,0,0,0,36,0,2,0], 
        [0,0,0,0,0,0,1,5,37,5,1], 
        [3,0,0,0,0,0,0,0,0,39,0], 
        [0,0,0,0,0,0,0,0,0,0,38]]
df_cm = pd.DataFrame(array, index = [i for i in "ABCDEFGHIJK"],
                  columns = [i for i in "ABCDEFGHIJK"])
plt.figure(figsize = (10,7))
sn.heatmap(df_cm, annot=True)

@bninopaul의 대답은 완전히 초보자를 위한 것은 아닙니다.

여기 당신이 "복사하여 실행"할 수 있는 코드가 있습니다.

import seaborn as sn
import pandas as pd
import matplotlib.pyplot as plt

array = [[13,1,1,0,2,0],
         [3,9,6,0,1,0],
         [0,0,16,2,0,0],
         [0,0,0,13,0,0],
         [0,0,0,0,15,0],
         [0,0,1,0,0,15]]

df_cm = pd.DataFrame(array, range(6), range(6))
# plt.figure(figsize=(10,7))
sn.set(font_scale=1.4) # for label size
sn.heatmap(df_cm, annot=True, annot_kws={"size": 16}) # font size

plt.show()

result

혼동 행렬에 " 열" 및 "총선"을 포함한 더 많은 데이터와 각 셀의 백분율(%)(예: matlab 기본값)을 포함하는 경우(아래 이미지 참조)

enter image description here

열 지도 및 기타 옵션을 포함합니다.

당신은 github ;)에서 공유된 위의 모듈로 재미있게 놀아야 합니다.

https://github.com/wcipriano/pretty-print-confusion-matrix


이 모듈은 작업을 쉽게 수행할 수 있으며 CM을 사용자 지정하기 위한 많은 매개 변수와 함께 위의 출력을 생성합니다.

언급URL : https://stackoverflow.com/questions/35572000/how-can-i-plot-a-confusion-matrix