Ich führe eine Cluster-Analyse auf kategorische Daten, daher mit k-Modi-Ansatz.Reveal K-Modi Cluster-Funktionen
Meine Daten sind wie eine Präferenz Umfrage geformt: Wie magst du Haare und Augen?
Der Proband kann eine Antwort von einer festen (multiple choice) abholen Satz von 4 Möglichkeit.
Ich bekomme daher die Dummies, k-Modi anwenden, verbinden Sie die Cluster zurück auf die ursprüngliche df und dann plotten sie in 2D mit PCA.
Mein Code sieht so aus:
import numpy as np
import pandas as pd
from kmodes import kmodes
df_dummy = pd.get_dummies(df)
#transform into numpy array
x = df_dummy.reset_index().values
km = kmodes.KModes(n_clusters=3, init='Huang', n_init=5, verbose=0)
clusters = km.fit_predict(x)
df_dummy['clusters'] = clusters
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
pca = PCA(2)
# Turn the dummified df into two columns with PCA
plot_columns = pca.fit_transform(df_dummy.ix[:,0:12])
# Plot based on the two dimensions, and shade by cluster label
plt.scatter(x=plot_columns[:,1], y=plot_columns[:,0], c=df_dummy["clusters"], s=30)
plt.show()
und ich visualisieren kann:
Nun mein Problem ist: Kann irgendwie die Besonderheit eines jeden Clusters offenbaren? dh, was sind die Hauptmerkmale (vielleicht blonde Haare und blaue Augen) der Gruppe der grünen Punkte im Streudiagramm?
Ich bekomme das Clustering passiert ist, aber ich kann keinen Weg finden zu übersetzen, was das Clustering tatsächlich bedeutet.
Sollte ich mit dem .labels_ Objekt spielen?