По сути, есть два распространенных способа обучения на огромных наборах данных (когда вы сталкиваетесь с ограничениями времени / пространства):
- Обман :) - используйте только «управляемое» подмножество для обучения. Потеря точности может быть незначительной из-за закона убывающей отдачи - прогностическая эффективность модели часто выравнивается задолго до того, как все обучающие данные включаются в нее.
- Параллельные вычисления - разбейте проблему на более мелкие части и решите каждую на отдельной машине / процессоре. Вам нужна параллельная версия алгоритма, но хорошая новость заключается в том, что многие распространенные алгоритмы естественным образом параллельны: ближайший сосед, деревья решений и т. Д.
Есть ли другие методы? Есть ли эмпирическое правило, когда использовать каждый? Каковы недостатки каждого подхода?
machine-learning
large-data
model-evaluation
train
andreister
источник
источник
Вместо использования только одного подмножества, вы можете использовать несколько подмножеств, как при мини-пакетном обучении (например, стохастический градиентный спуск). Таким образом, вы все равно будете использовать все свои данные.
источник
Ансамбли, такие как пакетирование или смешивание - данные не теряются, проблема автоматически становится тривиально параллельной и может быть значительный выигрыш в точности / надежности.
источник