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

1. Блокноты и уценка

Блокноты для написания кода становятся все более популярными в последние годы, хотя многие по-прежнему предпочитают кодировать в более традиционных средах IDE. Важное различие - когда вы хотите поделиться своей работой; Использование формата записных книжек с ячейками кода, переплетенными с уценкой, может оказаться неоценимым при отправке вашей работы коллеге или однокурснику.

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

Для этого я обычно придерживаюсь следующих правил:

  • Название и вступление должны четко определять цели анализа.
  • Разделы должны отличаться друг от друга
  • Любые используемые методы должны быть представлены, объяснены или указаны в ячейке уценки с математическими формулами, написанными правильно с форматированием LaTeX.
  • Выходные графики должны быть правильно помечены четкими заголовками, метками осей и метками легенды.
  • Ячейки кода должны иметь переменные с четко определенными именами и комментариями, используемыми для объяснения более мелких шагов по мере необходимости.

Например:

2. Отслеживание прогресса вашего кода

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

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

Код на изображении ниже показывает, как именно отслеживать текущий прогресс любого цикла в записной книжке iPython. Более подробное описание можно найти здесь.

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

3. Эффективная оптимизация параметров

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

Со временем я интуитивно разработал три метода (хотя я не утверждаю, что я был первым, кто их придумал), которые значительно улучшили мою настройку параметров:

  1. Используйте циклы для автоматизации тестирования вводимых параметров
  2. Итеративно создайте таблицу вывода внутри цикла, готовую для графиков или публикации
  3. Продемонстрируйте влияние параметра с помощью интерактивной анимации

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

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

Один из способов сделать это:

  • Представьте пустой фрейм данных Pandas
  • Проверить ввод параметров внутри цикла
  • Примените функцию append, чтобы добавить строку во введенный фрейм данных с выходными данными для каждой итерации цикла.

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

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

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

Спасибо

Фил