machine-learning - RankLib 中的 k 折交叉验证
问题描述
我想对 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
推荐阅读
- android - 添加firebase消息后颤振获得RuntimeException
- c# - 尝试/捕获下溢和上溢异常
- ios - 如何在 iOS Swift 中连接套接字?
- python - 字典值的平均值,其中值采用列表/数组的形式。(一个班轮)
- java - 一般异常:使用 restTemplate 时连接超时
- reactjs - Material UI,使用额外的 prop 渲染 Row 组件
- swift - 快速比较两个日期时出现问题
- java - 在 Azure Devops CI/CD 管道中使用 JAVA 运行自动化 Selenium Web 驱动程序 UI 测试
- c# - 如何将 app.UseExceptionHandler 从 netcore 中的 startup.cs 删除到其他文件?
- java - proguard 死代码分析给出了私有字段的误报