Java MOA Clustream WithKmeans:微观和宏观集群的零中心和(半径,权重 = 0)

Java MOA Clustream WithKmeans: null center and (radius, weight = 0) for BOTH micro and macro clusters

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

现在,让我们进入正题:我正在尝试使用 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();
    }
}

我已经阅读 source code 很多遍了,在我看来,我使用的功能是正确的,顺序是正确的……我不知道我错过了什么……任何反馈欢迎!

确保您已为算法提供足够的数据,它会分批处理数据。

字段未使用,可能来自某些 parent class 具有不同用途。

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