더북(TheBook)

다음 그림은 output1 폴더 위치에 분류된 개 이미지입니다.

▲ 그림 11-9 분류된 개 이미지

완벽하지는 않지만, 개와 고양이가 유사한 이미지끼리 분류되었습니다.

참고로 예제 이미지는 개와 고양이로만 구성되어 있기 때문에 클래스가 두 개라는 것을 알 수 있지만, 이미지가 수백 개에서 수천만 개로 구성된 데이터셋이라면 클래스를 결정하기 어려울 수 있습니다. 이때 사용할 수 있는 것이 실루엣(silhouette)과 엘보(elbow) 방법입니다. 엘보는 앞서 살펴보았기 때문에 여기에서는 실루엣 방법을 사용하겠지만, 정확한 클래스를 알아내려면 두 가지 방법을 모두 사용해 보아야 합니다.

코드 11-6 KMeans에서 클래스 개수 알아보기

sil = []
kl = []
kmax = 10
for k in range(2, kmax+1):
    kmeans2 = KMeans(n_clusters=k).fit(pred_images)
    labels = kmeans2.labels_
    sil.append(silhouette_score(pred_images, labels, metric='euclidean')) ------ 실루엣 방법을 이용한 클래스 개수 확인
    kl.append(k)

개와 고양이 데이터셋 외 다른 이미지들로 구성된 데이터셋을 적용하여 확인해 보는 것도 학습하기에 좋은 방법이므로 직접 사용해 보길 권장합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.