내가 하고싶은 건 다 하는 공간
혼자 만들면서 공부하는 딥러닝 1-3 패션 상품 이미지 분류하기: 잘못 분류된 데이터 살펴보기 본문
잘못된 예측 데이터 살펴보기
일단48000개의 데이터 중에서 잘못 예측된 데이터가 5056개가 있다는 걸 파악했습니다. 잡았다 요놈..
오분류된 이미지를 한 번 살펴봐줬습니다. 여러 프로젝트를 해보니 초기 단계에 데이터를 살펴보는 단계가 굉장히 중요하더라고요.
혼동행렬 Confusion Matrix
그 다음에는 혼동행렬을 만들어줘서 잘못 분류된 클래스 쌍을 확인했습니다.
import pandas as pd
df = pd.DataFrame({
"incorrect_index" : incorrect_train_indices,
"prediction" : train_pred_classes[incorrect_train_indices],
"actual" : train_target[incorrect_train_indices],
})
# confusion matrix 생성
confusion_matrix = pd.crosstab(
df["actual"],
df["prediction"],
rownames=["Actual"],
colnames=["Predicted"]
)
# 시각화
plt.figure(figsize = (8, 8))
sns.heatmap(confusion_matrix, annot=True, fmt='d', cmap='Blues')
plt.xlabel('Predicted')
plt.ylabel('Actual')
plt.title('Confusion Matrix: Fashion MNIST')
plt.show()
색이 진할수록 오분류되는 데이터의 개수가 많음을 의미합니다. 오분류되는 데이터 개수가 가장 많은 클래스 쌍 top3에 대해 살펴보고자 합니다.
1. Predicted : 6(Shirt) / Actual : 0(T-Shirt/Top)
아무래도 셔츠와 티셔츠 둘 다 소매가 짧은 상의라서 오분류가 되는 것 같습니다. 실제로 이 반대 케이스가 top3위를 차지했습니다.
2. Predicted : 4(Coat) / Actual : 2(Pullover)
Pullover는 니트 형태의 스웨터로 머리부터 입는 상의이고, Coat는 말 그대로 외투, 겉옷이라고 합니다. 스웨터를 겉옷이라고 잘못 판단했다는 건데, 두 클래스 모두 긴 소매의 상의라는 점에서 유사해보이는 것 같습니다. 또한 해상도가 낮은 이미지라서 여밈의 여 부(지퍼, 단추)가 잘 안 보입니다. 또한 스웨터는 니트 재질일텐데, 해상도가 낮아서 니트 재질이 잘 안 보입니다.
3. Predicted: 0(T-Shirt/Top) / Actual : 6(Shirt)
top1과 같은 맥락.
'인공지능' 카테고리의 다른 글
혼자 만들면서 공부하는 딥러닝 2-1 이미지 분류 CNN 모델: VGGNet 모델 구조 분석하기 (0) | 2025.07.20 |
---|---|
혼자 만들면서 공부하는 딥러닝 2-1 이미지 분류 CNN 모델: AlexNet 모델 구조 분석하기 (0) | 2025.07.20 |
혼자 만들면서 공부하는 딥러닝 1-3 패션 상품 이미지 분류하기: LeNet-5 모델 훈련 및 검증 (2) | 2025.07.12 |
혼자 만들면서 공부하는 딥러닝 1-3 패션 상품 이미지 분류하기: 활성화 함수, LeNet-5 모델 만들기 (4) | 2025.07.12 |
혼자 만들면서 공부하는 딥러닝 1-2 합성곱 신경망(CNN) 모델 이해하기: 풀링층과 밀집층 (1) | 2025.07.05 |