【问题标题】:NameError: name 'labels_true' is not defined for dbscanNameError:没有为 dbscan 定义名称“labels_true”
【发布时间】:2020-01-17 17:07:49
【问题描述】:

我正在使用模板脚本并尝试输入我的数据。但是,我不确定 label_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

【问题讨论】:

    标签: python machine-learning scikit-learn cluster-analysis dbscan


    【解决方案1】:

    来自 scikit-learn 上的 documentation homogeneity_score(已添加重点):

    集群标签的同质性度量给定一个基本事实

    labels_true 在哪里

    作为参考的真实类别标签

    所以,如果您已经掌握了基本事实,那将是 labels_true 参数,它将与您预测的 labels 进行比较以给出分数。

    这里的错误显然是因为您没有在labels_true 中提供这样的基本事实,并且变量没有定义,正如错误所说。

    它的直接后果是,如果无法获得基本事实,则无法使用该指标。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-24
      • 1970-01-01
      • 2021-04-15
      • 2019-01-26
      • 2021-10-05
      相关资源
      最近更新 更多