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
, Если у вас нет каких-то истинных меток для точек (в этом случае вы все равно не будете делать кластеризацию). Это просто показывает некоторые меры того, насколько хорошо кластеризация выполняется в поддельном случае, когда вы знаете истинный ответ.