У меня есть набор данных, который растет на ежедневной основе, меня беспокоит тот факт, что в скором времени он достигнет размера, который память может не уместиться. Я использую в своем приложении случайные классификаторы леса и регрессоры. Я слышал о частичной подгонке, но я не знаю, можно ли сделать случайный лес таким образом. Как я могу гарантировать, что приложение не сломается и продолжает работать хорошо, даже если набор данных превышает размер памяти. Также был бы сценарий любым другим, если бы вместо svm использовался случайный лес.Огромные наборы данных в машинном обучении sklearn
ответ
Предлагаю вам попробовать H2O. H2O - платформа для обучения машинам с открытым исходным кодом, где компании могут создавать модели на больших наборах данных (без необходимости выборки) и добиться точных прогнозов. Это невероятно быстро, масштабируемо и легко реализовать на любом уровне.
H2O имеет чистую и понятную функцию прямого соединения инструмента (R или Python) с процессором вашей машины. Таким образом, мы можем перенаправить больше памяти, вычислить мощность инструмента для ускорения вычислений. Это позволит проводить вычисления со скоростью 100%. Он также может быть связан с кластерами на облачных платформах для выполнения вычислений.
Он обеспечивает алгоритм в регрессии, RandomForest, DeepLearning.
Посетите сайт для получения дополнительной информации: - http://www.h2o.ai/
Есть ли способ, которым я мог бы придерживаться самой платформы, а не протягивать внешние платформы. –
Как H2O решает проблему нехватки физическая память? BTW - H2O - это программное обеспечение с открытым исходным кодом, а не любая платформа (например, AWS). –
Еще одна вещь: использовав H2O, я не понимаю этого предложения: «H2O имеет чистую и понятную функцию прямого подключения инструмента (R или Python) к процессору вашего компьютера. Таким образом, мы получаем возможность перенаправить больше памяти, обработки чтобы инструмент для ускорения вычислений ». Вы заставляете это звучать так, будто оно переводится непосредственно в код сборки, но это, конечно, не так.H2O основана на JVM, поэтому на самом деле она довольно косвенная и поставляется с штрафом за перевод упомянутого кода R/Python в байт-код. –
В общем, вы должны искать методы, которые предлагают дополнительных или онлайн обучения. В таком случае вам не обязательно представлять алгоритму полный набор данных сразу, а скорее, когда новые данные становятся доступными. Это важно, если данные растут ежедневно, а ваши вычислительные ресурсы ограничены. Stochastic gradient descent - довольно популярный метод оптимизации, который соответствует вашим требованиям.
Вы можете использовать вариацию случайного леса под названием Mondarian Forest. Процитировать из аннотации связанного документа: Леса Мондриана достигают конкурентной прогностической эффективности, сопоставимой с существующими онлайн-случайными лесами, и периодически переучивают периодические случайные леса, но при этом более чем на порядок быстрее, тем самым представляя лучшее вычисление против компромисса с точностью. Код можно найти по адресу GitHub.
Не зная ваших данных и характера вашей проблемы, вы не можете предложить вам конкретные указания относительно того, что будет лучше, чем случайный лес. Если вы хотите придерживаться изучения scikit, проверьте статью Strategies to scale computationally: bigger data.
- 1. PCA в машинном обучении
- 2. Оценка оценки в машинном обучении
- 3. маркировка набора данных в машинном обучении
- 4. Номинальный ценный набор данных в машинном обучении
- 5. Преимущества TDD в машинном обучении
- 6. Создание контролируемой модели в машинном обучении
- 7. Значимость PCA или SVD в машинном обучении
- 8. Интерпретация кривой обучения в машинном обучении
- 9. условие в формуле в машинном обучении
- 10. Что такое метод NumericToNominal в машинном обучении.
- 11. Как увеличить производительность R в машинном обучении?
- 12. Что означает «Oracle» в машинном обучении?
- 13. Вопрос о классификаторах в машинном обучении
- 14. Когда использовать генеративные алгоритмы в машинном обучении?
- 15. Каково определение «гибкости» метода в машинном обучении?
- 16. Интуиция о ядро-трюке в машинном обучении
- 17. Как вычислить потерю журнала при машинном обучении
- 18. Обработка геопространственных координат при машинном обучении
- 19. Android SQLite и огромные наборы данных
- 20. Как работает процедура весовой системы в машинном обучении?
- 21. C++ library/framework, API для моделей Mixture в машинном обучении
- 22. Как загрузить наборы данных для sklearn? - python
- 23. Ошибка вычисления в обучении словаря sklearn
- 24. Скомпенсированный класс и неуравновешенный класс в машинном обучении
- 25. Большое количество функций в машинном обучении плох (регрессия)?
- 26. Нужно ли нормализовать/стандартизировать данные в машинном обучении?
- 27. Почему так называемое «ядро» в машинном обучении функции ядра?
- 28. Ошибка памяти Python - огромные входные данные Sklearn?
- 29. Как обрабатывать огромные наборы результатов из базы данных
- 30. Используете ли мы модель гамма-смеси (GMM) для кластеризации данных в машинном обучении так часто?
Какой объем данных у вас задет? Определяете ли вы количество заданий в sklearn? Имейте в виду, что существуют разные методы оптимизации. Вы всегда можете использовать метод, который не требует наличия полного набора тренировок, загружаемого в память, а скорее использовать партии. Возьмите стохастический градиентный спуск. –
Ya, данные со временем станут слишком большими, могут быть в терабайтах. Также я хочу знать, будет ли случайный лес все еще эффективным. –
Взгляните на http://scikit-learn.org/stable/modules/scaling_strategies.html –