machine-learning - 使用 weka.clusterers.HierarchicalClusterer 时出现 IllegalArgumentException

标签 machine-learning cluster-analysis weka hierarchical-clustering

我搜索了很多,但没有找到任何描述如何使用 WEKA HierarchicalClusterer 的示例代码。使用以下 C# 代码会在“agg.buildClusterer(insts);”处出现 IllegalArgumentException。

weka.clusterers.HierarchicalClusterer agg = new weka.clusterers.HierarchicalClusterer();
agg.setNumClusters(NumCluster);
/*
Tag[] TAGS_LINK_TYPE = agg.getLinkType().getTags();
agg.setLinkType(new SelectedTag(1, TAGS_LINK_TYPE));
*/
agg.buildClusterer(insts);
for (int i = 0; i < insts.numInstances(); i++)
{
    int clusterNumber = agg.clusterInstance(insts.instance(i));
}

StackTrace 说:

at java.util.PriorityQueue..ctor(Int32 initialCapacity, Comparator comparator)
at weka.clusterers.HierarchicalClusterer.doLinkClustering(Int32 , Vector[] , Node[] )
at weka.clusterers.HierarchicalClusterer.buildClusterer(Instances data)

但未指定 Message 或 InnerException。 变量“insts”是一个实例对象,它只保存具有等量数值属性的实例。

有人能够快速找到我的错误或者请发布/链接一些示例代码吗? 另外,LinkType(注释代码)的设置是否正确?

谢谢, 比约恩

最佳答案

HierarchicalClusterer 类具有 TAGS_LINK_TYPE 属性。所以喜欢

agg.setLinkType(new SelectedTag(1, HierarchicalClusterer.TAGS_LINK_TYPE));

将实现您设置链接所需的效果。那么这个 1 到底是什么意思呢?从 javadoc 中我们可以看到 TAGS_LINK_TYPE 包含哪些内容:

 -L Link type (Single, Complete, Average, Mean, Centroid, Ward, Adjusted complete, Neighbor Joining)
  [SINGLE|COMPLETE|AVERAGE|MEAN|CENTROID|WARD|ADJCOMLPETE|NEIGHBOR_JOINING]

一般来说,您的代码对于 C# 情况来说看起来没问题。我发现您在上面的示例中没有设置距离度量,也许您想这样做?我也使用 IKVM 尽可能地使用 Weka 和 C#。我发现允许分层聚类的数据集不太大。也许您的数据集超出了 WEKA 可以处理的范围,如果减小数据集的大小,您就可以避免错误?

关于machine-learning - 使用 weka.clusterers.HierarchicalClusterer 时出现 IllegalArgumentException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12138879/

相关文章:

opencv - SVM图像目标大小问题

math - 平移等方差及其与卷积层和空间池化层的关系

java - 从文件中保存和加载 SMO weka 模型

weka - 为什么weka中的分类模型将所有实例预测为一个类?

machine-learning - weka中的ClusterMembership类有什么作用?

python - 成人收入数据集神经网络的训练精度较低

python - python 中 SVM 的主动学习(例如池采样)

r - 如何将新数据映射/绘制到训练有素的 SOM map 上?

python - 如何使用 python 查找簇?

c# - 确定一组坐标是否在同一区域内