Подходит при обучении из огромных наборов данных?

10

По сути, есть два распространенных способа обучения на огромных наборах данных (когда вы сталкиваетесь с ограничениями времени / пространства):

  1. Обман :) - используйте только «управляемое» подмножество для обучения. Потеря точности может быть незначительной из-за закона убывающей отдачи - прогностическая эффективность модели часто выравнивается задолго до того, как все обучающие данные включаются в нее.
  2. Параллельные вычисления - разбейте проблему на более мелкие части и решите каждую на отдельной машине / процессоре. Вам нужна параллельная версия алгоритма, но хорошая новость заключается в том, что многие распространенные алгоритмы естественным образом параллельны: ближайший сосед, деревья решений и т. Д.

Есть ли другие методы? Есть ли эмпирическое правило, когда использовать каждый? Каковы недостатки каждого подхода?

andreister
источник

Ответы:

10

Stream Mining - один из ответов. Это также называется:

  • Data Stream Mining
  • Онлайн обучение
  • Массовое онлайн обучение

    Вместо того, чтобы помещать все данные в память и обучать их. Они помещают его в память и обучают классификатор / кластеры из этого потока. Смотрите следующие ссылки.

  • Data_stream_mining из Википедии.

  • MOA: массовый онлайн-анализ

  • Mining of Massive Datasets Book , из Стэнфордского университета. Он использует MapReduce в качестве инструмента.

  • Видео в videolectures.net. Поиск аналогичных видео существует на этом сайте.

Атилла Озгур
источник
согласился, набор инструментов MOA будет хорошим местом для начала
tdc
7

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

Лукас
источник
Ага, это хороший момент - я прояснил вопрос. Мне интересен сценарий, когда вы сталкиваетесь с ограничениями времени и пространства и «не можете позволить себе» мини-пакетное обучение.
andreister
1

Ансамбли, такие как пакетирование или смешивание - данные не теряются, проблема автоматически становится тривиально параллельной и может быть значительный выигрыш в точности / надежности.


источник