所以,我正在构建一个算法,我只需要执行交叉折叠任务,而不是整个评估器。这是我的代码:
File file = new File("lenskitreadyDatabase.csv");
EventFormat eventFormat = new CustomFormatter();
DataSource dataSource = new GenericDataSource("split", new TextEventDAO(file, eventFormat));
CrossfoldTask task = new CrossfoldTask("cross10");
task
.setHoldout(5)
.setSource(dataSource)
.setPartitions(FIRST_CROSSFOLD)
.setProject(new EvalProject(new Properties()));
List<TTDataSet> l = task.perform();
l.stream().forEach(v -> {
System.out.println(v.getName());
System.out.println(v.getTestData().getEventDAO().streamEvents().hasNext());
});
Lenskit正在创建我的所有列车测试文件,但它们都是空的。我已经使用forEach方法来检查错误是否在将文件写入磁盘,但显然不是,因为这是我与System.out.printLn()
cross10.0
false
cross10.1
false
cross10.2
false
cross10.3
false
cross10.4
false
cross10.5
false
cross10.6
false
cross10.7
false
cross10.8
false
cross10.9
false
得到的日志:
{{1}}
我没有找到关于仅运行交叉折叠任务而不是整个评估者的大量信息,所以如果你可以了解一下,那就太棒了。感谢