Кластеризация MOA StreamKM не дает никакого результата

В настоящее время я пытаюсь сгруппировать большое количество точек данных в определенное количество кластеров, и я хотел попробовать потоковые k-средние MOA StreamKM, Очень простой пример того, что я пытаюсь сделать, используя случайные данные, выглядит следующим образом:

StreamKM streamKM = new StreamKM();
streamKM.numClustersOption.setValue(5); // default setting
streamKM.widthOption.setValue(100000); // default setting
streamKM.prepareForUse();
for (int i = 0; i < 150000; i++) {
    streamKM.trainOnInstanceImpl(randomInstance(2));
}
Clustering result = streamKM.getClusteringResult();
System.out.println("size = " + result.size());
System.out.println("dimension = " + result.dimension());

Случайные экземпляры создаются следующим образом:

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

Тем не менее, при запуске данного кода, кластеры не создаются:

System.out.println("size = " + result.size()); // size = 0
System.out.println("dimension = " + result.dimension()); // NPE

Есть ли что-то еще, о чем я должен позаботиться, или у меня есть фундаментальное неправильное понимание концепций кластеризации MOA?

0 ответов

Я думаю prepareForUse() Метод не является правильным методом, который инициализирует алгоритм.

Вместо streamKM.prepareForUse();, вы должны использовать streamKM.resetLearning();,

Короче говоря, ваш код должен выглядеть так:

StreamKM streamKM = new StreamKM();
streamKM.numClustersOption.setValue(5); // default setting
streamKM.widthOption.setValue(100000); // default setting
streamKM. resetLearning(); // UPDATED CODE LINE !!!
for (int i = 0; i < 150000; i++) {
    streamKM.trainOnInstanceImpl(randomInstance(2));
}
Clustering result = streamKM.getClusteringResult();
System.out.println("size = " + result.size());
System.out.println("dimension = " + result.dimension());
Другие вопросы по тегам