DBSCAN с python и scikit-learn: что такое целочисленные labes, возвращаемые Make blobs?

Я пытаюсь понять пример алгоритма DBSCAN, реализованного scikit (http://scikit-learn.org/0.13/auto_examples/cluster/plot_dbscan.html).

Я изменил строку

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

С X = my_own_data, поэтому я могу использовать свои собственные данные для DBSCAN.

теперь переменная labels_true, который является вторым возвращаемым аргументом make_blobs используется для вычисления некоторых значений результатов, как это:

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'))

как могу ли я вычислить labels_true из моих данных X? что именно означает scikit с label по этому делу?

спасибо за вашу помощь!

1 ответов


labels_true является "истинным" назначением точек меткам: какой кластер они должны фактически принадлежать. Это доступно, потому что make_blobs знает, какой "blob"он сгенерировал точку.

вы не можете получить это для своих собственных произвольных данных X, Если у вас нет каких-то истинных меток для точек (в этом случае вы все равно не будете делать кластеризацию). Это просто показывает некоторые меры того, насколько хорошо кластеризация выполняется в поддельном случае, когда вы знаете истинный ответ.