我有一些文本,我正试图集中:
# 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
但我没有标签。另一方面,我会应用分类算法,而不是聚类算法。你知道吗
那些应该是什么?如果没有这些标签,我如何评估我的集群?你知道吗
外部评估措施两个分类。一个假设是已知的好分类,另一个假设是集群的输出。这种测度可以看作是聚类的相似函数。你知道吗
这只适用于你有一个所谓的“基本事实”,这可能适用于学术环境,但通常不会在实际使用。你知道吗
另一种方法是使用内部测量,如轮廓。但根据我的经验,它们也只适用于低维数据。在文字上,我还没有看到一个很高的轮廓。另外,剪影需要O(n²)来计算,所以它根本不适用于大型数据集。你知道吗
相关问题 更多 >
编程相关推荐