cluster-analysis - weka 中的文本聚类

标签 cluster-analysis weka

我正在尝试使用 simpleKmeans 在 weka 中对文本数据(论坛中的帖子内容 + 用户)817 个实例进行聚类。由于某种原因,聚类是这样的:

Clustered Instances

0      812 ( 99%)
1        1 (  0%)
2        1 (  0%)
3        1 (  0%)
4        1 (  0%)
5        1 (  0%)

有人可以向我解释一下为什么我没有均匀地得到聚类吗?

最佳答案

K-means 不保证偶数聚类。 (有 a tutorial on how to modify k-means to produce even-sized clusters ;但这并不能解决你的问题)。

k-means 对异常值非常敏感。在存在异常值的情况下,很常见的是仅由单个点组成的“异常值簇”。这可能就是您所观察到的。

但更重要的是,k-means 也不能很好地处理高维离散数据......而您的文本数据很可能正是这样:高维和离散值。问题在于,在这些数据上,每个点或多或少都是唯一的。 IE。异常值。没有两个表单帖子(可能除了垃圾邮件)是相同的。更糟糕的是:它们在欧氏距离平方(这是 k 均值的最佳距离)方面也或多或少相似。

您正在将 k-means 用于并非设计的场景。因此,它效果不佳也就不足为奇了。它用于低维连续数据的量化;不适用于从文本中提取有意义的组。

关于cluster-analysis - weka 中的文本聚类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21991767/

相关文章:

python - 具有自定义指标的 DBSCAN

machine-learning - 为什么ELKI除了距离矩阵之外还需要db.in文件?另外 db.in 文件应该包含什么?

java - WEKA 用 SimpleDateFormat 解析我的日期......除非它涉及 2 点钟

从聚类图中删除点(factoextra)

c++ - OpenCV 1.1 高维空间中的 K-Means 聚类

java - weka中的字符串数组属性

weka - 如何在Weka中使用重量

Java,维卡 : How to predict numeric attribute?

java - 从java对象获取WEKA实例

mongodb - 如何使用 MapReduce 进行 k 均值空间聚类