2013-04-04 13 views
7

Sto cercando di comprendere l'esempio dell'algoritmo DBSCAN implementato da scikit (http://scikit-learn.org/0.13/auto_examples/cluster/plot_dbscan.html).DBSCAN con python e scikit-learn: quali sono esattamente i lab di interi restituiti da make_blobs?

ho cambiato la linea

X, labels_true = make_blobs(n_samples=750, centers=centers, cluster_std=0.4) 

con X = my_own_data, così posso usare i miei dati per l'DBSCAN.

ora, la variabile labels_true, che è il secondo argomento tornato di make_blobs viene utilizzato per calcolare alcuni valori dei risultati, come questo:

print "Homogeneity: %0.3f" % metrics.homogeneity_score(labels_true, labels) 
print "Completeness: %0.3f" % metrics.completeness_score(labels_true, labels) 
print "V-measure: %0.3f" % metrics.v_measure_score(labels_true, labels) 
print "Adjusted Rand Index: %0.3f" % \ 
    metrics.adjusted_rand_score(labels_true, labels) 
print "Adjusted Mutual Information: %0.3f" % \ 
    metrics.adjusted_mutual_info_score(labels_true, labels) 
print ("Silhouette Coefficient: %0.3f" % 
     metrics.silhouette_score(D, labels, metric='precomputed')) 

come posso calcolare labels_true dai miei dati X? che cosa significa scikit esattamente con label in questo caso?

grazie per il vostro aiuto!

risposta

11

labels_true è l'assegnazione "vera" dei punti alle etichette: su quale cluster devono essere effettivamente assegnati. Questo è disponibile perché make_blobs sa da quale "blob" ha generato il punto da.

Non è possibile ottenere quello per i propri dati arbitrari X, a meno che non si disponga di un tipo di etichette reali per i punti (nel qual caso non si farebbe comunque il clustering). Questo mostra solo alcune misure di come il clustering si è svolto in un caso finto in cui si conosce la vera risposta.

+0

grazie e scusa per la mia stupidità :-) – otmezger

+3

Bella risposta e non una domanda stupida;) –

+0

Quindi commenta queste righe e l'esempio viene eseguito. #print ("Omogeneità:% 0.3f" % metrics.homogeneity_score (labels_true, etichette)) #print ("Completezza:% 0.3f" % metrics.completeness_score (labels_true, etichette)) #print ("V- misura:% 0.3f "% metrics.v_measure_score (labels_true, labels)) #print (" Indice Rand aggiustato:% 0.3f " #% metrics.adjusted_rand_score (labels_true, labels)) #print (" Informazioni mutue corrette: % 0,3f " #% metrics.adjusted_mutual_info_score (labels_true, labels)) – intotecho