Читаемая модель Vowpal Wabbit

Я использовал Vowpal Wabbit и генерировал классификатор, обученный как удобочитаемая модель.

В моем наборе данных было 22 функции, и читаемая модель дала результат:

Version 7.2.1
Min label:-50.000000
Max label:50.000000
bits:18
0 pairs:
0 triples:
rank:0
lda:0
0 ngram:
0 skip:
options:
:0
101143:0.035237
101144:0.033885
101145:0.013357
101146:-0.007537
101147:-0.039093
101148:-0.013357
101149:0.001748
116060:0.499471
157941:-0.037318
157942:0.008038
157943:-0.011337
196772:0.138384
196773:0.109454
196774:0.118985
196775:-0.022981
196776:-0.301487
196777:-0.118985
197006:-0.000514
197007:-0.000373
197008:-0.000288
197009:-0.004444
197010:-0.006072
197011:0.000270

Может кто-нибудь объяснить мне, как интерпретировать последнюю часть файла (после параметров:)? Я использовал логистическую регрессию, и мне нужно проверить, как повторение обучения обновляет мой классификатор, чтобы я мог понять, когда я достигну сходимости...

Заранее спасибо :)


person Bokha    schedule 17.01.2014    source источник
comment
Я новичок в Vowpal Wabbit. Не могли бы вы рассказать мне, какие есть варианты для обучения данных с использованием логистической регрессии? Достаточно ли следующего: vw -d train_output -f data.model --loss_function logistic   -  person Riddhiman Dasgupta    schedule 12.04.2014


Ответы (2)


Значения, которые вы видите, являются хеш-значениями и весами всех ваших 22 функций и одной дополнительной «константной» функции (ее хэш-значение равно 116060) в полученной обученной модели.

Формат:

hash_value:weight

Чтобы увидеть исходные имена функций вместо хеш-значения, вы можете использовать один из двух способов:

  • Используйте утилиту utl/vw-varinfo (в исходном дереве) на вашем тренировочном наборе с теми же параметрами, которые вы использовали для обучения. Попробуйте utl/vw-varinfo для получения справки/сообщения об использовании
  • Используйте относительно новую опцию --invert_hash readable.model

Кстати: инвертирование хеш-значений обратно в исходные имена функций не используется по умолчанию из-за большого снижения производительности. По умолчанию vw применяет односторонний хэш к каждой строке функции, которую он видит. Он вообще не поддерживает хэш-карту между именами функций и их хеш-значениями.

Изменить:

Еще одна небольшая заметка, которая может представлять интерес, — это первая запись после options:, которая гласит:

:0

По сути, это означает, что любая «другая» функция (все те, которые не входят в тренировочный набор и, следовательно, не хешируются в вектор весов) по умолчанию имеет вес 0. Это означает, что в vowpal-wabbit избыточно обучать на функциях с нулевыми значениями, что в любом случае является значением по умолчанию. Явные признаки :0 значения просто не будут способствовать модели. Когда вы пропускаете вес в своем тренировочном наборе, например: feature_name без завершающего :<value> vowpal wabbit неявно предполагает, что это двоичная функция со значением TRUE. IOW: по умолчанию для всех функций без значения используется значение единицы (:1), а не значение нуля (:0). ХТН.

person arielf - Reinstate Monica    schedule 20.01.2014

Vowpal Wabbit также теперь имеет опцию --invert_hash, которая даст вам удобочитаемую модель с фактическими переменными, а также только с хэшами.

Он потребляет НАМНОГО больше памяти, но, поскольку ваша модель кажется довольно маленькой, он, вероятно, будет работать.

person Zach    schedule 31.03.2014