DBSCAN с python и scikit-learn: какие именно целочисленные метки возвращаются 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 в этом случае?

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


person otmezger    schedule 04.04.2013    source источник


Ответы (1)


labels_true — это «истинное» назначение точек меткам: к какому кластеру они должны фактически принадлежать. Это доступно, потому что make_blobs знает, из какого "блоба" была сгенерирована точка.

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

person Danica    schedule 04.04.2013
comment
Так что закомментируйте эти строки, и пример запустится. #print(Однородность: %0.3f % metrics.homogeneity_score(labels_true, labels)) #print(Полнота: %0.3f % metrics.completeness_score(labels_true, labels)) #print(V-measure: %0.3f % metrics.v_measure_score (labels_true, labels)) #print(Скорректированный индекс Rand: %0.3f # % metrics.adjusted_rand_score(labels_true, labels)) #print(Скорректированная взаимная информация: %0.3f # % metrics.adjusted_mutual_info_score(labels_true, labels)) - person intotecho; 15.04.2016