Вопрос или проблема
Я работаю с несколькими методами машинного обучения (регрессия с использованием опорных векторов, регрессия случайного леса и регрессия KNN через scikit-learn) и хочу узнать, как определить, какой метод наиболее подходящ для использования, учитывая, что я увеличиваю набор обучающих данных на 10 000 записей.
Размер моего обучающего набора данных составляет около 80 000 записей, а размер тестового набора данных примерно 30 000 записей. Я начинаю с 10 000 записей для обучения каждой из моих моделей, потому что система, в которой я работаю, имеет очень ограниченное количество ядер (и работает на виртуальной машине на другом континенте), поэтому я не могу просто начать сеанс обучения и уйти на несколько часов.
По мере увеличения размера обучающего набора я ожидаю, что мои оценки валидации обучения (RMSE, MAPE) будут снижаться на полном обучающем наборе данных, а оценки валидации тестирования будут увеличиваться.
Какие метрики я должен фиксировать для каждого запуска, чтобы принимать обоснованные решения о сложности, скорости и долгосрочной жизнеспособности этих моделей машинного обучения?
(Этот пост отлично объясняет общие шаги, связанные с *всем* рабочим процессом науки о данных. Однако мне особенно интересно изучить, какой идеальный набор метрик я должен фиксировать после обучения, тестирования и валидации модели машинного обучения.)
Для моделирования, вероятно, лучше всего использовать частичные модели обучения. Изучите DASK.
Если это возможно, получение облачной поддержки для запуска ваших моделей также является отличной идеей. Например, Google Colab.
Для всех моделей ведите учет точности модели и точности перекрестной проверки. Хорошая идея – хранить эти детали в небольшой таблице и строить линейный график, который показывает детали точности для каждой версии.
Для задержки используйте Pytest и создайте код дифференциального тестирования, чтобы после каждой итерации тестирования он предоставлял результаты тестирования.
Ответ или решение
Итеративный процесс захвата и улучшения моделей машинного обучения
В текущем проекте вы работаете с несколькими методами машинного обучения, такими как поддерживающие векторные регрессии, регрессия случайного леса и KNN-регрессия. Наращивание объема обучающей выборки на 10,000 записей в условиях ограниченных ресурсов требует особой стратегии. В этом ответе я расскажу об идеальном наборе метрик, которые следует учитывать, чтобы принимать обоснованные решения о сложности, скорости и долгосрочной жизнеспособности моделей машинного обучения.
1. Определение метрик
Для сравнения производительности моделей и их дальнейшего улучшения важно отслеживать следующие метрики:
a. Точность модели
- RMSE (Корень среднего квадратичного отклонения): Оценивает среднюю ошибку предсказания наряду с её величиной. Следите за снижением RMSE по мере увеличения объема данных.
- MAPE (Средняя абсолютная процентная ошибка): Полезна для определения точности модели в процентном выражении, помогает выявить прогнозная способность.
- R² (Коэффициент детерминации): Измеряет долю вариации зависимой переменной, которая объясняется моделью. Это поможет понять, насколько хорошо модель подгоняет данные.
b. Параметры стабильности и обобщения
- Кросс-валидация: Проводите кросс-валидацию с использованием k-сгибов для оценки стабильности показателей модели. Записывайте средние и стандартные отклонения метрик.
c. Показатели времени
- Время обучения: Фиксируйте время, необходимое для каждого этапа обучения модели, поскольку у вас ограниченные ресурсы. Сравните время обработки для разных моделей при увеличении объема данных.
- Время предсказания: Сравните время, затрачиваемое на предсказание для различных моделей, что также важно для выбора модели на основе её эффективности.
2. Логирование и визуализация данных
Создание структурированного логирования позволит вам отслеживать параметры во времени. Рекомендуется создать таблицу, где будет храниться:
- Дата и время эксперимента.
- Объем обучающих данных (10k, 20k и т.д.).
- Модель (SVR, Random Forest, KNN).
- RMSE, MAPE, R² для обучающей и тестовой выборок.
- Время обучения и предсказания.
Использование графиков для отображения этих данных, таких как линии на графиках, показывает, как производительность моделей менялась с увеличением объема обучающих данных.
3. Оценка сложности и жизнеспособности
Важным аспектом при работе с моделями является их сложность на этапе предсказания. Модели с высокой сложностью могут показывать лучшую точность на обучающих данных, однако могут страдать от переобучения. При увеличении объема данных важно сравнивать:
- Общее число параметров моделей и их влияние на результат.
- Качество отклика модели на увеличенную выборку (например, сохраняется ли узкое место в производительности при добавлении новых данных).
4. Рекомендации для работы с ресурсами
Давайте рассмотрим использование технологий и подходов, которые могут оптимизировать ваш процесс:
- Dask: позвольте вам параллельно обрабатывать выполнение задач, что особенно верно при работе с VMs с ограниченными ресурсами.
- Облачные платформы: Использование платформ, таких как Google Colab, даст гибкость в вычислениях и ускорит процесс тестирования и анализа моделей.
Заключение
Итеративное обучение и улучшение моделей машинного обучения в контексте использования ограниченных вычислительных ресурсов требует внимательного планирования и систематичного подхода. Записывая метрики, оценивая время, и сохраняя логи, вы сможете оптимизировать свои практики и сделать обоснованный выбор моделей для дальнейшего использования. Это не только повысит вашу продуктивность, но и обеспечит долгосрочную жизнеспособность ваших решений в сфере машинного обучения.