-2

我想对 k-means 聚类的输入提出一些建议。我对这个 k-means 聚类(或看在上帝的份上的聚类)相对较新,并找到了这个源代码: Shyam Sivaraman 的 k-means 我可能想使用这个 JAVA,因为我的主管希望我只是改变和应用算法和不要自己从头开始创建它。所以,根据代码:

Vector dataPoints = new Vector();
dataPoints.add(new DataPoint(22,21,"data1"));
dataPoints.add(new DataPoint(19,20,"data2"));
dataPoints.add(new DataPoint(18,22,"data3"));
...

到目前为止我所知道的是它接受两个可变数据点(x 和 y)和数据名称,基于以下代码:

public DataPoint(double x, double y, String name) {
    this.mX = x;
    this.mY = y;
    this.mObjName = name;

现在我想要的是在进行文档聚类时更改输入以接受文档向量。关于如何更改代码的任何建议?换句话说,如果可能的话(代码最后一个选项)。或者,如果你们在同一主题上找到任何链接,不妨在这里分享。

期待任何建议的家伙。

4

2 回答 2

0

在最简单的方法中,您必须计算document-term matrix

您的代码在 2D 空间中对向量 (x,y) 进行聚类。您只需将其扩展为 N 维空间(根据文档术语矩阵中的向量维度)。

另外我建议查看TF*IDF weighting,它可以改善聚类结果。

于 2012-05-31T14:50:41.517 回答
0

我建议使用 n 维向量作为输入,以便您的实现更通用。

如果你想要一些高效的实现K-Means的 Java 源代码,你可以查看我的数据挖掘软件

它提供了多种算法,包括 K-Means 以及用于启动算法的图形界面。

最好的,

菲利普

于 2012-07-18T18:37:48.340 回答