SGDClassifier с HashingVectorizer и TfidfTransformer

Я хотел бы понять, можно ли обучить онлайн SGDClassifier (с partial_fit) с помощью HashingVectorizer и TfidfTransformer. Простое объединение их в конвейер не сработает, поскольку TfidfTransformer сохраняет состояние, что нарушит процесс онлайн-обучения. В этом сообщении говорится, что невозможно использовать tf-idf в режиме онлайн, но комментарий к этому сообщению предполагает, что это каким-то образом возможно: «В частности, если вы используете преобразователи с отслеживанием состояния в качестве TfidfTransformer, вам потребуется выполнить несколько проходов по вашим данным». Возможно ли это без загрузки всего тренировочного набора в память? Если да, то как? Если нет, есть ли альтернативное решение для объединения HashingVectorizer с tf-idf для больших наборов данных?


person David M.    schedule 15.08.2014    source источник


Ответы (1)


Возможно ли это без загрузки всего тренировочного набора в память?

TfidfTransformer должен иметь в памяти всю матрицу X. Вам нужно будет свернуть свой собственный оценщик tf-idf, использовать его для вычисления частот документов для каждого термина за один проход по данным, а затем выполнить еще один проход, чтобы создать функции tf-idf и подобрать к ним классификатор.

person Fred Foo    schedule 18.08.2014