LoginSignup
sharp-shinig-iland
@sharp-shinig-iland

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

mglearn.plots.plot_kmeans_faces()関数で真っ黒の画像しか表示されない

解決したいこと

現在「Pythonではじめる機械学習」という書籍を使って機械学習を勉強しています。
Labeled Faces in the Wildデータセットを使ってscikit-learnのk-meansのクラスタ中心を可視化してそのクラスタ内で最も典型的な画像と典型的でない画像を表示するためにmglearn.plots.plot_kmeans_faces()関数を使おうとしたのですが、画像のようにすべての画像が真っ黒になってしまいます。(ピクセル値の設定の問題?)コードは本にあるそのままのものを使っています。
また、ほかにも本にある通りのコードを入力しても、異なる結果(スコア、クラスタに含まれるデータ数など)になることが多々あります。
詳しい方がいましたら、これらの原因について教えてください。

発生している問題・エラー

図1.png

該当するソースコード

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

No Answers yet.

Your answer might help someone💌