Научитесь анализировать данные, визуализировать тренды
и писать код на Python и SQL
на курсе «Data Science Academy» от SF Education

Статья доступна в аудиоверсии

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

Вы заходите ежедневно (а то и не по одному разу) в Instagram, Facebook и другие социальные сети, считая комментарии и лайки подруг, знакомых? Читаете ли новости на Рамблере, РБК, Mail? А потом сравниваете информацию о событиях, чтобы понять, где больше правды? Проверяете ли погоду каждый день на Gismeteo, в Яндексе, чтобы вывести «средний» прогноз? Покупаете ли на Ozon или на Avito, потому что там дешевле? 

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

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

Денис – опытный ученый по данным – любезно согласился поделиться с нами своим распорядком дня и раскрыть некоторые тайны своей очень интересной и «модной» профессии. 

«Я очень ответственный сотрудник и терпеть не могу опаздывать, поэтому на работу приезжаю за 15-20 минут до прихода остальных сотрудников», — говорит про себя Денис.

После прохождения турникетов он всегда останавливается, чтобы поприветствовать охранника и поинтересоваться у него: «Как дела и как прошла смена». Дальше проходит по длинному коридору к своему офису.

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

Наконец, на часах 9:00 – начало рабочего дня, а это значит, что следующие 8 часов для Дениса пролетят как миг, ведь скоро он получит новое задание, которое поглотит его с головой.

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

Но одно Денис знает точно: легкой работы с большими объемами данных не бывает. 

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

Сначала Денис решает собрать наиболее точную и правильную информацию. Наиболее очевидными источниками являются Facebook, Twitter, Google.

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

Денис делает заметку, чтобы внимательно посмотреть на эти четыре канала и составить подробный отчет для начальства. Ему необходимо собрать отзывы пользователей, описания товаров и рекомендательные посты. 

«Это довольно рядовая задача для Data Scientist», — поясняет Денис, — «Я уже писал программу на R, которая собирает данные со страничек сайтов, где упоминаются ключевые слова и однокоренные им. В данном случае это «стекло», «бутылка», «пластик», «консервант», «низколорийный», «искусственный», «подсластитель», «напиток». Таких маркеров может быть меньше, тогда поиск будет шире, но и менее точным. После того, как необходимый объем страниц считан, информация с них записана в отдельный файл, мне необходимо ее обработать». 

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

«Если есть уже написанная программа, то на весь процесс уйдет не много времени. А вот если таких наработок нет, то придется затратить несколько часов на написание кода», — отмечает Data Scientist. 

Так как Денис уже обладал всеми необходимыми ресурсами, ему удалось сэкономить время на программировании.

Описав все свои выводы, он мог бы немного отдохнуть до 10:30, если бы к нему не подошла новенькая сотрудница Алина – только начинающий специалист по данным – с просьбой проконсультировать ее о некоторых библиотеках языка R, которые она до этого момента не использовала. Денис с радостью согласился помочь, тем более у него еще оставалось немного времени до совещания. 

Пробило 10:30, а это означало, что начиналась планерка или, как это еще называлось в компании, «Большая встреча дня». Здесь обычно обсуждаются насущные проблемы и задания организации, сотрудники делятся своими наработками, открытиями, результатами исследований, которые могут помочь в работе других сотрудников.

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

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

В 11:30 у Дениса кофе-брейк. Он быстро пьет свой американо и возвращается к работе. Data Scientist уже привык, что после совещания к нему обращаются с кучей вопросов и заданий, о которых не стали говорить на встрече, потому что знают, что с этим никто лучше него не справиться. 

Так и случилось. Примерно в 11:45 пришло уведомление от ведущего аналитика компании о персональном задании. Фирма запускает новый продукт, слабо раскрученный в России, но уже пользующийся популярность за границей. Задача Дениса заключается в анализе рынка за границей и в предсказании рейтинга продаж товара и понимании, какие признаки оказывают на это сильнейшее влияние.

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

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

Data Scientist с удовольствием принялся за работу. Он любит интересные задачи, где нужно проявить смекалку и сообразительность. Эту задачу Денис не считал сложной, но это не мешало ему наслаждаться работой. Решать задачу ученый начал на Python.

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

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

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

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

Нужно проводить тщательный анализ и проверку параметров», — утверждает аналитик, — «Так как для нас важна интерпретируемость результатов, то важно понимать, что несут в себе основные признаки».

Для этого необходимо было разобраться с целевым параметром «Рейтинг продаж». А он представляет собой оценку в баллах от 1 до 100, основанную на предоставленных сведениях о продажах похожего товара.

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

В 13:30 начинался обеденный перерыв, но Денису не хотелось прерываться, и он решил доделать очистку данных. 

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

Затем встал вопрос о выбросах. От них надо было избавляться аккуратно. Денис попробовал построить графики box plots c «усиками», на основании которого уже можно было наглядно видеть чересчур экстремальные значения и более тщательно с ними работать. 

Этап очистки данных на этом закончился. Время уже было 14:30, Денис проголодался и перед началом нового этапа работы решил перекусить в кафе, через дорогу от офиса. Аналитик не любил опаздывать, но все отведенное на обед время он предпочитал тратить с пользой для своего опыта и профессионализма. Поэтому он поел за пол часа, а оставшиеся 15 минут читал статьи и новости, обозревающие современные разработки в сфере Data Science. 

Ровно в 15:15 Денис был на рабочем месте, готовый приступить к своему любимому делу – предварительному анализу данных.

«Exploratory Data Analysis или EDA— это процесс который можно продолжать до бесконечности», – отмечает ученый, – «На этом этапе мы строим графики, ищем закономерности, аномалии или связи между признаками. Основная цель этого этапа – понять, чем эти данные могут быть нам полезны. 

Денис начал с обзора всего набора, затем перешел к его специфическим подмножествам. 

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

Однако, из-за огромного количества разнородных параметров модель приходилось неоднократно «докручивать», менять параметры и постоянно проверять результаты на уже имеющихся данных.

По мере продвижения обнаруживались все новые закономерности и скрытые связи, которые помогали корректировать общий курс и делать модель качественней. После проделанной работы, Data Scientist`у удалось сделать начальные выводы, которые в дальнейшем приведут к желаемому результату.

Пока Денис занимался этой работой, он совсем забыл про время. Когда он закончил излагать в отчете свои выводы, на часах было уже 17:45. Он решил уже не начинать новых исследований, отправил начальнику отдела отчет о проделанной работе и выключил компьютер. 

Денис с нескрываемой радостью сказал, что рад тому, что его никто не дергал сегодня.

«Если бы, как обычно ко мне обратились новенькие, я бы, конечно, не смог отказать им в помощи, и не успел бы за день сделать так много», — говорит он.

Так, довольный собой и проделанной работой Денис попрощался с коллегами, охранником и вышел из офиса. 

Так прошел обычный день сотрудника с необычной профессией. Кому-то могло показаться, что работа Data Scientist`a не так сложна и многогранна, как о ней говорят.

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

Именно поэтому работодатели с немалым трудом ищут кандидатов на роль ученых по данным в свои компании. Желающих много, а вот профессионалов мало!

Научитесь анализировать данные, визуализировать тренды
и писать код на Python и SQL
на курсе «Data Science Academy» от SF Education