Код и структура проекта машинного обучения дикие в большинстве ваших личных проектов, а также в коде вашей компании; причина проста, как это.

Специалисты по данным учатся на ошибках (и новом анализе)

На самом деле это правило, если вы посмотрите на себя, вы, вероятно, потратите гораздо больше часов на обработку данных, чем на модели. Это потому, что вы хотите прояснить вариант использования, получить доступ к достаточному количеству данных, определить взаимосвязи между данными (т. н. исследование) и разработать функции.

Итогом всего этого является череда диких джунглей блокнотов Jupyter и одиночных скриптов с сомнительными названиями — напр. final_final_version_code.ipynb — перестает работать каждый раз, когда вам нужно небольшое изменение.

Чтобы помочь вам сделать ваш код намного чище, а вашу жизнь проще, вот список привычек и шаблонов, которые вы можете начать использовать сегодня, чтобы уменьшить свой технический долг по данным — + бонус в конце:

  1. использовать шаблон проекта
  2. автоматизировать конвейер
  3. отслеживать эксперимент

Шаблон проекта: закладка фундамента

Точно так же, как строительство здания требует прочного фундамента, вашему проекту машинного обучения нужен хорошо разработанный шаблон. Шаблон проекта служит планом, предоставляя структурированную основу для вашей работы. Он инкапсулирует необходимые компоненты, такие как предварительная обработка данных, обучение модели и метрики оценки, в модульном и повторно используемом виде.
Наиболее широко известный стандарт для этого называется Cookie Cutter. он обеспечивает следующую структуру каталогов

├── LICENSE
├── Makefile           <- Makefile with commands like `make data` or `make train`
├── README.md          <- The top-level README for developers using this project.
├── data
│   ├── external       <- Data from third party sources.
│   ├── interim        <- Intermediate data that has been transformed.
│   ├── processed      <- The final, canonical data sets for modeling.
│   └── raw            <- The original, immutable data dump.
│
├── docs               <- A default Sphinx project; see sphinx-doc.org for details
│
├── models             <- Trained and serialized models, model predictions, or model summaries
│
├── notebooks          <- Jupyter…