【发布时间】:2017-11-25 22:35:00
【问题描述】:
我有想要聚类的文本:
# 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 代表什么,文档状态:
作为参考的真实类别标签
但我没有标签。其他方式我会应用分类算法而不是聚类算法。
那些labels_true应该是什么?如果没有这些标签,我如何评估我的集群?
【问题讨论】:
-
labels_pred 应该是您的预测,您的估算器的结果。 labels_true 是实际值。您需要两者来比较您的预测与实际情况(在您的情况下)的好坏程度。
-
但我没有“实际值”,否则将是分类问题
-
@VivekKumar 好的,谢谢你能回答吗?
-
我认为这个问题不适合 StackOverflow。这就是为什么我只评论它。我只建议了一个指标。在 Cross-validated 上试用可能会让您对指标有更好的了解。
标签: python algorithm scikit-learn cluster-analysis