Lemur Ra​​nkLib return 训练代码 1

Lemur RankLib return code 1 on training

我正在使用 python 为我的数据(形状:218279 行 × 1504 列)使用 RankLib,并在 none 输出中得到错误代码 1。我只是想知道 RankLib 上是否有任何关于错误代码的文档?

我正在为我的项目使用 Jupyter iPython,运行 使用 subprocess.run 的过程。如果您想知道,下面是我的训练代码。

train_data = 'learning_to_rank_data/training.txt'
test_data = ''
validate_data = ''
metric2t = 'NDCG@2'
model_dest = 'learning_to_rank_data/model.txt'

try:
    subprocess.run(['java', '-jar', ranklibjar, '-train', train_data, '-ranker', '3', '-metric2t', metric2t, '-save', model_dest], shell=True, check=True)

except subprocess.CalledProcessError as e:
    raise RuntimeError("command '{}' return with error (code {}): {}".format(e.cmd, e.returncode, e.output))

下面是输出:

RuntimeError: command '['java', '-jar', 'RankLib-2.9.jar', '-train', 'learning_to_rank_data/training.txt', '-ranker', '3', '-metric2t', 'NDCG@2', '-save', 'learning_to_rank_data/model.txt']' return with error (code 1): None

我已经尝试使用相同的方法 (subprocess.run) 在 Jupyter 中 运行ning RankLib 库 (即 java -jar bin/RankLib.jar) 并且它工作正常 (即 return 代码0).

是什么导致了这个错误代码 1?有没有可能是因为我的数据太大了?还是因为我只进行培训而不进行测试和验证?

如有任何帮助,我们将不胜感激!

编辑

我刚刚尝试将我的数据切片到 1000 行,但仍然存在 return 代码 1 问题,因此大数据不是问题。到底是什么导致了这个问题?

此问题已解决。显然,list-wise 方法的相关性排名数据的最小值是 1 而不是 0。最初我认为 0 意味着数据根本不相关。