だから、私はアルゴリズムを構築していて、エバリュエーター全体ではなく、クロスフォールド タスクのみを実行する必要があります。これは私のコードです:
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 はすべての train-test ファイルを作成していますが、それらはすべて空です。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
エバリュエーター全体ではなく、crossfold タスクのみを実行することに関する情報はあまり見つかりませんでした。ありがとう