2017-01-24 4 views
2

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?

enter image description here

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:

enter image description here

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?

Antwort

0

Werfen Sie einen Blick auf km.cluster_centroids_. Dies gibt den Modus jeder Variablen für jeden Cluster an.

Verwandte Themen