혼동 행렬을 어떻게 표시할 수 있습니까?
텍스트 문서(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]]
그러나 명확하거나 읽을 수 있는 플롯을 받지 못했습니다.이것을 하는 더 좋은 방법이 있습니까?
사용할 수 있습니다.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()
혼동 행렬에 "총 열" 및 "총선"을 포함한 더 많은 데이터와 각 셀의 백분율(%)(예: matlab 기본값)을 포함하는 경우(아래 이미지 참조)
열 지도 및 기타 옵션을 포함합니다.
당신은 github ;)에서 공유된 위의 모듈로 재미있게 놀아야 합니다.
https://github.com/wcipriano/pretty-print-confusion-matrix
이 모듈은 작업을 쉽게 수행할 수 있으며 CM을 사용자 지정하기 위한 많은 매개 변수와 함께 위의 출력을 생성합니다.
언급URL : https://stackoverflow.com/questions/35572000/how-can-i-plot-a-confusion-matrix
'programing' 카테고리의 다른 글
Pandas 막대 그림에 값을 사용하여 막대 주석 달기 (0) | 2023.07.19 |
---|---|
pip 캐시 폴더는 어디에 있습니까? (0) | 2023.07.19 |
iPhone에서 HTML5 비디오 자동 재생 (0) | 2023.07.19 |
모든 값이 NA인 데이터 프레임에서 열 제거 (0) | 2023.07.09 |
랙 미들웨어란? (0) | 2023.07.09 |