
320
1
부
머신러닝
n_labeled = 50
log_reg = LogisticRegression()
log_reg.fit(X_train[:n_labeled], y_train[:n_labeled])
테스트 세트에서 이 모델의 성능은 어떨까요?
>>> log_reg.score(X_test, y_test)
0.8333333333333334
정확도가 겨우
83
.
3
%입니다. 전체 데이터셋을 사용했을 때보다 낮은 정확도가 나온 것이 당
연합니다. 어떻게 개선할 수 있을지 알아보죠. 먼저 훈련 세트를
50
개의 클러스터로 모읍니다.
그다음 각 클러스터에서 센트로이드에 가장 가까운 이미지를 찾습니다. 이런 이미지를
대표
이
미지
representative
image
라고 부릅니다.
k = 50
kmeans = KMeans(n_clusters=k)
X_digits_dist = kmeans.fit_transform(X_train)
representative_digit_idx = np.argmin(X_digits_dist, axis=0)
X_representative_digits = X_train[representative_digit_idx]
[그림
9
-
13
]이 대표 이미지
50
개입니다.
그림
9-13
50
개의 대표 숫자 이미지(클러스터당 한 개)
이미지를 보고 수동으로 레이블을 할당해보죠.