Новости

16.07.2021

Книга «Data Science для карьериста»

Узнайте, как получить первую работу в Data Science и превратиться в ценного сотрудника высокого уровня! Четкие и простые инструкции научат вас составлять потрясающие резюме и легко проходить самые сложные интервью. Data Science стремительно меняется, поэтому поддерживать стабильную работу проектов, адаптировать их к потребностям компании и работать со сложными стейкхолдерами не так уж и легко. Опытные дата-сайентисты делятся идеями, которые помогут реализовать ваши ожидания, справиться с неудачами и спланировать карьерный путь.

План анализа


Для дата-сайентистов нет ничего увлекательнее, чем погрузиться в данные, чтобы ответить на вопросы. Загружаем данные! Группируем! Подводим итог! Подбираем модель и получаем результаты! К сожалению, из-за бесчисленных способов обобщения и моделирования данных может получиться так, что вы потратите недели на работу и лишь потом обнаружите, что ничего из созданного вами не отвечает на поставленный бизнес-вопрос. Худшее из ощущений — осознание, что ничего полезного сделать не получилось. С аналитиками такое часто случается, особенно с джунами без солидного опыта.

Один из способов решить эту проблему — установить рамки, чтобы держать все под контролем и выполнять только нужную работу. План анализа — это и есть рамки. Идея заключается в том, что перед просмотром данных вы записываете все, что планируете с ними делать. Затем, по мере продвижения анализа, вы проверяете, какая часть плана выполнена. Когда все его пункты выполнены, работа завершена! Так можно не только сверяться с планом, но и отслеживать прогресс и обеспечивать отчетность. Ее можно даже показать на совещании с руководителем, чтобы обсудить, как идут дела.

При составлении плана все его пункты должны быть выполнимыми. Можно написать код для задачи «сделать линейную регрессию продаж по регионам», но у вас не получится сделать то же самое для формулировки «выяснить, почему продажи упали»; это результат других вещей. Если задачи в плане выполнимы, оценить прогресс легко. Это также упростит анализ, потому что вам не придется ломать голову над дальнейшими действиями. Вместо этого вы просто смотрите на план анализа и выбираете следующую задачу.

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

  • Начало. Укажите название анализа, его цель и ваши данные (в случае, если доступ к нему будет у кого-то еще).
  • Разделы. Каждый раздел должен представлять общую тему анализа. Он должен быть понятным и независимым (анализ не полагается на результаты других разделов), чтобы другой человек мог работать над любым из них. В каждом разделе должен быть список задач.
  • Первый уровень раздела. Здесь должен быть заданный вопрос. Он напомнит остальным, почему вы выполняете эту задачу. Если вам удастся найти правильные ответы, значит, вы поняли тему основного раздела.
  • Второй уровень раздела. Здесь должны быть указаны задачи, которые можно отмечать по мере выполнения работы. Например, можно указать типы моделей для запуска; описания должны быть достаточно конкретными, чтобы в любое время можно было точно определить статус завершения работы.


На рис. 10.3 показан пример плана анализа. У нас это план оценки причин, по которым клиенты уезжают из Североамериканского региона. Вверху указаны название, цель и контактная информация дата-сайентиста на случай, если этот материал будет кому-то передаваться. Каждый раздел охватывает отдельный компонент анализа (например, анализ по Северной Америке или сравнение с другими регионами). Подразделы (пронумерованные) — это вопросы анализа, а самый нижний раздел (отмеченный буквами) — это конкретные задачи, которые необходимо решить.

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

Вполне вероятно, что в процессе работы вы поймете, что упустили что-то важное, или у вас появится новая идея. Это совершенно нормально; просто обновите план и сообщите стейкхолдеру, что вы вносите изменения. Поскольку ваше время ограничено, возможно, придется пожертвовать какой-нибудь менее важной задачей. План анализа полезен, потому что он создает диалог вокруг удаления ненужных пунктов, чтобы вам не приходилось пытаться выполнить невозможный объем работы.

Выполнение анализа

С подписанным планом на руках вы можете приступать к работе! Для начала производится импорт данных для дальнейших очистки и обработки. Затем вы несколько раз преобразуете данные путем их обобщения, агрегирования, изменения, визуализации и моделирования. Когда данные готовы, вы передаете их другим специалистам.

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

Импорт и очистка данных

Прежде чем вы сможете начать отвечать на вопросы согласно плану анализа, вам необходимо сохранить данные в удобном формате там, где с ними можно будет работать. Обычно это означает возможность загрузить их на R или Python, но иногда используется SQL или другие языки. Почти всегда эта задача отнимает у вас больше времени, чем вы рассчитываете. В процессе может возникнуть много сюрпризов. Вот некоторые из этих ужасных моментов:

  • Проблемы с подключением к базам данных компании в конкретной интегрированной среде разработки (IDE).
  • Проблемы с неправильными типами данных (например, числами в виде строк).
  • Проблемы со странными форматами времени («год-день-месяц» вместо «год-месяц-день»).
  • Данные, требующие форматирования (возможно, каждый идентификатор заказа начинается с элемента «ID-», который необходимо удалить).
  • Отсутствующие записи.


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

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

При импорте и очистке данных какая-нибудь проблема может выбить вас из колеи на несколько дней, например подключение к БД. Если вы оказались в такой ситуации, у вас есть три варианта: (1) попросить о помощи, (2) найти способ полностью избежать проблемы или (3) продолжать попытки решить ее самостоятельно. Вариант (1) подходит отлично, если вы можете к нему прибегнуть: человек, разбирающийся в вопросе лучше вас, может быстро найти решение, а вы сможете у него поучиться. Вариант (2) тоже хорош — можно, например, использовать файл .csv вместо подключения к базе. Варианта (3) — бесконечных попыток — стоит избегать любой ценой. Сотрудник, потративший несколько дней на одну проблему, выглядит бесполезным. Если какая-то задача ставит вас в тупик, обсудите с руководителем дальнейшие действия; не стоит продолжать попытки и надеяться, что проблема решится сама собой.

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

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

Если выяснится, что о проблеме не знали, а она может поставить под угрозу анализ, необходимо изучить способы спасения ситуации. Если вам нужен сравнительный анализ доходов и расходов, но при этом, как ни странно, половина имеющихся у вас данных не содержит информации о тратах, посмотрите, можете ли вы работать только с каким-то одним их видом (например, только с доходами). В некотором смысле этот подход превращается в анализ в квадрате: вы проводите мини-анализ, чтобы понять, возможен ли общий анализ в принципе.

Просмотр и моделирование данных

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

Используйте метод обобщения и преобразования


Подавляющее большинство аналитической работы можно выполнить путем обобщения и преобразования данных. Чтобы ответить на вопрос: «Сколько клиентов у нас было каждый месяц?», можно взять информацию о клиентах, сгруппировать ее по месяцам, а затем подсчитать количество человек в каждом месяце. Здесь не нужны статистические методы или модели МО — просто преобразования.

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

Визуализируйте данные или создайте сводные таблицы


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

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

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

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

Поскольку при визуализации будет множество итераций и непрерывного преобразования данных, следует найти золотую середину между желанием удалить промежуточные этапы ради чистоты кода и стремлением сохранить абсолютно все на всякий случай. Лучше всего оставить как можно больше кода при условии, что (1) старый код будет работать нормально после того, как вы внесете дальнейшие изменения, и (2) вы можете четко обозначить, какие результаты являются «хорошими». Не храните код, не работающий для вашего анализа, или его большие части с комментариями — это чрезвычайно затрудняет его поддержку. Помимо этого, неплохо бы использовать контроль версий вроде git и GitHub; каждый раз, добавляя в анализ новый контент, можно записывать изменения и откатывать код, если что-то пошло не так.

С полным содержанием статьи можно ознакомиться на сайте "Хабрахабр":

https://habr.com/ru/company/piter/blog/567308/


Комментарии: 0

Пока нет комментариев


Оставить комментарий






CAPTCHAОбновить изображение

Наберите текст, изображённый на картинке

Все поля обязательны к заполнению.

Перед публикацией комментарии проходят модерацию.