1

我想对 MQ20​​08 数据集进行 5 折交叉验证。我正在使用 RankLib 在数据集上应用 ML 算法。我对 Ranklib 中为交叉验证给出的 kcv 选项感到困惑。使用的命令:

java - jar RankLib.jar -ranker 0 -train train.txt -test test.txt -validate vali.txt -kcv 5

在这里,我们为训练、测试和验证指定了不同的文件。然后是如何划分数据以进行 5 折交叉验证。

4

1 回答 1

0

要使用 ranklib 进行 k 折交叉验证,您需要使用一个数据集

程序本身将数据划分为随机训练、测试和验证。当您使用 5 折交叉验证时,程序将重复该过程 5 次,并为您提供 5 次分析的平均值作为最终结果。您需要为您的学习评估选择一个指标。请参阅[ -metric2t <metric> ]如何使用页面

例如,请参阅下面的命令。我只有一个数据集来提供我的算法。我用作NDCG@10我的评估指标。此外,我曾经-kcvmd将模型保存在目录中并-kcvmn命名模型。

java -jar RankLib-2.1-patched.jar -train trainingData.txt -ranker 8 -kcv 5 -kcvmd kcvModels/ -kcvmn txt -metric2t NDCG@10 -metric2T NDCG@10 -save Models/model.txt
于 2020-06-06T22:22:35.197 回答