假设虹膜数据有3个唯一的类值。
@ATTRIBUTE class {Iris-setosa,Iris-versicolor,Iris-virginica}
如何使用Weka API获取这些值?我能找到的最接近的是numDistinctValues(),我目前用作
System.out.println(data.numDistinctValues(data.numAttributes()-1));
然而,这只给出了不同数量的类,即3.我想得到实际值,即类标签“Iris-setosa,Iris-versicolor,Iris-virginica”。
我们可以使用Instances()找到不同的类值,方法是提取与每个实例对应的所有类标签,然后从中查找唯一值。是否有直接从ARFF格式的数据集描述中提取此信息的方法?
答案 0 :(得分:2)
我找到了一个简单的解决方案
for (int i=0;i<data.classAttribute().numValues();i++) {
System.out.println(data.classAttribute().value(i));
}
基本上,我们在class属性中找到值的数量,然后迭代该数字以使用value()方法查找相应的值。
答案 1 :(得分:0)
对于数字属性,您可以使用此代码获取数据范围:
AttributeStats as = instances.attributeStats(index);
double min = as.numericStats.min;
double max = as.numericStats.max;