Это мои тренировочные данные: 200 000 примеров х 10 000 функций. Итак, моя матрица тренировочных данных - 200 000 x 10 000.
Мне удалось сохранить это в плоском файле без проблем с памятью, сохраняя каждый набор данных один за другим (один пример за другим), поскольку я генерировал функции для каждого примера.
Но теперь, когда я использую Milk , SVM light или любой другой алгоритм машинного обучения, все пытается загрузить все данные обучения в память, а не тренировать их один за другим. Однако у меня просто 8 ГБ ОЗУ, поэтому я не могу так поступить.
Знаете ли вы, что я мог бы обучить алгоритм один набор данных одному набору данных? То есть, чтобы в любой момент во время тренировки у меня был только один набор данных, загруженный в память.
machine-learning
dataset
algorithms
python
madCode
источник
источник
Ответы:
Я считаю, что термин для этого типа обучения является неосновным обучением. Одним из предложений является vowpal wabbit , который имеет удобную библиотеку R , а также библиотеки для многих других языков.
источник
Я от всего сердца предлагаю второе предложение Зака. vowpal wabbit - отличный вариант, и вы будете удивлены его скоростью. Набор данных 200k на 10k не считается большим по нормам vowpal wabbit.
vowpal_wabbit (доступно в исходной форме через https://github.com/JohnLangford/vowpal_wabbit , более старая версия доступна в виде стандартного пакета во вселенной Ubuntu) - это быстрый онлайн линейный + билинейный учащийся, с очень гибким вводом. Вы можете смешивать двоичные и числовые функции. Нет нумерации объектов, так как имена переменных будут работать «как есть». Он имеет множество опций, алгоритмов, сокращений, функций потерь и универсальной гибкости. Вы можете присоединиться к списку рассылки (найти его через github) и задать любой вопрос. Сообщество очень хорошо осведомлено и поддерживает.
источник
Я ответил на аналогичный вопрос здесь . Дело в том, что большинство алгоритмов машинного обучения / интеллектуального анализа данных являются пакетными обучающимися, то есть они загружают все данные в память. Поэтому вам нужны разные инструменты для очень больших наборов данных. Смотрите также инструменты этих вопросов.
Онлайн обучение - это способ уменьшить объем памяти алгоритмов.
источник