0
私は、サイズが37759x4096の多次元配列を持っています。 37759は、観測の数であり、各フィーチャのサイズは4096です。VGG機能のK平均クラスタリングが機能しない
これらの機能は、37759個のイメージングのために抽出した画像ののです。私はk-meansクラスタリングを実行して、同じクラスにグループ化するかどうかを確認しました。
コードスニペット:
from sklearn.cluster import KMeans
import numpy as np
features = np.asarray(features) #converting list to features
kmeans = KMeans(n_clusters=17).fit(features)
出力:すべての
In [26]: kmeans.labels_
Out[26]: array([ 0, 0, 0, ..., 11, 11, 11], dtype=int32)
In [27]: len(kmeans.labels_)
Out[27]: 37759
In [28]: kmeans.cluster_centers_
Out[28]:
array([[ 2.46095985e-01, -4.32133675e-07, 6.41381502e-01, ...,
9.16770659e-09, 2.39292532e-03, 9.38249767e-01],
[ 1.18244767e+00, 8.83443374e-03, 8.44059408e-01, ...,
6.17001206e-09, 7.23063201e-03, 4.57734227e-01],
[ 5.05003333e-01, 2.45869160e-07, 1.07537758e+00, ...,
-4.24915925e-09, 2.19564766e-01, 6.04652226e-01],
...,
[ 2.72164375e-01, 7.94929452e-03, 8.18695068e-01, ...,
-3.43425199e-09, 7.62813538e-03, 2.84249210e+00],
[ 1.03947210e+00, 1.03959814e-04, 7.81472027e-01, ...,
7.42147677e-09, 1.28777415e-01, 8.22515607e-01],
[ 1.55310243e-01, 6.24559261e-02, 7.55328536e-01, ...,
-3.84170562e-09, 2.09998786e-02, 4.18608427e-01]], dtype=float32)
まず、それが高次元データであるため、私はK-手段がついて行くには最良の方法であるかどうかわからないですそれ。これは、分類のみ11クラスタの代わりに、とにかく17 しかし、我々はそれが(機能)同じの
- クラスは積み重ねられていますが、
kmeans.cluster_centers_
ではクラスターの中心が非常に異なり、最初の3つの配列から推測されています。 - このデータをどのように視覚化できますか?ユニークな配列を見つけるにはどうすればいいですか?
- このような非常に高次元のデータに対してどのようにクラスタリングを実行することができますか?
私はインターとイントラクラスの共分散を見て、私の数が理にかなっていることを確認しました。このような高次元データのT-SNEに関するコメントはありますか? – deeplearning
クラスタリングのためのt-SNEは非常に誤解を招く可能性があります。この優れたグラフィカルな回答:https://stats.stackexchange.com/a/264647/7828を参照してください。これはt-SNEがどのようにデータになかった「クラスタ」を構成するかを示しています。 –