Data scientist (дата сайентист)
Содержание:
- Полезные для развития материалы
- Программирование
- Добыча данных (Data Mining)
- Что должен знать начинающий Data Scientist?
- Чем отличается аналитик Big Data от исследователя данных
- Как работают эксперты по аналитическим данным в лаборатории Philips Research
- Основная работа ведётся на удалённом сервере
- Как им стать
- Чем занимается Data Scientist?
- Эксперимент и запуск продукта — совершенно разные вещи
- Уровень 1. От стажёра к джуну
- Что нужно уметь?
- Уровень 2. От джуна к мидлу
Полезные для развития материалы
Книги:
- Учебник “Машинное обучение. Наука и искусство построения алгоритмов, которые извлекают знания из данных”, Петер Флах. Книг на русском языке мало, учебник достойный вариант для погружения в машинное обучение.
- Тем, кто только погружается в тему, пригодится книга “Математический анализ” Липмана Берса.
- “Наука о данных. Базовый курс”, Джон Келлехер, Брендан Тирни. Книга Массачусетского технологического института познакомит вас с базой науки о данных.
- Книга “Machine Learning: A Bayesian and Optimization Perspective” Сергиос Теодоридис.
Онлайн-ресурсы:
- UCI ML-репозиторий. Там вы найдете много публичных дата-сетов, которые грех не опробовать в домашней практике по машинному обучению.
- Плейлист с лекциями по машинному обучению профессора Меллона университета Карнеги. Можно включить русские субтитры.
- На Хабре можно найти много интересных материалов по тегам Data Mining, Data Science и Big Data. Советуем, заглянуть и почитать.
- Плейлист Deep Learning Семена Козлова, разработчика стартапа Instrumental, бывшего сотрудника Dropbox и Microsoft.
- Лекции курса по машинному обучению с Юрием Кашницким.
- YouTube-курс машинного обучения от Яндекса.
- Майнинг массивных наборов данных. Внутри есть главы, можно скачать pdf, посмотреть презентации, видео и сделать упражнения.
Курсы:
Coursera. На ресурсе много курсов по анализу данных, в котором есть подразделение на теорию вероятности, статистику и машинное обучение.
Google. У платформы есть , который полностью посвятили машинному обучению и искусственному интеллекту. Там вы найдете много полезного
Также предлагаем обратить внимание на курс Machine Learning Crash Course от Google.
EdX. Образовательная платформа предлагает несколько десятков программ по машинному обучению, например.
Введение в Data Science и машинное обучение
Бесплатный курс от Stepik.
Introduction to Probability and Statistics – курс, который поможет разобраться в статистике.
Возможно ли, изучив все материалы и требования, найти работу как junior Data scientist? Как стать Data Scientist и нужно ли на него учиться в вузе? Разберемся дальше.
Программирование
Если вы планируете карьеру в области науки о данных, вам нужно изучить программирование на должном уровне. Именно по этой причине многие специалисты в области данных обладают бэкграундом в компьютерных науках: это большое преимущество. Однако, если вы читаете эту статью и не обладаете опытом в программировании — не волнуйтесь, как и большинству вещей, этому можно обучиться самостоятельно.
Программа обучения: «Профессия Python-разработчик»
Мы выяснили, что программирование — важный навык для специалистов в области данных независимо от того, в какой сфере вы находитесь. Однако программирование в целом — не совсем то, что нужно науке о данных. А вот если вы сможете писать программы для автоматизации задач, то не только сэкономите драгоценное время, но и значительно упростите использование кода в будущем.
Перейдем к некоторым ключевым навыкам. В списке я уделил больше внимания практическим навыкам.
Что надо знать
Разработка. Специалисты в области данных, знакомые с практикой разработки программного обеспечения, обычно чувствуют себя более комфортно, чем ученые, работая над крупными коммерческими проектами.
Базы данных. Логично, что специалисты в области данных постоянно используют базы данных, поэтому нужно иметь опыт в этой области. По мере роста баз данных NoSQL и количества облачных вычислений число традиционных SQL-баз данных резко сокращается. Однако работодатели по-прежнему ожидают, что вы будете иметь базовые знания о командах SQL и практику проектирования баз данных.
Сотрудничество. Сотрудничество — ключевой момент в разработке программного обеспечения. Вы, несомненно, знакомы с выражением: «Сила команды определяется её самым слабым звеном». Хоть это и банально, но правдиво для любой команды, специализирующейся в науке о данных. Большая часть работы ведется в группах, поэтому необходимо налаживать связь с командой, а также поддерживать хорошие отношения, чтобы эффективность сотрудничества была максимальной.
Полезные советы
Если спросить любого разработчика программного обеспечения или дата сайентиста о том, какой самый важный аспект программирования в работе, они обязательно ответят одинаково: простота технического сопровождения. Простой, поддерживаемый код почти всегда превосходит пусть и гениальный, но сложный код — он в конечном счете не будет иметь значения, если другие программисты не смогут его понять, оценить, масштабировать и поддерживать в дальнейшем. Есть несколько способов легко улучшить код. Вот они.
Не нужно хардкодить: не указывайте постоянных значений для каких-либо параметризуемых элементов кода, вместо этого используйте переменные и входные данные, они динамичны по своей природе и будут масштабироваться в будущем, в отличие от статических значений. Это небольшое изменение в коде значительно облегчит вам жизнь.
Документируйте и постоянно комментируйте свой код: самый эффективный способ сделать код понятнее — это комментировать, комментировать и комментировать. Кратко и информативно комментируя происходящее, вы убережете себя от бесконечных изменений и объяснений с коллегами.
Проводите рефакторинг: помните, что окончание разработки кода — это еще не конец. Постоянно возвращайтесь к прошлым работам и ищите способы оптимизации и повышения эффективности.
Что почитать
Навыки разработки программного обеспечения для специалистов в области данных (англ.) — отличный обзор важных навыков программирования.Пять измерений дата сайентиста (англ.) — интересный подход к различным ролям, которые может взять на себя специалист в области данных
Обратите особое внимание на «Программист-эксперт» и «Эксперт по базам данных».9 навыков, необходимых для старта карьеры в области данных (англ.) — короткая, но интересная статья
Добыча данных (Data Mining)
Если вы много читали о Data Science, вероятно, вы познакомились с термином «добыча данных» или Data Mining. Но что в самом деле это значит? Изучив различные источники, я думаю, что лучше всего описать это следующим образом
Глоссарий
В своей практике я столкнулся с некоторыми вопросами в области анализа данных, которые, как мне кажется, важны для понимания. Ниже список легких определений терминов из сферы анализа данных. Имейте в виду, что заметить разницу между ними может быть сложно, поскольку все они очень похожи.
Data Wrangling: это преобразование сырых данных для последующей работы над ними. Обычно состоит из нескольких важных шагов, включая очистку и разбор в предопределенные структуры.
Data Munging: то же самое, что и «Data Wrangling» выше. Почему нужно два термина для одного процесса, я, возможно, никогда не узнаю…
Data Cleaning: важный шаг, который включает в себя обнаружение и исправление (или удаление) поврежденных, неточных или отсутствующих значений из набора данных.
Data Scraping: метод, в котором компьютерная программа считывает данные, поступающие из другой программы или сайта, например, Twitter.
Значимость в Data Science
Каждый хочет делать потрясающие прогностические модели и феерические визуализации. Однако часто забывают, что ничего не выйдет, пока вы не выполните работу «санитара». В недавней статье New York Times было обнаружено, что специалисты в области данных тратят примерно 50−80% рабочего времени на сбор и подготовку данных.
Об этой суровой реальности обязательно надо сообщать будущим специалистам в области данных. За прибыльным базовым окладом и званием «Самая сексуальная работа XXI века» молодые специалисты не видят реальной сути профессии.
Что почитать
Что такое Data Mining? (англ.) — хорошее обсуждение на Quora с различными определениями анализа данных.Что такое Data Wrangling? (англ.) — краткая информация о том, что из себя представляет data wrangling.«Работа санитара» — главный барьер на пути к инсайтам (англ.) — интересная статья, в которой подробно рассматриваются важность различных методов анализа данных в области науки о данных
Что должен знать начинающий Data Scientist?
Data scientist должен уметь писать код. Специалист по данным занимается написанием модели для оценки гипотез, аналитики или оценки данных. Этого никак не сделать без знаний основных языков программирования, применяемых в области Data Science. Вам пригодятся знания:
- Java, Hive для работы с Hadoop;
- Python – его основы и понимание того, как работать с ним в анализе данных. Также познакомьтесь с инструментами Matplotlib, Numpy, Scikit, Skipy;
- SQL – для извлечения данных;
- C++ с инструментами BigARTM, Vowpel Wabbit, XGBoost;
- языка R, который пригодится для расчетов статистики.
Математика.
Аналитик данных должен пройти курсы математического анализа, математической статистики, линейной алгебры, а также знать, что такое теория вероятности. Эти знания пригодятся, для того чтобы составлять прогнозы, работать над поиском закономерностей и построением математических моделей.
В математическом анализе вам понадобятся производные, правило дифференцирования сложной функции и градиенты. Описательная статистика, планирование эксперимента и машинное обучение нужно будет изучить в курсе математической статистики
Линейная алгебра нужна для понимания механизмов машинного обучения, там обратите внимание на векторы и пространства, матричные преобразования.
Машинное обучение.
Без него в вашей работе никуда. Машинное обучение нужно для создания новых моделей и переобучения существующих. Также оно связано не только с искусственным интеллектом, но и с генетическими, эволюционными алгоритмами, кластерными задачами и так далее. Благодаря машинному обучению работа Data Scientist с большими объемами данных становится эффективной.
Deep Learning.
Чтобы руководить проектами машинного обучения, вам нужно будет разобраться, как устроены нейронные сети и изучить основы глубокого обучения.
Специфику домена.
Для того чтобы понимать, как работает продукт и создавать подходящую модель, необходимы знания о домене, в котором вы работаете. Data Scientists трудятся во всевозможных отраслях, самыми популярными из которых являются маркетинг, здравоохранение и экономика. Если у вас нет нужных профильных знаний заранее, не переживайте, вы точно приобретете их на проекте.
Английский язык.
Обязательный пункт для любой специальности в ИТ. Английский пригодится вам в работе при общении с зарубежными клиентами и коллегами в многонациональной команде. Также вы столкнетесь с английским во время работы с различными фреймворками и технологиями, и в своем развитии: много технической литературы выпускается только на английском языке.
Если вы уже работаете в Data Science, то наверняка знакомы со всеми этими требованиями. Для опытных аналитиков данных они, конечно же, другие.
Требования к опытному специалисту по данным
Некоторые специалисты описывают успешного Data Scientist как хакера, аналитика, коммуникатора или доверенного консультанта. Давайте разберемся, какие скиллы вам пригодятся.
Кроме hard skills, которые мы описывали выше, вам нужно иметь:
- Опыт разработки моделей машинного и глубинного обучения с фреймворками Hadoop, TensorFlow, Keras, PyTorch, Scikit-Learn, Pytorch, MLLib и другими;
- Глубокие знания одной из областей обучения по прецедентам Machine Learning;
- Опыт работы с SQL и инструментами BigData, как Spark/Hive;
- Опыт работы с инструментами визуализации Pandas, Matplotlib, Seaborne.
Конечно, работа в команде требует развитых гибких навыков для Data Scientist. Давайте рассмотрим, какие навыки вам помогут.
Soft skills для Data Scientist
- Ассоциативное мышление.
- Способность излагать свои мысли так, чтобы их понял другой человек.
- Любопытство для погружения в проблему и дальнейшей работы с гипотезами.
- Умение находить эффективные решения проблем.
- Внимательность.
- Умение работать в команде и находить подход к каждому.
- Умение задавать хорошие вопросы.
- Дотошность.
- Умение визуализировать данные.
С требованиями и навыками разобрались. А теперь давайте узнаем, какие нам пригодятся курсы, видео и материалы, чтобы развиваться в Data Science?
Чем отличается аналитик Big Data от исследователя данных
На первый взгляд может показаться, что Data Scientist ничем не отличается от Data Analyst, ведь их рабочие обязанности и профессиональные компетенции частично пересекаются. Однако, это не совсем взаимозаменяемые специальности. При значительном сходстве, отличия между ними также весьма существенные:
- по инструментарию – аналитик чаще всего работает с ETL-хранилищами и витринами данных, тогда как исследователь взаимодействует с Big Data системами хранения и обработки информации (стек Apache Hadoop, NoSQL-базы данных и т.д.), а также статистическими пакетами (R-studio, Matlab и пр.);
- по методам исследований – Data Analyst чаще использует методы системного анализа и бизнес-аналитики, тогда как Data Scientist, в основном, работает с математическими средствами Computer Science (модели и алгоритмы машинного обучения, а также другие разделы искусственного интеллекта);
- по зарплате – на рынке труда Data Scientist стоит чуть выше, чем Data Analyst (100-200 т.р. против 80-150 т.р., по данным рекрутингового портала HeadHunter в августе 2019 г.). Возможно, это связано с более высоким порогом входа в профессию: исследователь по данным обладает навыками программирования, тогда как Data Analyst, в основном, работает с уже готовыми SQL/ETL-средствами.
На практике в некоторых компаниях всю работу по данным, включая бизнес-аналитику и построение моделей Machine Learning выполняет один и тот же человек. Однако, в связи с популярностью T-модели компетенций ИТ-специалиста, при наличии широкого круга профессиональных знаний и умений предполагается экспертная концентрация в узкой предметной области. Поэтому сегодня все больше компаний стремятся разделять обязанности Data Analyst и Data Scientist, а также инженера по данным (Data Engineer) и администратора Big Data, о чем мы расскажем в следующих статьях.
Data Scientist – одна из самых востребованных профессий на современном ИТ-рынке
В области Big Data ученому по данным пригодятся практические знания по облачным вычислениям и инструментам машинного обучения. Эти и другие вопросы по исследованию данных мы рассматриваем на наших курсах обучения и повышения квалификации ИТ-специалистов в лицензированном учебном центре для руководителей, аналитиков, архитекторов, инженеров и исследователей Big Data в Москве:
- PYML: Машинное обучение на Python
- DPREP: Подготовка данных для Data Mining
- DSML: Машинное обучение в R
- DSAV: Анализ данных и визуализация в R
- AZURE: Машинное обучение на Microsoft Azure
Смотреть расписание
Записаться на курс
Как работают эксперты по аналитическим данным в лаборатории Philips Research
В лаборатории Philips Research каждый Data Scientist занимается разработками в рамках текущих проектов компании в сфере здравоохранения. Тематика разработок достаточно широкая, и заниматься в лаборатории можно чем угодно: распознаванием образов и обработкой изображений и текстов, предсказанием болезней, поиском аномалий, генеративными моделями и другими технологиями.
Один из приоритетов специалистов лабораторий Philips Research по всему миру — разработка инновационных подходов к медицинской визуализации. Учёные стремятся автоматизировать некоторые из задач врачей, деятельность которых связана с оценкой изображений, и внедряют ИИ (искуственный интеллект) в рентгенологию, МРТ, компьютерную томографию, патоморфологию.
Примером может послужить возможность создавать один вид изображения на основании другого — этому могут обучаться генеративные алгоритмы. Нейросети моделируют изображения на основании известной информации: мы знакомы с этой возможностью, по развлекательным мобильным приложениям, в которых можно создать «гибрид» двух людей по фотографиям.
В медицине это применимо, когда пациенту во время обследования требуется сразу две процедуры: компьютерная томография (КТ) и МРТ. При проведении КТ доза облучения пациента несколько выше, особенно когда необходимо хорошее разрешение. Чтобы снизить уровень лучевой нагрузки, особенно, если пациент — ребенок, ученые создали метод, который называется квази-КТ. Согласно ему обученная программа генерирует КТ на основе существующих МРТ. Пациент проходит одну процедуру вместо нескольких. Таким образом уменьшается время и стоимость обследования, а главное — доза облучения.
Среди направлений разработок Philips Research, не связанных с визуализацией, особенно перспективна прогнозная аналитика — предсказание заболеваний в зависимости от местности и группы населения. Если будут учитываться медицинские показатели миллионов человек, можно будет находить взаимосвязи и закономерности, выяснять, почему где-то одни заболевания распространены больше, чем другие, и затем на основании полученной информации определять группы риска и проводить профилактику до возникновения вспышек болезней.
Специалисты Philips Research принимают участие в разработке интеллектуальных систем, занимаются изобретательской деятельностью с последующим патентованием. К тому же специалисты проводят исследования, экспериментируют с данными и оформляют свои результаты в виде научных статей и выступают с докладами на ведущих мировых конференциях в сфере искусственного интеллекта, таких как MICCAI, MIDL, ACPR.
Data Scientist на сегодня — одна из самых быстроразвивающихся профессий, которая позволяет претворять в жизнь то, что раньше казалось нереальным. Спрос на специалистов в области данных велик и продолжает расти, а возможности для развития практически безграничны.
Основная работа ведётся на удалённом сервере
Большинство людей начинают своё путешествие по Data Science на персональных компьютерах. Однако в реальных проектах зачастую требуется гораздо большая вычислительная мощность, которую не сможет обеспечить ни ноутбук, ни даже игровой ПК. Поэтому исследователи Data Science используют свои компьютеры для доступа к удалённому серверу по SSH (Secure Shell). SSH позволяет безопасно подключиться к вычислительной машине. После установки соединения удалённый сервер можно использовать как командную оболочку вашего компьютера. Поэтому при работе с сервером пригодится знание основных команд для Linux и опыт использования терминала.
Как им стать
Учеба обязательна для этой профессии. Причем учиться надо много, долго и основательно. Для начала надо освоить азы математики, статистики и информатики, а дальше изучить языки программирования, лучше начать с Python.
На блоге iklife.ru собраны лучшие курсы по Python для начинающих и опытных программистов, которые будут полезны при освоении должности Data Scientist.
Также рекомендую вам прочитать следующие книги:
- Брендан Тирни, Джон Келлехер “Наука о данных”
- Кирилл Еременко “Работа с данными в любой сфере”
- Уэс Маккинни “Python и анализ данных”
Куда пойти учиться
Лучшее обучение – это онлайн-обучение. Платформы Skillbox, Нетология, GeekBrains, SkillFactory, ProductStar и Stepik предлагают свои обучающие программы:
- Профессия Data Scientist
- Data Scientist
- Data Science с нуля
Ознакомиться с полным перечнем курсов для Data Scientist можно на нашем блоге.
Уточню, что на этом учеба не должна заканчиваться. Data Scientist – это такая профессия, которая предполагает непрерывное обучение. Даже если вы уже работаете, периодически повышать свой уровень надо обязательно. К тому же выбор достаточно широк – это и онлайн-курсы, и тренинги, и конференции.
Где найти работу
Сложно сказать, где именно искать работу по этой профессии. Не из-за того, что мало мест, а, наоборот, потому что нет такой сферы бизнеса, где нельзя было бы применить талант этого специалиста. Ему доступна как работа в офисе, так и удаленно на дому.
Он востребован в таких областях деятельности как:
- IT-сфера,
- медицина,
- банковские структуры,
- СМИ,
- торговля,
- политика,
- транспортные компании,
- страховые фирмы,
- сельское хозяйство,
- наука,
- метеослужбы.
Как я уже говорила, Data Scientist нужен во многих сферах, где необходимы прогнозы, анализ рисков и поведения клиентов. Поэтому список можно дополнить.
Перед откликом на вакансию надо подготовить резюме. В нем сосредоточиться в первую очередь нужно на математических и IT-навыках, опыте работе, успешных проектах и достижениях. Описание должно получиться кратким, лаконичным и простым. Специалисту надо прикрепить портфолио к резюме.
Учтите, что вакансии на эту должность не всегда называются именно “Data Scientist”. Работодатели могут написать, что требуется IT-аналитик, специалист по анализу систем, аналитик Big Data.
Чем занимается Data Scientist?
В Data Science обучении стоит отталкиваться от задач, поставленных перед специалистом. При этом задачи Data Scientist могут отличаться в зависимости от сферы деятельности компании. Вот несколько примеров:
- обнаружение аномалий — например нестандартных действий с банковской картой, мошенничества;
- анализ и прогнозирование — показатели эффективности, качество рекламных кампаний;
- системы баллов и оценок — обработка больших объёмов данных для принятия решения, например, о выдаче кредита;
- базовое взаимодействие с клиентом — автоматические ответы в чатах, голосовые помощники, сортировка писем по папкам.
Но для любой из вышеперечисленных задач всегда нужно выполнять примерно одни и те же шаги:
- Сбор данных — поиск источников и способов получения информации, а также сам процесс сбора.
- Проверка — валидация, удаление аномалий.
- Анализ — изучение данных, построение предположений, выводов.
- Визуализация — приведение данных в вид, понятный для человека (графики и диаграммы).
- Результат — принятие решений на основе анализируемых данных, например об изменении маркетинговой стратегии или увеличении бюджета на какую-либо деятельность компании.
Эксперимент и запуск продукта — совершенно разные вещи
Чаще всего специалисты Data Science работают в Jupyter Notebook — это простое и удобное приложение для экспериментов и визуализации. Можно быстро попробовать что-то новое, обучить модель или увидеть результат вычислений, просто открыв ячейку и запустив несколько строк кода.
Но как только модель готова к выпуску в продакшн, господство Jupyter Notebook заканчивается, и власть переходит к Python-файлам. Продакшн — это работа ваших алгоритмов в реальной жизни. Конечный пользователь всегда смотрит на качество итогового продукта, поэтому код продакшна должен быть быстрым, чистым, читабельным, отказоустойчивым и простым в отладке.
Скорость кода не так важна, если вы просто экспериментируете и запускаете программу один-два раза. Однако в продакшне ваш код, вероятно, будет выполняться несколько раз в день и влиять на другие части продукта, поэтому скорость станет важна.
Посмотрим правде в глаза, наверняка в большинстве ваших .ipynb-файлов много неупорядоченных строк, неиспользованных import и ненужных ячеек. И это нормально, когда вы просто экспериментируете. Но перед выпуском в продакшн код нужно «очистить». Считайте, что ваш код достаточно чист, если кто-то в вашей команде может просмотреть его и с лёгкостью понять назначение каждой строки. Вот почему вы должны давать правильные имена своим переменным и функциям.
Стоит выводить важные шаги выполнения кода на экран оболочки, а также в лог-файл. Это поможет быстро выявить возможные проблемы. Хороший лог-файл должен содержать время начала и окончания выполнения, результаты и записи исключений.
Иногда даже проверенный код по какой-либо причине начинает давать сбой, и пользователи видят странные результаты. Хороший продакшн-код должен уметь обрабатывать возможные исключения и заранее выводить предупреждения в случае неожиданной или нерешаемой проблемы. В зависимости от ситуации неисправный код можно откатить до предыдущего состояния или заставить его выдать предварительные результаты. Всегда лучше потратить время на написание отказоустойчивого кода, чем потом в спешке всё переделывать.
Но даже в отказоустойчивом коде могут быть ошибки, приводящие к непредвиденным результатам. В этом случае программу нужно отлаживать. Чтобы процесс отладки был понятным и простым, всегда следите за чистотой и качеством кода: используйте функции вместо повторяющихся конструкций, помните про правило «одна функция = одна решаемая задача» и избегайте «грязных» функций. Такая практика позволит легко найти источник ошибки в коде.
Для написания продакшн-кода вместо Jupyter Notebook лучше использовать текстовый редактор или IDE, например VS Code или PyCharm. Эти инструменты сделают разработку проще и быстрее. Если вы всё же хотите работать с Jupyter, можете попробовать использовать расширение nbconvert, которое конвертирует скрипты .ipynb в .py-файлы.
Уровень 1. От стажёра к джуну
Главное на этом уровне — научиться работать с датасетами в виде CSV-файлов, обрабатывать и визуализировать данные, понимать, что такое линейная регрессия.
Основы обработки данных
В первую очередь придётся манипулировать данными, чистить, структурировать и приводить их к единой размерности или шкале. От новичка ждут уверенной работы с библиотеками Pandas и NumPy и некоторых специальных навыков:
- импорт и экспорт данных в CSV-формате;
- очистка, предварительная подготовка, систематизация данных для анализа или построения модели;
- работа с пропущенными значениями в датасете;
- понимание принципов замены недостающих данных (импутации) и их реализация — например, замена средними или медианами;
- работа с категориальными признаками;
- разделение датасета на обучающую и тестовую части;
- нормировка данных с помощью нормализации и стандартизации;
- уменьшение объёма данных с помощью техник снижения размерности — например, метода главных компонент.
Визуализация данных
Новичок должен знать основные принципы хорошей визуализации и инструменты — в том числе Python-библиотеки matplotlib и seaborn (для R — ggplot2).
Какие компоненты нужны для правильной визуализации данных:
Данные. Прежде чем решить, как именно визуализировать данные, надо понять, к какому типу они относятся: категориальные, численные, дискретные, непрерывные, временной ряд.
Геометрия. То есть какой график вам подойдёт: диаграмма рассеяния, столбиковая диаграмма, линейный график, гистограмма, диаграмма плотности, «ящик с усами», тепловая карта.
Координаты. Нужно определить, какая из переменных будет отражена на оси x, а какая — на оси y
Это важно, особенно если у вас многомерный датасет с несколькими признаками.
Шкала. Решите, какую шкалу будете использовать: линейную, логарифмическую или другие.
Текст
Всё, что касается подписей, надписей, легенд, размера шрифта и так далее.
Этика. Убедитесь, что ваша визуализация излагает данные правдиво. Иными словами, что вы не вводите в заблуждение свою аудиторию, когда очищаете, обобщаете, преобразовываете и визуализируете данные.
Обучение с учителем: предсказание непрерывных переменных
Главное: стажёру придётся изучить методы регрессии, стать почти на ты с библиотеками scikit-learn и caret, чтобы строить модели линейной регрессии
Но чтобы стать полноценным джуниором, стажёр должен знать и уметь ещё кучу всего (осторожно — там сложные слова, но есть подсказки):
- проводить простой регрессионный анализ с помощью NumPy или Pylab;
- использовать библиотеку scikit-learn, чтобы решать задачи с множественной регрессией;
- понимать методы регуляризации: метод LASSO, метод упругой сети, метод регуляризации Тихонова;
- знать непараметрические методы регрессии: метод k-ближайших соседей и метод опорных векторов;
- понимать метрики оценок моделей регрессии: среднеквадратичная ошибка, средняя абсолютная ошибка и коэффициент детерминации R-квадрат;
- сравнивать разные модели регрессии.
Что нужно уметь?
Программировать на Python
Большим преимуществом будет знание основ программирования. Но это довольно обширная и сложная область, и чтобы немного упростить её изучение, можно сосредоточиться на одном языке. Python идеально подходит начинающим — у него относительно простой синтаксис, он многофункциональный и часто используется для обработки данных.
Книги по теме:
- «Python для сложных задач. Наука о данных и машинное обучение», Дж. Вандер Плас — руководство по статистическим и аналитическим методам обработки данных;
- «Python и анализ данных», Уэс Маккинни — пособие по применению Python в науке о данных;
- «Автоматизация рутинных задач с помощью Python», Эл Свейгарт — книга даёт хорошие практические основы для начинающих.
- «Изучаем Python», М. Лутц — учебник с практическим подходом, который подойдёт как новичкам, так и разработчикам с опытом.
После того, как вы изучите основы Python, можете ознакомиться с библиотеками для Дата Сайнс.
Основные библиотеки:
- Numpy
- Scipy
- Pandas
Визуализация:
- Matplotlib
- Seaborn
Машинное обучение и глубокое обучение:
- SciKit-Learn
- TensorFlow
- Theano
- Keras
Обработка естественного языка:
NLTK
Веб-скрейпинг:
BeautifulSoup 4
Собирать данные
Data Mining — важный аналитический процесс, предназначенный для исследования данных. Он позволяет находить скрытые паттерны, чтобы получить ранее неизвестную полезную информацию, необходимую для принятия каких-либо решений. Сюда же входит визуализация данных — представление информации в понятном графическом виде.
Книги по теме:
- «Технологии анализа данных: Data Mining, Visual Mining, Text Mining, OLAP» В.В. Степаненко, И.И. Холод — описание методов обработки данных с примерами;
- «Data mining. Извлечение информации из Facebook, Twitter, LinkedIn, Instagram, GitHub», М. Рассел. М. Классен — книга, которая учит практическим приёмам анализа данных на примере популярных соцсетей.
Уровень 2. От джуна к мидлу
Прочно закрепив на практике все те неприличные слова из блока для джуна, можно штурмовать более продвинутые техники и методы: предсказание дискретных переменных в обучении с учителем (supervised learning), оценку и настройку моделей, а также сбор разных алгоритмов в единые ансамбли методов. Вы уже поняли, что сейчас опять начнётся ковровое бомбометание дата-сайентистскими терминами? Не вздумайте употреблять их в публичных местах — а то бабушки начнут креститься, как будто увидели сатаниста или парня с татуировками по всему телу 🙂
Обучение с учителем: предсказание дискретных переменных
Начните с алгоритмов бинарной классификации — вот какие надо знать мидлу:
- перцептрон;
- логистическая регрессия;
- метод опорных векторов;
- решающие деревья и случайный лес;
- k-ближайших соседей;
- наивный байесовский классификатор.
Дополнительно: небольшая статья о том, как создать простую модель машинного обучения. Формируем и делим датасет, обучаем модель Random Forest, предсказываем дискретную переменную и вот это всё.
Мастхэв — на хорошем уровне работать с библиотекой scikit-learn (она уже тут мелькала), которая помогает строить модели. Также придётся решать задачи на нелинейную классификацию с помощью метода опорных векторов, освоить несколько метрик для оценки алгоритмов классификации — точность, погрешность, чувствительность, матрица ошибок, F-мера, ROC-кривая.
Оценка моделей и оптимизация гиперпараметров
Чтобы правильно оценивать и настраивать модели, специалисту нужно:
- соединять трансформеры (к Оптимусу Прайму и Бамблби они отношения не имеют — пока) и модули оценки (estimators) в конвейеры машинного обучения (machine learning pipelines).
- использовать кросс-валидацию для оценки модели;
- устранять ошибки в алгоритмах классификации с помощью кривых обучения и валидации;
- выявлять проблемы смещения и дисперсии с помощью кривых обучения;
- работать с переобучением и недообучением, используя кривые валидации;
- настраивать модель машинного обучения и оптимизировать гиперпараметры с помощью поиска по решётке;
- читать и правильно интерпретировать матрицу ошибок;
- строить и правильно толковать ROC-кривую.
Сочетание разных моделей в ансамбле методов
- использовать ансамбль методов с различными классификаторами;
- комбинировать разные алгоритмы классификации;
- знать, как оценить и настроить ансамбль моделей классификации.