Data scientist (специалист по обработке, анализу и хранению больших массивов данных)
Содержание:
- Эксперимент и запуск продукта — совершенно разные вещи
- Ключевые библиотеки Python для Data Science
- Коммуникация
- Обучение data science с нуля – какие личностные качества нужны?
- Что такое Data Science?
- Основная работа ведётся на удалённом сервере
- Специалисты по изучению данных (data scientist)
- MVP лучше, чем долгосрочное исследование
- Какая нужна математика? Если нет матбазы, я безнадёжен?
- A/B-тесты важнее обучения модели
Эксперимент и запуск продукта — совершенно разные вещи
Чаще всего специалисты Data Science работают в Jupyter Notebook — это простое и удобное приложение для экспериментов и визуализации. Можно быстро попробовать что-то новое, обучить модель или увидеть результат вычислений, просто открыв ячейку и запустив несколько строк кода.
Но как только модель готова к выпуску в продакшн, господство Jupyter Notebook заканчивается, и власть переходит к Python-файлам. Продакшн — это работа ваших алгоритмов в реальной жизни. Конечный пользователь всегда смотрит на качество итогового продукта, поэтому код продакшна должен быть быстрым, чистым, читабельным, отказоустойчивым и простым в отладке.
Скорость кода не так важна, если вы просто экспериментируете и запускаете программу один-два раза. Однако в продакшне ваш код, вероятно, будет выполняться несколько раз в день и влиять на другие части продукта, поэтому скорость станет важна.
Посмотрим правде в глаза, наверняка в большинстве ваших .ipynb-файлов много неупорядоченных строк, неиспользованных import и ненужных ячеек. И это нормально, когда вы просто экспериментируете. Но перед выпуском в продакшн код нужно «очистить». Считайте, что ваш код достаточно чист, если кто-то в вашей команде может просмотреть его и с лёгкостью понять назначение каждой строки. Вот почему вы должны давать правильные имена своим переменным и функциям.
Стоит выводить важные шаги выполнения кода на экран оболочки, а также в лог-файл. Это поможет быстро выявить возможные проблемы. Хороший лог-файл должен содержать время начала и окончания выполнения, результаты и записи исключений.
Иногда даже проверенный код по какой-либо причине начинает давать сбой, и пользователи видят странные результаты. Хороший продакшн-код должен уметь обрабатывать возможные исключения и заранее выводить предупреждения в случае неожиданной или нерешаемой проблемы. В зависимости от ситуации неисправный код можно откатить до предыдущего состояния или заставить его выдать предварительные результаты. Всегда лучше потратить время на написание отказоустойчивого кода, чем потом в спешке всё переделывать.
Но даже в отказоустойчивом коде могут быть ошибки, приводящие к непредвиденным результатам. В этом случае программу нужно отлаживать. Чтобы процесс отладки был понятным и простым, всегда следите за чистотой и качеством кода: используйте функции вместо повторяющихся конструкций, помните про правило «одна функция = одна решаемая задача» и избегайте «грязных» функций. Такая практика позволит легко найти источник ошибки в коде.
Для написания продакшн-кода вместо Jupyter Notebook лучше использовать текстовый редактор или IDE, например VS Code или PyCharm. Эти инструменты сделают разработку проще и быстрее. Если вы всё же хотите работать с Jupyter, можете попробовать использовать расширение nbconvert, которое конвертирует скрипты .ipynb в .py-файлы.
Ключевые библиотеки Python для Data Science
Data science в Python держится на трех китах (библиотеках): NumPy, Pandas и MatplotLib. Их необходимо знать для комфортной работы.
- NumPy упрощает работу с многомерными массивами, позволяя без лишних проблем применять к ним высокоуровневые математические функции;
- Pandas дает программисту возможность применять специальные структуры данных, которые делают работу с числовыми таблицами невероятно удобной;
- MatplotLib — библиотека для визуализации данных. Она имеет все необходимое, чтобы отобразить результаты работы в двумерной графике.
Лучший способ научиться работать с этими библиотеками — чтение документации и постоянная практика. Первые шаги к решению практических задач можно сделать, посмотрев какой-нибудь курс – например, от специалистов из университета Сан-Диего или другие:
Python for Data Science на EDX объясняет, как пользоваться этими инструментами для анализа данных и дает несколько реальных кейсов для самостоятельного решения. Нужно быть уже знакомым с программированием на Python и английским для программистов;
Пост на GeekBrains с основами работы с NumPy. Это подойдет новичкам и тем, кто еще ни разу не работал с числовыми массивами и векторами, но планирует начинать обучение data science с нуля;
Data Analysis with Pandas and Python от Udemy — дает всю необходимую для работы с Pandas теорию. Из минусов курса можно отметить отсутствие субтитров на русском языке и недостаток примеров применения Pandas для решения реальных кейсов;
Applying plotting, charting and Data Representation in Python на Coursera научит работе с Matplotlib и составлению отчетов
В лекциях большое внимание уделяется теоретической части составления графиков и отчетов, в то время, как задания даются с предположением о том, что участники курса уже профессионально владеют Python.
Коммуникация
Специалист по данным проводит много времени на встречах, отвечает на письма как и большинство людей в корпоративном мире, но тут умение общаться может быть ещё более важным навыком. Во время таких встреч и переписок нужно уметь объяснять принципы DS и ML таким образом, чтобы даже дилетант мог понять наши проблемы, а мы могли понять его потребности.
Коммуникация с людьми, не погруженными в ML
Вопреки распространённому мнению, важные инструменты специалиста по данным — Word, Outlook и PowerPoint. Со стороны кажется, что ML-разработка — плавание по волнам кода и данных, но значительную часть твоего дня составляет общение: с коллегами, с заказчиком, с менеджером проекта. В конечном счёте наша работа заключается в решении проблем, а не в построении моделей.
Конференция AI-MEN 2020
25 августа, онлайн, беcплатно
tproger.ru
События и курсы на tproger.ru
Если общение внутри коллектива программистов может идти неформально, то с заказчиком необходимо выстраивать как можно более конструктивный диалог. Самое сложное тут — донести, что некоторые пожелания неосуществимы по объективным причинам, а не потому что ты не умеешь: недостаточно данных, задача неосуществима на данном процессе/железе/фреймворке, её невозможно решить физически (например отследить определённый объект, заваленный кучей других объектов).
Был случай, когда заказчик хотел модель прогнозирования перевозок на несколько лет вперед, хотя больше половины трафика приходилось на редкие перевозки, происходившие раз в год — проще попасть пальцем в небо, чем пытаться построить модель с такими исходными.
Коммуникация с командой
Каждое утро с командой мы собираемся, чтобы распределить задачи на день. У нас горизонтальная иерархия, но так органически вышло, что я — неформальный team-lead, поэтому ко мне часто приходят за советом или просят помочь. Нужно сразу оговориться, что процесс разработки у нас не всегда идёт по Agile-методикам: для DS, особенно на ранних этапах разработки, Agile может оказаться недостаточно гибок, поэтому мы выделяем некие реперные точки, на которых собираемся и сверяем часы, например раз в неделю.
Обучение data science с нуля – какие личностные качества нужны?
Вам придется разбирать огромные массивы данных, искать нестандартные пути решения и успешно взаимодействовать с другими членкаи команды. Для этого нужно быть больше, чем азбукой алгоритмов. Подумайте, соответствуете ли вы требованиям к специалисту по данным на уровне soft skills. Для этого у вас должны быть:
- Аналитический склад ума. Без подходящего склада ума, понять и проанализировать большие объемы данных разного типа просто невозможно;
- Упорство и умение доводить начатое до конца. У профессионала не должны опускаться руки, сколько бы раз он ни пробовал решить проблему;
- Креативность. Каждый кейс непохож на другие. Нужно не просто выбрать подходящий метод, а придумать его и только потом реализовать. Без креативного подхода в таком не обойтись;
- Умение объяснять сложные вещи простым языком. Клиенты зачастую являются людьми без технического образования – теми, кто не разбирается в data science, machine learning и других технических аспектах. Представляя им результаты, специалист должен донести основные положение максимально просто;
- Понимание того, как работают бизнес-решения в data science. Цель data scientist — разработать решение для бизнеса, поэтому он должен и сам разбираться, как работает бизнес и будет ли данное решение удобным для конечного пользователя.
Что такое Data Science?
Вообще говоря, Data Science — это набор конкретных дисциплин из разных направлений, отвечающих за анализ данных и поиск оптимальных решений на их основе. Раньше этим занималась только математическая статистика, затем начали использовать машинное обучение и искусственный интеллект, которые в качестве методов анализа данных к матстатистике добавили оптимизацию и computer science (то есть информатику, но в более широком смысле, чем это принято понимать в России).
Основная статья — Наука о данных (Data Science)
А чем занимаются ученые из этой сферы?
Во-первых, программированием, математическими моделями и статистикой. Но не только
Для них очень важно разбираться в том, что происходит в предметной области (например, в финансовых процессах, биоинформатике, банковском деле или даже в компьютерной игре), чтобы отвечать на реальные вопросы: какие риски сопровождают ту или иную компанию, какие наборы генов соответствуют определенному заболеванию, как распознать мошеннические транзакции или какое поведение людей соответствует игрокам, которых надо забанить.
Основная работа ведётся на удалённом сервере
Большинство людей начинают своё путешествие по Data Science на персональных компьютерах. Однако в реальных проектах зачастую требуется гораздо большая вычислительная мощность, которую не сможет обеспечить ни ноутбук, ни даже игровой ПК. Поэтому исследователи Data Science используют свои компьютеры для доступа к удалённому серверу по SSH (Secure Shell). SSH позволяет безопасно подключиться к вычислительной машине. После установки соединения удалённый сервер можно использовать как командную оболочку вашего компьютера. Поэтому при работе с сервером пригодится знание основных команд для Linux и опыт использования терминала.
Специалисты по изучению данных (data scientist)
Специалист по Data Science — это эксперт по данным, который часто имеет высшее образование в области математики или статистики и нередко умеет программировать на R или Python. Наиболее востребованные датасайентисты также обладают знаниями в соответствующих областях бизнеса.
Хотя наборы навыков у разных людей разнятся, задача специалиста по данным состоит в том, чтобы помочь их работодателю решить сложные проблемы, часто связанные с поиском инсайтов, оптимизацией бизнес-процессов и построением предиктивных моделей. Эта роль может рассматриваться как часть ИТ, или же она может быть интегрирована в один из департаментов компании. Из всех возможных ролей, связанных с данными, датасайентисты, как правило, являются наиболее опытными экспертами.
Основные задачи Data Scientist:
- умение извлекать необходимую информацию из разнообразных источников
- использовать информационные потоки в режиме реального времени
- устанавливать скрытые закономерности в массивах данных
- статистически анализировать их для принятия грамотных бизнес-решений.
Основное отличие специалистов по изучению данных от, например, аналитиков, — это умение видеть логические связи в системе собранной информации, и на основании этого разрабатывать те или иные бизнес-решения. Специалисты по изучению данных собирают информацию, строят модели на ее основании и активно применяют количественный анализ.
Именно это редкое сочетание компетенций определяет зарплату специалиста по изучению данных: в США она составляет $110 тыс. — $140 тыс. в год. «Эта вакансия становится все более востребованной,- отмечает на страницах IT World Лора Келли (Laura Kelley), вице-президент агентства по ИТ-консалтингу и подбору персонала Modis (США). — Компании уделяют все больше внимания информации и приложениям. Им требуются специалисты, способные управлять большим количеством данных`.
Майкл Раппа (Michael Rappa), директор Института аналитики в Университете Северной Каролины, вместе со своими коллегами уже 6 лет разрабатывает курс, на котором будут готовить специалистов по изучению данных. «Эти специалисты должны уметь извлекать нужную информацию из всевозможных источников, включая информационные потоки в режиме реального времени, и анализировать ее для дальнейшего принятия бизнес-решений, — говорит он. — Дело не только в объеме обрабатываемой информации, но также в ее разнородности и скорости обновления».
Компании, которые пытаются решить эту задачу силами специалистов по статистике, компьютерных или бизнес-аналитиков, не добиваются нужного результата. Необходимо объединить все эти навыки в одном человеке. Например, бизнес-аналитики воспринимают такие показатели, как разработка и менеджмент продукта, но не способны анализировать и адекватно интерпретировать данные. Математикам и специалистам по статистике недостает знаний в области бизнеса. Именно поэтому, по мнению Раппы, специалистам по изучению данных требуется междисциплинарное образование – они должны уметь решать бизнес-проблемы и составлять информационные модели.
100% выпускников разработанного Институтом аналитики курса для специалистов по изучению данных получили предложения о работе еще до того, как завершили обучение. Раппа также отмечает, что сама специальность — специалист по изучению данных — звучит более привлекательно, чем `специалист по статистике` или `компьютерный аналитик`.
Почему Data Scientist сексуальнее, чем BI-аналитик
В связи с ростом популярности data science (DS) возникает два совершенно очевидных вопроса. Первый – в чем состоит качественное отличие этого недавно сформировавшегося научного направления от существующего несколько десятков лет и активно используемого в индустрии направления business intelligence (BI)? Второй — возможно более важный с практической точки зрения — чем различаются функции специалистов двух родственных специальностей data scientist и BI analyst? В материале, подготовленном специально для TAdviser, на эти вопросы отвечает журналист Леонид Черняк.
MVP лучше, чем долгосрочное исследование
Мир технологий конкурентоспособен и изменчив. В большинстве случаев у компаний нет времени ждать идеального решения, которое достигло бы наилучшего уровня производительности. Вместо этого они начинают проект с минимально жизнеспособного продукта (minimum viable product, MVP) и развивают его. MVP должен удовлетворять самым основным потребностям проекта — ни больше, ни меньше.
Перфекционистам и людям, внимательным к деталям (то есть большинству Data Science-энтузиастов), зачастую сложно работать над MVP. Обычно исследователи стремятся тщательно проанализировать данные, опробовать множество различных моделей и найти наилучшее решение. Наука о данных по сути ориентирована именно на такой подход, однако мы не зря говорим о прикладной области Data Science.
Нужно понимать, что в разработке самый важный актив — время. Никто не может предсказать путь, по которому пойдёт продукт. Возможно, со временем проект приостановят или полностью закроют. MVP создаётся, чтобы свести риски к минимуму. Даже если продукт гарантированно будет развиваться, поначалу ему может не хватать необходимых ресурсов. Построение простой модели и её постепенное развитие с появляющимися новыми данными и технологиями даёт более надёжные результаты.
Какая нужна математика? Если нет матбазы, я безнадёжен?
Константин башевой
Аналитик-разработчик в Яндексе и преподаватель курса «Python для анализа данных»
Вопрос про математику неоднозначный. Глубокое знание математики не является ни необходимым, ни достаточным условием. Конечно, тому, кто её знает, будет легче. Но все необходимые знания даются либо на занятиях, либо в дополнительных материалах.
Здесь как в спорте. Есть люди, которые могут без подготовки пробежать марафон. Остальным будет тяжелее, но при достаточной подготовке и они пробегут. Математическая база — это круто, но не критически необходимо.
Дарья Мухина
Продуктовый аналитик Skyeng, консультант курсов аналитики Нетологии
Кажется, что сейчас глубокую математическую базу можно заменить умением гуглить. В интернете огромное количество видео и статей, где можно получить доступно изложенную информацию — и не нужно лезть в университетские учебники. Главное знать, что тебе нужно.
Сейчас важнее навык применять знания в реальной задаче, а не просто обладать ими.
Елена Герасимова
Руководитель направления Data Science в Нетологии
Понятие «профильное техническое или математическое образование» уходит в прошлое. Уверенного в своих умениях и доменных знаниях специалиста из «гуманитарного» вуза не будут сравнивать с выпускником МФТИ по знанию математики — сравнивают по полезности бизнесу для решения задач.
Уже известны десятки рабочих алгоритмов и библиотек, которые способны всю математическую часть брать на себя без участия человека.
A/B-тесты важнее обучения модели
Вы обучили и настроили новую модель, и она дала потрясающие результаты в каждой тестовой метрике, превзойдя предыдущий алгоритм. Вам нужно немедленно отправить её в продакшн, верно? К сожалению, нет.
Важным процессом в Agile и Data Science являются A/B-тесты. Ваша модель может превзойти предыдущее решение во время обучения, но может не работать в реальной жизни. Обучающие данные — это лишь подмножество реальных данных. Они могут быть устаревшими и содержать ошибки. Поэтому модель выпускается в продакшн только в том случае, если она показывает лучшие результаты во время A/B-тестирования.