我想对 MQ2008 数据集进行 5 折交叉验证。我正在使用 RankLib 在数据集上应用 ML 算法。我对 Ranklib 中为交叉验证给出的 kcv 选项感到困惑。使用的命令:
java - jar RankLib.jar -ranker 0 -train train.txt -test test.txt -validate vali.txt -kcv 5
在这里,我们为训练、测试和验证指定了不同的文件。然后是如何划分数据以进行 5 折交叉验证。
我想对 MQ2008 数据集进行 5 折交叉验证。我正在使用 RankLib 在数据集上应用 ML 算法。我对 Ranklib 中为交叉验证给出的 kcv 选项感到困惑。使用的命令:
java - jar RankLib.jar -ranker 0 -train train.txt -test test.txt -validate vali.txt -kcv 5
在这里,我们为训练、测试和验证指定了不同的文件。然后是如何划分数据以进行 5 折交叉验证。
要使用 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