NameError: name 'labels_true' is not defined for dbscan

NameError: name 'labels_true' is not defined for dbscan

我正在使用模板脚本并尝试输入我的数据。但是,我不确定 labels_true 意味着什么,因为错误表明它是未定义的。

这是我的数据数组:

data=array([[5.71585827e+00, 3.32320000e+04],
       [0.00000000e+00, 0.00000000e+00],
       [0.00000000e+00, 0.00000000e+00],
       ...,
       [9.57746479e-02, 3.40000000e+01],
       [7.01388889e-01, 1.01000000e+02],
       [9.70350404e-02, 3.60000000e+01]])

现在我正在应用这个脚本:

import numpy as np
from sklearn.cluster import DBSCAN
from sklearn import metrics
from sklearn.preprocessing import StandardScaler


# #############################################################################

X=data
X = StandardScaler().fit_transform(X)

# #############################################################################
# Compute DBSCAN
db = DBSCAN(eps=0.3, min_samples=10).fit(X)
labels = db.labels_ 

print("Homogeneity: %0.3f" % metrics.homogeneity_score(labels_true, labels))


NameError: name 'labels_true' is not defined

来自 scikit-learn 上的 documentation homogeneity_score(强调已添加):

Homogeneity metric of a cluster labeling given a ground truth.

其中 labels_true

ground truth class labels to be used as a reference

所以,如果你已经有了基本事实,那就是 labels_true 论证,它将与你预测的 labels 进行比较,给出得分。

这里的错误很明显是因为你在labels_true中没有提供这样的ground truth,变量没有定义,正如错误所说

直接的结果是,如果没有基本事实,则无法使用该指标。