『画像認識』(機械学習プロフェッショナルシリーズ)*1の第4章pp.92-95に載っていた、KMeansによるBag of Visual Words(BoVW)を実装。
import numpy as np from sklearn.cluster import KMeans ## KMeansによるBoVW def coding(X_ap): bovw = np.zeros((len(X_ap), NUM_K)) for i in range(len(X_ap)): cluster = kmeans_model.predict(X_ap[i].reshape(1, -1)) bovw[i, cluster] += 1 return bovw # KMeansモデルの学習 NUM_K = 200 # クラスタ数 kmeans_model = KMeans(n_clusters=NUM_K, max_iter=100).fit(X_ap) # コーディング C = coding(X_ap)