如何加快计算兰德指数

时间:2015-12-12 11:11:42

标签: java

我运行了超过百万个元素的聚类。

然后,我想计算Rand Index来评估生成的集群。

我编写以下代码,但需要很长时间。

    int TP = 0;
    int TN = 0;
    int count = 0;
    double randIndex = 0;
    for (int i = 0; i < elements.size() - 1; i++) {
        count++;
        for (int j = i; j < elements.size(); j++) {
            if (clusters.get(elements.get(i)) == clusters.get(elements.get(j)) && classes.get(elements.get(i)).equals(classes.get(elements.get(j)))) {
                TP++;
            } else if (clusters.get(elements.get(i)) != clusters.get(elements.get(j)) && classes.get(elements.get(i).equals(classes.get(elements.get(j))) == false) {
                TN++;
            }
        }
    }
    randIndex = ((double) TP + (double) TN) / (double) count;

    System.out.println("rand index" + randIndex);

在代码中,HashMap clustersclasses返回给定元素所属的类的ID或名称。

有没有更好的方法来加快兰德指数的计算?

0 个答案:

没有答案