Сколько входных данных Vowpal Wabbit требуется для предварительной обработки?

Я знаю, что vw может обрабатывать очень необработанные данные (например, необработанный текст), но, например, следует ли рассмотреть возможность масштабирования числовых функций перед подачей данных в vw? Рассмотрим следующую строку:

1 |n age: 80.0 height: 180.0 |c male london |d the:1 cat:2 went:3 out:4

Предполагая, что типичный возраст находится в диапазоне от 1 до 100, а рост (в сантиметрах) может варьироваться от 140 до 220, лучше ли преобразовать/масштабировать age и height, чтобы они имели общий диапазон? Я думаю, что многим алгоритмам может понадобиться такая предварительная обработка входных данных, например, линейная регрессия.


person habedi    schedule 08.02.2018    source источник


Ответы (1)


vw SGD значительно улучшен по сравнению с обычным SGD, поэтому предварительное масштабирование не требуется.

Если у вас очень мало экземпляров (небольшой набор данных), предварительное масштабирование может несколько помочь.

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

Нормализация масштаба, редкости и важности применяется по умолчанию. Соответствующие vw параметры:

--normalized
--adaptive
--invariant

Если какой-либо из них появляется в командной строке, остальные не применяются. По умолчанию применяются все три.

См. также: этот ответ stackoverflow

Документ, объясняющий расширенный алгоритм SGD в vw:

Интернет-обновления с учетом важности веса — Никос Карампациакис и Джон Лэнгфорд

person arielf - Reinstate Monica    schedule 10.02.2018