Лемур РанкЛиб код возврата 1 на тренировке - PullRequest
0 голосов
/ 28 апреля 2018

Я использую RankLib для своих данных (форма: 218279 строк × 1504 столбца), используя python и получаю код ошибки 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

Я попытался запустить библиотеку RankLib (т. Е. java -jar bin/RankLib.jar) в Jupyter, используя тот же подход (subprocess.run), и он работает нормально (т. Е. Код возврата 0).

Что вызывает этот код ошибки 1? Возможно ли это из-за того, что мои данные слишком велики? Или потому, что я тренируюсь только без тестирования и валидации?

Буду признателен за любую помощь!

EDIT

Я только что попытался нарезать свои данные до 1000 строк, но проблема с кодом возврата 1 по-прежнему была, поэтому большие данные не проблема. Что именно вызывает эту проблему?

1 Ответ

0 голосов
/ 05 мая 2018

Эта проблема решена. По-видимому, минимальное значение данных ранжирования по релевантности для подхода, основанного на списках, равно 1, а не 0. Первоначально я думал, что 0 будет означать, что данные вообще не релевантны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...