我刚开始使用moa,在尝试理解如何使用聚类算法时遇到了困难。相关的文档缺乏常用代码示例,而实现部分的注释也不够详尽…我也未能找到任何教程。
这是我的代码:
这是我得到的错误:
关于如何使用该算法的任何见解都将不胜感激。谢谢!
回答:
我已经更新了代码。正如我在github上提到的,它现在可以工作了,你需要为你的实例分配一个头部。请查看github讨论
这是更新后的代码:
static DenseInstance randomInstance(int size) { // 生成被称为InstanceHeader的特征名称 ArrayList<Attribute> attributes = new ArrayList<Attribute>(); for (int i = 0; i < size; i++) { attributes.add(new Attribute("feature_" + i)); } // 使用生成的特征名称创建实例头部 InstancesHeader streamHeader = new InstancesHeader( new Instances("Mustafa Çelik Instance",attributes, size)); // 生成随机数据 double[] data = new double[2]; Random random = new Random(); for (int i = 0; i < 2; i++) { data[i] = random.nextDouble(); } // 创建实例并分配数据 DenseInstance inst = new DenseInstance(1.0, data); // 分配实例头部(特征名称) inst.setDataset(streamHeader); return inst; } public static void main(String[] args) { WithDBSCAN withDBSCAN = new WithDBSCAN(); withDBSCAN.resetLearningImpl(); withDBSCAN.initialDBScan(); for (int i = 0; i < 1500; i++) { DenseInstance d = randomInstance(5); withDBSCAN.trainOnInstanceImpl(d); } Clustering clusteringResult = withDBSCAN.getClusteringResult(); Clustering microClusteringResult = withDBSCAN.getMicroClusteringResult(); System.out.println(clusteringResult); }
这是调试过程的截图,如您所见,聚类结果已经生成:
图片链接已损坏,您可以在github上找到它github条目链接