scikit学习文档中的“标签”代表什么?

2024-04-19 10:41:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些文本,我正试图集中:

# Training
hasher = HashingVectorizer(non_negative=True,norm="l1", analyzer="char", ngram_range=(5,9))
vectorizer = make_pipeline(hasher, TfidfTransformer())
training = vectorizer.fit_transform(list_of_texts)

#LSA
svd = TruncatedSVD(100)
lsa = make_pipeline(svd, Normalizer(copy=False))
training = lsa.fit_transform(training)

# Clustering
km = KMeans(n_clusters=8, init='k-means++', max_iter=300, n_init=3)
km.fit(training)

在这些步骤之后,我想看看我的集群是好是坏。我发现这些指标:

metrics.homogeneity_score(labels_true, labels_pred))
metrics.completeness_score(labels_true, labels_pred))
metrics.v_measure_score(labels_true, labels_pred))
metrics.adjusted_rand_score(labels_true, labels_pred))

我猜labels_pred代表聚类算法给出的标签。但我无法找出labels_true代表什么,文档状态:

ground truth class labels to be used as a reference

但我没有标签。另一方面,我会应用分类算法,而不是聚类算法。你知道吗

那些应该是什么?如果没有这些标签,我如何评估我的集群?你知道吗


Tags: 算法truemakelabelspipelinetrainingtransform标签
1条回答
网友
1楼 · 发布于 2024-04-19 10:41:43

外部评估措施两个分类。一个假设是已知的好分类,另一个假设是集群的输出。这种测度可以看作是聚类的相似函数。你知道吗

这只适用于你有一个所谓的“基本事实”,这可能适用于学术环境,但通常不会在实际使用。你知道吗

另一种方法是使用内部测量,如轮廓。但根据我的经验,它们也只适用于低维数据。在文字上,我还没有看到一个很高的轮廓。另外,剪影需要O(n²)来计算,所以它根本不适用于大型数据集。你知道吗

相关问题 更多 >