访问 ARFF 中的 class 个标签

Accessing class labels in ARFF

我正在尝试学习 Weka:我正在使用此处的 Iris 数据集 http://storm.cis.fordham.edu/~gweiss/data-mining/weka-data/iris.arff

其中包含以下字段

@RELATION iris

@ATTRIBUTE sepallength  REAL
@ATTRIBUTE sepalwidth   REAL
@ATTRIBUTE petallength  REAL
@ATTRIBUTE petalwidth   REAL
@ATTRIBUTE class    {Iris-setosa,Iris-versicolor,Iris-virginica}

从这个数据集中,我尝试从这个数据集中提取 class 标签,即 {Iris-setosa,Iris-versicolor,Iris-virginica}

我不明白如何获得 class 标签?任何引用

   public  void getCdtion( String arff_path) throws Exception{

    ArffLoader arffloder = new ArffLoader();
    arffloder.setFile(new File(arff_path));
    arffloder.getStructure();
    Instances structure = arffloder.getDataSet();



    System.out.println(arffloder.getStructure(););

    }

您调用的 arffloader.getDataSet() 是 returns 数据集,而不是 header。您在问题中提供的 ARFF 只是一个 header,其中没有任何数据。要从 header 获取 class 标签,请执行以下操作。

public  void getCdtion( String arff_path) throws Exception{

    ArffLoader arffloder = new ArffLoader();
    arffloder.setFile(new File(arff_path));
    Instances structure = arffloder.getStructure();
    Attribute classAtt = structure.classAttribute();

    System.out.println(classAtt);

}

class 属性 classAtt 是一个 Attribute,请参阅 link 了解更多信息。 希望对您有所帮助!