RankLib中的k倍交叉验证

时间:2019-09-14 16:56:13

标签: machine-learning cross-validation k-fold

我想对MQ2008数据集进行5折交叉验证。我正在使用RankLib在数据集上应用ML算法。我对Ranklib中提供的用于交叉验证的kcv选项感到困惑。 使用的命令:

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

这里我们指定用于训练,测试和验证的不同文件。然后将其分割为5倍交叉验证的数据。

1 个答案:

答案 0 :(得分:0)

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

程序本身将数据划分以进行随机训练,测试和验证。 当您使用5倍交叉验证时,程序将重复该过程5次,并为您提供5次分析的平均值作为最终结果。 您需要为学习评估选择一个指标。参见How to use page上的[ -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