Ответ 1
HashingVectorizer
будет работать, если вы итеративно обмениваете ваши данные пакетами 10k или 100k документов, которые подходят, например, в память.
Затем вы можете передать пакет преобразованных документов в линейный классификатор, который поддерживает метод partial_fit
(например, SGDClassifier
или PassiveAggressiveClassifier
), а затем итерации по новым партиям.
Вы можете начать забивать модель по установленному набору валидации (например, документы 10 тыс.), поскольку вы идете контролировать точность частично обученной модели, не дожидаясь появления всех образцов.
Вы также можете сделать это параллельно на нескольких машинах на разделах данных, а затем усреднить полученный атрибут coef_
и intercept_
, чтобы получить окончательную линейную модель для всего набора данных.
Я обсуждаю это в этом разговоре, который я дал в марте 2013 года в PyData: http://vimeo.com/63269736
В этом учебном пособии приведен пример кода, в котором парализует scikit-learn с помощью IPython.parallel, взятый из: https://github.com/ogrisel/parallel_ml_tutorial