0

首先:我moa-release-2019.05.0-bin/moa-release-2019.05.0/lib/moa.jar在我的java项目中使用。

现在,让我们进入正题:我正在尝试使用moa.clusterers.clustream.WithKmeans 流聚类算法,但我不知道为什么会这样......

我是使用 moa 的新手,我很难尝试解码必须如何使用聚类算法。文档缺少常见用法的示例代码,实现也没有得到很好的解释……也没有找到任何教程。

  • 我的代码:
import com.yahoo.labs.samoa.instances.DenseInstance;
import moa.cluster.Clustering;
import moa.clusterers.clustream.WithKmeans;

public class TestingClustream {
    static DenseInstance randomInstance(int size) {
        DenseInstance instance = new DenseInstance(size);
        for (int idx = 0; idx < size; idx++) {
            instance.setValue(idx, Math.random());
        }
        return instance;
    }

    public static void main(String[] args) {
        WithKmeans wkm = new WithKmeans();
        wkm.kOption.setValue(5);
        wkm.maxNumKernelsOption.setValue(300);
        wkm.resetLearningImpl();
        for (int i = 0; i < 10000; i++) {
            wkm.trainOnInstanceImpl(randomInstance(2));
        }
        Clustering clusteringResult = wkm.getClusteringResult();
        Clustering microClusteringResult = wkm.getMicroClusteringResult();
    }
}

  • 来自调试器的信息:

在此处输入图像描述

在此处输入图像描述

我已经阅读了很多次源代码,在我看来,我正在使用正确的功能,以正确的顺序......我不知道我错过了什么......欢迎任何反馈!

4

1 回答 1

1

确保您已经为算法提供了足够的数据,它将批量处理数据。

这些字段未使用,可能来自某些具有不同目的的父类。

使用 getter 方法,例如getCenter()将根据运行总和计算当前中心。

于 2019-11-17T21:16:07.680 回答