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()
将 从 运行 总和计算 当前中心。
首先:我在我的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()
将 从 运行 总和计算 当前中心。