我有大約 100 個 csv 格式的數據集,我想應用 Weka 過濾器 StratifiedRemoveFolds。到目前為止,我的代碼是:CSVLoader loader = new CSVLoader();loader.setSource(new File(datasetToBeProcessed.toString()));Instances data = loader.getDataSet();StratifiedRemoveFolds strRmvFolds = new StratifiedRemoveFolds();strRmvFolds.setFold(fold);strRmvFolds.setNumFolds(DatasetPreprocessing.numberOfFolds);strRmvFolds.setSeed(0);strRmvFolds.setInvertSelection(false);strRmvFolds.setInputFormat(data);data = StratifiedRemoveFolds.useFilter(data, strRmvFolds);當我運行它時,我收到以下錯誤消息:stratifyDatasetsWithWekaApi SEVERE: nullweka.core.UnassignedClassException: weka filters.supervised.instance.StratifiedRemoveFolds: Class attribute not set!我也嘗試過以下方法:CSVLoader loader = new CSVLoader();loader.setSource(new File(datasetToBeProcessed.toString()));Instances data = loader.getDataSet();String[] options = new String[4]; // initialize optionsoptions[0] = "-S 0"; // seed numberoptions[1] = "-V"; // invert selectionoptions[2] = "-N 8"; // total number of foldsoptions[3] = "-F 1"; // current foldstrRmvFolds.setOptions(options);strRmvFolds.setInputFormat(data);data = StratifiedRemoveFolds.useFilter(data, strRmvFolds);錯誤信息是:stratifyDatasetsWithWekaApiSEVERE: nulljava.lang.Exception: Illegal options: -S 0 -N 8 -F 1 我究竟做錯了什么?
1 回答

繁星淼淼
TA貢獻1775條經驗 獲得超11個贊
您需要為加載的實例設置類索引。類索引通常是最后一個索引。您可以將其設置為:
Instances data = loader.getDataSet();
data.setClassIndex(data.numAttributes() - 1);
添加回答
舉報
0/150
提交
取消