[python] scikit-learn을 사용한 이미지 분류 결과 시각화
개요
이미지 분류는 컴퓨터 비전 분야에서 중요한 작업으로, 주어진 이미지를 다양한 클래스로 분류하는 것을 의미합니다. 이번에는 scikit-learn 라이브러리를 사용하여 이미지 분류 결과를 시각화하는 방법에 대해 알아보겠습니다.
필요한 라이브러리 설치
먼저, scikit-learn 라이브러리를 설치해야 합니다. 아래의 명령어를 사용하여 설치할 수 있습니다.
pip install scikit-learn
또한, 이미지를 다루기 위해 PIL(Python Imaging Library) 라이브러리도 필요합니다. 아래의 명령어를 사용하여 설치할 수 있습니다.
pip install pillow
코드 예시
다음은 scikit-learn을 사용하여 이미지 분류를 수행하고 결과를 시각화하는 예시 코드입니다.
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report
from PIL import Image
# 데이터 로드
digits = load_digits()
# 이미지 데이터와 레이블 분리
X = digits.data
y = digits.target
# 데이터셋 분할
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 분류 모델 학습
model = LogisticRegression()
model.fit(X_train, y_train)
# 테스트 데이터 예측
y_pred = model.predict(X_test)
# 분류 결과 시각화
fig, axes = plt.subplots(2, 5, figsize=(12, 6))
for i, ax in enumerate(axes.flat):
ax.imshow(Image.fromarray(X_test[i].reshape(8, 8)), cmap='gray')
ax.set_title(f"Predicted: {y_pred[i]}, Actual: {y_test[i]}")
ax.axis('off')
plt.show()
# 분류 결과 보고서 출력
print(classification_report(y_test, y_pred))
위 코드는 digits 데이터셋을 사용하여 숫자 이미지를 분류하는 예시입니다. scikit-learn의 LogisticRegression
모델을 사용하여 분류 모델을 학습하고, 테스트 데이터에 대한 예측 결과를 시각화합니다. 각 이미지의 예측 결과와 실제 레이블을 함께 표시하여 결과를 비교할 수 있습니다.
참고 자료
위 예시 코드와 참고 자료를 활용하여 scikit-learn을 사용한 이미지 분류 결과를 시각화해보세요!