Инструменты для специалистов по данным без инженерного образования

Я начал свою карьеру бизнес-аналитиком и занимался анализом в Jupyter Notebook. Когда я стал специалистом по обработке данных, я стал больше заниматься кодированием, но по-прежнему использовал записные книжки - и нет, никаких текстовых редакторов. Однако чем сложнее становились проекты, тем больше ограничений я испытывал при использовании только Jupyter Notebook. Таким образом, я решил изучить инструменты для повышения моей продуктивности для сквозных проектов в области науки о данных. Если вы находитесь в одной лодке, вам могут пригодиться эти инструменты.

В этой статье я расскажу о сквозном рабочем процессе проекта, возможности для повышения производительности и представлю инструменты для повышения производительности проектов в области науки о данных.

Мой непрерывный рабочий процесс над проектом

  1. понимание данных и исследовательский анализ
  2. разработка модели

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

3. извлекать функции и сценарии для создания непрерывного учебного задания.

Затем я собрал функции и сценарии, чтобы обеспечить сквозное обучение. Цель состоит в том, чтобы запросить, создать элементы, параметры поиска и обучить окончательную модель с помощью одной команды.

4. создать автономное задание для непрерывной оценки

Это рабочий код для оценки новых данных с помощью обученного объекта. Обычно также требуется создание автономной среды с использованием таких инструментов, как docker, conda и т. Д.

Возможности для повышения производительности

  1. Многократная ручная установка лесов

Я придерживаюсь определенной структуры папок для всего моего проекта, как рекомендовано, но я неоднократно вручную создавал все необходимые файлы и папки.

2. Отслеживание безумных экспериментов

Я использовал записные книжки в качестве документации для отслеживания экспериментов, но не могу вспомнить, сколько раз я случайно перезаписывал результаты экспериментов, запустив не ту ячейку. К тому же, если вы проводите много разных экспериментов в одном блокноте, он довольно быстро становился длинным и беспорядочным. "Почему бы не сохранить результаты эксперимента в отдельный файл?" вы можете спросить. Что ж, это лишает смысла использовать блокнот в качестве документации, но именно этим я и занялся. Однако управление этими файлами с результатами экспериментов также требует определенных усилий.

3. Повторная работа над одним и тем же фрагментом кода

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

4. Постоянное переключение между вкладками

Возможно, это не проблема для всех, но я предпочитаю иммерсивную среду, в которой мне не нужно постоянно переключаться между вкладками при редактировании и навигации по нескольким скриптам.

Инструменты для повышения производительности проектов в области науки о данных

  1. Строительная площадка с резаком для печенья

Cookiecutter достаточно гибкий, чтобы вы могли создать свой собственный шаблон. Для меня один из существующих шаблонов (https://github.com/kragniz/cookiecutter-pypackage-minimal) работает идеально. Это не только избавило меня от ручной работы, но и обеспечило соответствие моих проектов одним и тем же стандартам, что стало проще в управлении, а также для моего коллеги.

2. Отслеживайте результаты экспериментов с MLflow

Mlflow сделал мою жизнь намного проще, предоставив быстрый и простой способ отслеживать эксперименты. Его API-интерфейс python действительно интуитивно понятен в использовании, а также эффективен при сравнении результатов. Он все еще находится на стадии бета-версии, и многие его функции, похоже, разработаны для платформы Databricks, но этого более чем достаточно для простого отслеживания экспериментов.

3. Vim + tmux / экран

Добавление текстового редактора, вероятно, самое большое изменение в моем рабочем процессе. Я попытался обратиться к vim, как только закончил исследовательский анализ, и сразу приступил к разработке функций и скриптов в файле .py. Это предотвратило много повторяющейся работы по кодированию, а иммерсивный опыт кодирования без мыши вызывает привыкание! Если вы также начали писать все больше и больше кода и никогда не пробовали кодировать в текстовом редакторе, попробовать стоит.

4. Управляйте вакансиями с MLflow Project

Проект MLflow использует среду conda под капотом, чтобы выполнять задания Python с помощью стандартизованных команд bash. Он скрывает все беспорядочные детали и предоставляет простой интерфейс, позволяющий другим людям запускать мой код, даже не зная об этом.

Чем больше я узнал о науке о данных, тем больше я осознавал, сколько еще мне нужно узнать. Вот почему мой рабочий процесс и наборы инструментов всегда будут задействованы, и всегда будут лучшие вещи - лучшие методы, лучшие инструменты и т. Д. Так что, если у вас есть предложения, не стесняйтесь связаться со мной через LinkedIn или отправьте их мне [email protected]!