Как использовать функции --keep и --ignore vowpal wabbit?

В документации просто упоминается, что эти функции существуют, но я не могу найти пример кода.

В настоящее время у меня есть данные формы

1 '0001 |11 x:0.3
0 '0002 |11 x:0.8
1 '0003 |11 x:0.3
0 '0004 |11 x:0.9
1 '0005 |11 x:0.2

таким образом, у меня есть одно пространство имен под названием 11 в файле train.vw.

я даю команду

vw train.vw --keep 11 -c -k --passes 40 -l 0.85 -f model.vw --loss_function quantile --quantile_tau 0.6

и получить ошибку

vw: the argument ('11') for option '--keep' is invalid

он отлично работает без сохранения,

vw train.vw -c -k --passes 40 -l 0.85 -f model.vw --loss_function quantile --quantile_tau 0.6

person Tom M    schedule 09.07.2014    source источник


Ответы (1)


Да, это должно быть лучше задокументировано...

Аргументы опций, которые имеют дело с пространствами имен, относятся к этим пространствам имен только по их 1-й букве. Это ограничение связано с тем, как в настоящее время реализуются пространства имен для целей пересечения, сохранения и игнорирования в виде таблицы быстрого поиска, индексируемой по 1-й букве.

Так что в этом конкретном случае вы должны использовать --keep 1, а не --keep 11.

Точно так же для объектов пересечения, например. -q AB, A и B относятся к первой букве пространств имен, которые вы хотите пересечь, соответственно.

person arielf - Reinstate Monica    schedule 10.07.2014
comment
Итак, могу ли я использовать расширенный алфавит, чтобы иметь большое количество пространств имен, и чувствителен ли он к регистру? Таким образом, 0-9a-zA-Z - дает 64, используются только буквенно-цифровые символы ascii или полный UTF-8 или любой не пунктуационный или управляющий символ (À, Ä и т. д.) utf8-chartable.de/unicode-utf8-table.pl?number=1024 ? Или мог бы использовать китайский и/или другие языки, которые дали бы мне гораздо больше пространств имен. - person Tom M; 11.07.2014
comment
Согласно источнику, таблица поиска представляет собой vector<unsigned char>, поэтому должно работать подмножество UTF-8, представленное одним байтом, без префиксов (я полагаю, 255 различных возможных значений). ХТН. - person arielf - Reinstate Monica; 11.07.2014