mglearn.plots.plot_kmeans_faces()関数で真っ黒の画像しか表示されない
解決したいこと
現在「Pythonではじめる機械学習」という書籍を使って機械学習を勉強しています。
Labeled Faces in the Wildデータセットを使ってscikit-learnのk-meansのクラスタ中心を可視化してそのクラスタ内で最も典型的な画像と典型的でない画像を表示するためにmglearn.plots.plot_kmeans_faces()関数を使おうとしたのですが、画像のようにすべての画像が真っ黒になってしまいます。(ピクセル値の設定の問題?)コードは本にあるそのままのものを使っています。
また、ほかにも本にある通りのコードを入力しても、異なる結果(スコア、クラスタに含まれるデータ数など)になることが多々あります。
詳しい方がいましたら、これらの原因について教えてください。
発生している問題・エラー
該当するソースコード
import mglearn
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans
#Labeled Faces in the Wildデータセット
from sklearn.datasets import fetch_lfw_people
people = fetch_lfw_people(min_faces_per_person=20, resize=0.7)
#各人の画像を50枚に制限
mask = np.zeros(people.target.shape, dtype=bool)
for target in np.unique(people.target):
mask[np.where(people.target == target)[0][:50]] = 1
X_people = people.data[mask]
y_people = people.target[mask]
#グレースケールの値を0~1に変換する。
X_people = X_people / 255.
#PCAにより100成分に次元削滅
pca = PCA(n_components=100, whiten=True, random_state=0)
pca.fit(X_people)
X_pca = pca.transform(X_people)
#k-meansでクラスタリング
km = KMeans(n_clusters=10, random_state=0)
km.fit(X_pca)
#クラスタセンタとそれに最も近い5つの画像と最も遠い5つの画像が表示される
mglearn.plots.plot_kmeans_faces(km, pca, X_pca, X_people, y_people, people.target_names)
0