私は現在、学校での運動に固執しています。運動は以下の通りです。K平均クラスタリングによるセントロイドの計算と表現
berg2005 [1]に記載されている野生の顔データのサブセットを検討します。 loadmat 機能を使用して、ワイルドカードデータ、データ/ワイルドカードをロードします。各データオブジェクトは、40×40×3 = 4800次元の ベクトルであり、3色40×40ピクセル画像に対応する。 を計算するk-は、K = 10のクラスターでデータのクラスター化を意味します。データセットからのいくつかのランダムな 画像と対応するクラスタ の重心をプロットして、それらの表現方法を確認します。
[1] Tamara L Berg、Alexander C Berg、Jaety Edwards、およびDA Forsyth。誰が写真にいるの?ニューラル情報処理システムの進歩、17:137-144、2005.
ここで私の質問に、どのように1つの画像の重心を計算するのですか?私は現在、顔を表示し、データセットの重心を計算することができます。私が理解できないことは、どの重心が画像4(コードサンプルで使用されている)に対応しているかをどのように知ることができるかです。データセットX全体、またはX [4]全体の重心を計算する必要がありますか?どのようなステップが必要ですか?「対応するクラスタ重心をプロットしてどのように表現されているかをプロット」するにはどうすればよいですか?
import scipy.io as spio
import sklearn.cluster as cl
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.pyplot import imshow
faces = spio.loadmat('Data/wildfaces.mat',squeeze_me=True)
X = faces['X']
Y = cl.k_means(X,10)
centroids = Y[0]
clusters = Y[1]
imshow(np.reshape(X[4,:],(3,40,40)).T)
plt.show()
あなたはありがとうございます。これを振り返ってみると、実際には明らかです。 – Rodi