为了账号安全,请及时绑定邮箱和手机立即绑定

Java WEKA API - StratifiedRemoveFolds

Java WEKA API - StratifiedRemoveFolds

函数式编程 2022-06-04 15:04:29
我有大约 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);


查看完整回答
反对 回复 2022-06-04
  • 1 回答
  • 0 关注
  • 96 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信