Гайд в мир data science для начинающих
Содержание:
2017: Высшая школа экономики будет обучать Data Culture на всех программах бакалавриата
НИУ ВШЭ первым из российских университетов начнет формировать компетенции по Data Science у всех студентов, обучающихся на программах бакалавриата. В рамках проекта Data Culture расширится набор дисциплин и появятся образовательные треки по анализу больших данных.
Data Culture – это общий термин для обозначения навыков и культуры работы с данными. Высшая школа экономики считает, что запуск проекта, направленного на воспитание у студентов таких навыков, сейчас актуален из-за огромного потенциала использования больших данных и трансформации профессий, которые, так или иначе, используют или могут использовать большие массивы информации. Потребность рынка в специалистах с компетенциями по анализу данных, перерастает в необходимость воспитания во всех предметных областях профессионалов, понимающих возможности и ограничения массивов данных, потенциал и особенности методов машинного обучения, а в ряде направлений и умеющих пользоваться этими технологиями и инструментами.
Проект Data Culture станет продолжением интеграции в образовательные программы НИУ ВШЭ элементов, направленных на воспитание у студентов культуры и умений работы с данными. Он расширит возможности студентов уже абсолютно всех образовательных программ по формированию компетенций, связанных с Data Science. Это позволит выпускникам в перспективе быстро и эффективно интегрироваться в решение профессиональных задач на стыке предметных областей и компьютерных технологий, которые сегодня являются передовыми, но уже в ближайшей перспективе станут привычной практикой.
Проект включает разработку отдельных курсов по Data Science так или иначе кастомизированных под специфику образовательных программ, а также формирование специализированных образовательных треков из таких курсов с разной степенью сложности: начального, базового, продвинутого, профессионального и экспертного уровней. Это связано с большим разнообразием образовательных программ, студенты которых дифференцированы по базовым компетенциям в сфере математики и информатики. Для программ или их блоков будет предложена система курсов Data Culture в определенной вилке «сквозного уровня продвинутости». Более того, эти системы курсов определятся спецификой предметных областей.
Внедрение дисциплин Data Culture будет происходить поэтапно. В 2017/2018 учебном году будут включены в учебные планы обязательные и элективные курсы по направлению Data Science для части образовательных программ, но таковых будет более половины. Например, у студентов-гуманитариев, юристов и дизайнеров появится вводный курс по цифровой грамотности, программы экономистов дополнятся дисциплиной по машинному обучению, политологов – анализу социальных сетей, у статистиков появится курс по программированию и извлечению и анализу интернет-данных. С 2018 года к проекту примкнут все образовательные программы.
Для реализации проекта Data Culture предполагается привлечение преподавательского состава как из академической среды (преподаватели факультета компьютерных наук, сотрудники департамента математики факультета экономических наук и общеуниверситетской кафедры высшей математики и т.д.), так и из индустрии (участники сообществ по анализу данных, участники тематических мероприятий по анализу данных, проводимых в IT-компаниях). Более того, преподаватели факультетов, которые уже погружены в работу с данными в рамках своей профессиональной деятельности, также будут разрабатывать курсы в рамках проекта Data Culture для студентов своих и смежных факультетов.
Знание английского языка в data science
Но все soft skills меркнут перед необходимостью знать английский
Это более важно. Без этого никуда
Большая часть из необходимых для изучения ресурсов – на английском языке. Нужно смириться – самые свежие новости и курсы по data science появляются первым делом на английском. Многие книги и обучающие программы, представленные в этой статье, также поддерживают только английский. Но не стоит отчаиваться, если ваш язык хромает.
Уже имея знание не ниже уровня B2, можно просто подтянуть словарный запас, дополнив его терминами, связанными с данными. Чувствуете себя неуверенно? Попробуйте курс по английскому языку для IT-специалистов от Skyeng или найдите более подходящий в нашем обзоре площадок для онлайн-обучения английскому.
Особенности профессии
В работе с данными Data Scientist использует различные способы:
- статистические методы;
- моделирование баз данных;
- методы интеллектуального анализа;
- приложения искусственного интеллекта для работы с данными;
- методы проектирования и разработки баз данных.
Должностные обязанности data scientist зависят от сферы его деятельности, но общий перечень функций выглядит следующим образом:
- сбор данных из разных источников для последующей оперативной обработки;
- анализ поведения потребителей;
- моделирование клиентской базы и персонализация продуктов;
- анализ эффективности внутренних процессов базы;
- анализ различных рисков;
- выявление возможного мошенничества по изучению сомнительных операций;
- составление периодических отчетов с прогнозами и презентацией данных.
Data Scientist, как настоящий учёный, занимается не только сбором и анализом данных, но и изучает их в разных контекстах и под разными углами, подвергая сомнению любые предположения. Важнейшее качество специалиста по данным — это умение видеть логические связи в системе собранной информации, и на основе количественного анализа разрабатывать эффективные бизнес-решения. В современном конкурентном и быстро меняющемся мире, в постоянно растущем потоке информации Data Scientist незаменим для руководства в плане принятия правильных бизнес-решений.
Программирование
Если вы планируете карьеру в области науки о данных, вам нужно изучить программирование на должном уровне. Именно по этой причине многие специалисты в области данных обладают бэкграундом в компьютерных науках: это большое преимущество. Однако, если вы читаете эту статью и не обладаете опытом в программировании — не волнуйтесь, как и большинству вещей, этому можно обучиться самостоятельно.
Программа обучения: «Профессия Python-разработчик»
Мы выяснили, что программирование — важный навык для специалистов в области данных независимо от того, в какой сфере вы находитесь. Однако программирование в целом — не совсем то, что нужно науке о данных. А вот если вы сможете писать программы для автоматизации задач, то не только сэкономите драгоценное время, но и значительно упростите использование кода в будущем.
Перейдем к некоторым ключевым навыкам. В списке я уделил больше внимания практическим навыкам.
Что надо знать
Разработка. Специалисты в области данных, знакомые с практикой разработки программного обеспечения, обычно чувствуют себя более комфортно, чем ученые, работая над крупными коммерческими проектами.
Базы данных. Логично, что специалисты в области данных постоянно используют базы данных, поэтому нужно иметь опыт в этой области. По мере роста баз данных NoSQL и количества облачных вычислений число традиционных SQL-баз данных резко сокращается. Однако работодатели по-прежнему ожидают, что вы будете иметь базовые знания о командах SQL и практику проектирования баз данных.
Сотрудничество. Сотрудничество — ключевой момент в разработке программного обеспечения. Вы, несомненно, знакомы с выражением: «Сила команды определяется её самым слабым звеном». Хоть это и банально, но правдиво для любой команды, специализирующейся в науке о данных. Большая часть работы ведется в группах, поэтому необходимо налаживать связь с командой, а также поддерживать хорошие отношения, чтобы эффективность сотрудничества была максимальной.
Полезные советы
Если спросить любого разработчика программного обеспечения или дата сайентиста о том, какой самый важный аспект программирования в работе, они обязательно ответят одинаково: простота технического сопровождения. Простой, поддерживаемый код почти всегда превосходит пусть и гениальный, но сложный код — он в конечном счете не будет иметь значения, если другие программисты не смогут его понять, оценить, масштабировать и поддерживать в дальнейшем. Есть несколько способов легко улучшить код. Вот они.
Не нужно хардкодить: не указывайте постоянных значений для каких-либо параметризуемых элементов кода, вместо этого используйте переменные и входные данные, они динамичны по своей природе и будут масштабироваться в будущем, в отличие от статических значений. Это небольшое изменение в коде значительно облегчит вам жизнь.
Документируйте и постоянно комментируйте свой код: самый эффективный способ сделать код понятнее — это комментировать, комментировать и комментировать. Кратко и информативно комментируя происходящее, вы убережете себя от бесконечных изменений и объяснений с коллегами.
Проводите рефакторинг: помните, что окончание разработки кода — это еще не конец. Постоянно возвращайтесь к прошлым работам и ищите способы оптимизации и повышения эффективности.
Что почитать
Навыки разработки программного обеспечения для специалистов в области данных (англ.) — отличный обзор важных навыков программирования.Пять измерений дата сайентиста (англ.) — интересный подход к различным ролям, которые может взять на себя специалист в области данных
Обратите особое внимание на «Программист-эксперт» и «Эксперт по базам данных».9 навыков, необходимых для старта карьеры в области данных (англ.) — короткая, но интересная статья
Карьерная траектория и карьерный трек
На каждом из этапов необходимо разное количество инструментов и навыков.
Есть роли и треки со схожими компетенциями (можно развиваться в одном направлении, а потом идти глубже или свернуть в другую сторону).
С точки зрения обучения это означает выкладку дорожки из кирпичиков знаний и умений – мы называем это модулями.
Уровень трансформации данных. ETL-специалисты преобразуют неструктурированные массивы данных в базы данных (БД):
- Data Engineer (дата-инженер) — отвечает за целостность и оптимальное хранение данных;
- разработчик БД — обеспечивает работоспособность БД;
- архитектор БД — проектирует хранение данных.
Уровень обработки данных. Анализируют собранные на предыдущем уровне данные, чтобы получить из них знание и извлечь пользу:
- Аналитик — анализирует метрики, проводит эксперименты, составляет прогнозы.
- Data Scientist — разрабатывает продукт, основанный на данных (например, рекомендательную систему).
- BI-специалист — занимается визуализацией, интерактивными дашбордами.
- ML Engineer — разрабатывает и отвечает за развитие data-driven продуктов.
Больше всего карьерных треков у ML Engineer — по сути, это разработчик алгоритмов. Это нейросети, голосовые помощники, Object detection — сфера безопасности, предсказание спроса, предиктивная аналитика, распознавание объектов. Среди более сложных направлений: GAN — работа с изображениями, RL — игровые стратегии, геймдев, Black-box AI — коробочные решения для искусственного интеллекта.

Из каких профессий быстрее всего переквалифицироваться
Знакомство с Neural ODE
Neural Ordinary Differential Equations
Значительная доля процессов описывается дифференциальными уравнениями, это могут быть эволюция физической системы во времени, медицинское состояние пациента, фундаментальные характеристики фондового рынка и т.д. Данные о таких процессах последовательны и непрерывны по своей природе, в том смысле, что наблюдения — это просто проявления какого-то непрерывно изменяющегося состояния.
Есть также и другой тип последовательных данных, это дискретные данные, например, данные NLP задач. Состояния в таких данных меняется дискретно: от одного символа или слова к другому.
Сейчас оба типа таких последовательных данных обычно обрабатываются рекуррентными сетями, несмотря на то, что они отличны по своей природе, и похоже, требуют различных подходов.
На последней NIPS-конференции была представлена одна очень интересная статья, которая может помочь решить эту проблему. Авторы предлагают подход, который они назвали Нейронные Обыкновенные Дифференциальные Уравнения (Neural ODE).
Здесь я постарался воспроизвести и кратко изложить результаты этой статьи, чтобы сделать знакомство с ее идеей чуть более простым. Мне кажется, что эта новая архитектура вполне может найти место в стандартном инструментарии дата-сайентиста наряду со сверточными и рекуррентными сетями.
Резюме / профиль на LinkedIn
мне на LinkedInтак
- LinkedIn — список вакансий, которые создали на самом LinkedIn, а также те вакансии, которые LinkedIn надёргал с других ресурсов. Недостаток — легкий доступ к списку вакансий и как следствие много апликантов. 300 — 1000 апликантов на одну вакансию — это нормально. Из достоинств — вакансий много, можно массово подавать во всё, что можно.
- dice.com — какие-то вакансии есть и там, но я ни одного интервью с ними не получил.
- monster.com — тоже ксть какие-то вакансии, но я на нём зарегестрировался достаточно поздно
- Секция jobs на kaggle.com
- Знакомые, которые где-то работают могут вас посоветовать. (Я так получил интервью с Google и Pebble)
- Знакомые, которые получили job offer, отклонили его, но вместо себя посоветовали вас. (Я так получил интервью с Uptake и Bidgely)
- Career Fair в UC Davis было бесполезное, а на Career Fair в Stanford или Berkley без соответствующего студенческого билета не просочится. Но это я поздно спохватился. Если бы раньше мозг включил, может быть что-нибудь бы и придумал.
- Meetups — в Bay Area чуть не каждый день проводятся всевозможные митапы на темы связанные с Data Science. Там как минимум можно с кем-то познакомится, а как максимум, можно и впечатлить (Недавний пример — надо мне было пробки переждать, я зашёл на митап, который проходил неподалёку под названием Deep Learning в Natural Language Processing. И мне эта тема никогда не давалась. По отдельности и нейронные сети и NLP работают, а когда их скрещиваешь — резльтат у меня получался средненький. Вот я и зашёл просветится. Но не угадал. Там все были неопытные, поэтому я два часа у доски им лекцию читал о том, что знаю на эту тему и на следующий день пара присутствующих на митапе написали, что у них на работе есть вакансия ну вот как раз для меня. Но это скорее исключение. Да и митапы где я ничему не учусь мне не нравятся.).
Михаила Обухова
- Знания алгоритмов машинного обучения на уровне эксперта.
- Знания статистики на уровне эксперта
- Знания генетики на уровне эксперта.
- Умение писать production quality code
- Умение работать со всевозможными базами данных.
- Естественно, у вас должна быть PhD по технической специальности.
Ключевые библиотеки 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.
Как работают эксперты по аналитическим данным в лаборатории Philips Research
В лаборатории Philips Research каждый Data Scientist занимается разработками в рамках текущих проектов компании в сфере здравоохранения. Тематика разработок достаточно широкая, и заниматься в лаборатории можно чем угодно: распознаванием образов и обработкой изображений и текстов, предсказанием болезней, поиском аномалий, генеративными моделями и другими технологиями.
Один из приоритетов специалистов лабораторий Philips Research по всему миру — разработка инновационных подходов к медицинской визуализации. Учёные стремятся автоматизировать некоторые из задач врачей, деятельность которых связана с оценкой изображений, и внедряют ИИ (искуственный интеллект) в рентгенологию, МРТ, компьютерную томографию, патоморфологию.
Примером может послужить возможность создавать один вид изображения на основании другого — этому могут обучаться генеративные алгоритмы. Нейросети моделируют изображения на основании известной информации: мы знакомы с этой возможностью, по развлекательным мобильным приложениям, в которых можно создать «гибрид» двух людей по фотографиям.
В медицине это применимо, когда пациенту во время обследования требуется сразу две процедуры: компьютерная томография (КТ) и МРТ. При проведении КТ доза облучения пациента несколько выше, особенно когда необходимо хорошее разрешение. Чтобы снизить уровень лучевой нагрузки, особенно, если пациент — ребенок, ученые создали метод, который называется квази-КТ. Согласно ему обученная программа генерирует КТ на основе существующих МРТ. Пациент проходит одну процедуру вместо нескольких. Таким образом уменьшается время и стоимость обследования, а главное — доза облучения.
Среди направлений разработок Philips Research, не связанных с визуализацией, особенно перспективна прогнозная аналитика — предсказание заболеваний в зависимости от местности и группы населения. Если будут учитываться медицинские показатели миллионов человек, можно будет находить взаимосвязи и закономерности, выяснять, почему где-то одни заболевания распространены больше, чем другие, и затем на основании полученной информации определять группы риска и проводить профилактику до возникновения вспышек болезней.
Специалисты Philips Research принимают участие в разработке интеллектуальных систем, занимаются изобретательской деятельностью с последующим патентованием. К тому же специалисты проводят исследования, экспериментируют с данными и оформляют свои результаты в виде научных статей и выступают с докладами на ведущих мировых конференциях в сфере искусственного интеллекта, таких как MICCAI, MIDL, ACPR.
Data Scientist на сегодня — одна из самых быстроразвивающихся профессий, которая позволяет претворять в жизнь то, что раньше казалось нереальным. Спрос на специалистов в области данных велик и продолжает расти, а возможности для развития практически безграничны.
Специалисты по изучению данных (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, на эти вопросы отвечает журналист Леонид Черняк.
Сколько получают дата-инженеры и дата-сайентисты
Доход инженеров по обработке данных
В международной практике начальная зарплата обычно составляет $100 000 в год и значительно увеличивается с опытом, по данным Glassdoor. Кроме того, компании часто предоставляют опционы на акции и 5‒15% годовых бонусов.В России в начале карьеры зарплата обычно не меньше 50 тыс. рублей в регионах и 80 тыс. в Москве. На этом этапе не требуется опыт, кроме пройденного обучения.Через 1‒2 года работы — вилка 90‒100 тыс. рублей.Вилка увеличивается до 120‒160 тыс. через 2‒5 лет. Добавляются такие факторы, как специализация прошлых компаний, размер проектов, работа с big data и прочее.После 5 лет работы легче искать вакансии в смежных отделах или откликаться на такие узкоспециализированные позиции, как:
Архитектор или ведущий разработчик в банке или телеком — около 250 тыс.
Pre-Sales у вендора, с технологиями которого вы работали плотнее всего, — 200 тыс. плюс возможен бонус (1‒1,5 млн рублей).
Эксперты по внедрению Enterprise business application, таких как SAP, — до 350 тыс. рублей.
Доход дата-сайентистов
Исследование рынка аналитиков компании «Нормальные исследования» и рекрутингового агентства New.HR показывает, что специалисты по Data Science получают в среднем большую зарплату, чем аналитики других специальностей.
В России начальная зарплата дата-сайентиста с опытом работы до года — от 113 тыс. рублей.
В качестве опыта работы сейчас также учитывается прохождение обучающих программ.
Через 1‒2 года такой специалист уже может получать до 160 тыс. рублей.
Образование. Шесть шагов на пути к Data Scientist
Путь к этой профессии труден: невозможно овладеть всеми инструментами за месяц или даже год. Придётся постоянно учиться, делать маленькие шаги каждый день, ошибаться и пытаться вновь.
Шаг 1. Статистика, математика, линейная алгебра
Для серьезного понимания Data Science понадобится фундаментальный курс по теории вероятностей (математический анализ как необходимый инструмент в теории вероятностей), линейной алгебре и математической статистике.
Фундаментальные математические знания важны, чтобы анализировать результаты применения алгоритмов обработки данных. Сильные инженеры в машинном обучении без такого образования есть, но это скорее исключение.
Что почитать
«Элементы статистического обучения», Тревор Хасти, Роберт Тибширани и Джером Фридман — если после учебы в университете осталось много пробелов. Классические разделы машинного обучения представлены в терминах математической статистики со строгими математическими вычислениями.
«Глубокое обучение», Ян Гудфеллоу. Лучшая книга о математических принципах, лежащих в основе нейронных сетей.
«Нейронные сети и глубокое обучение», Майкл Нильсен. Для знакомства с основными принципами.
Полное руководство по математике и статистике для Data Science. Крутое и нескучное пошаговое руководство, которое поможет сориентироваться в математике и статистике.
Введение в статистику для Data Science поможет понять центральную предельную теорему. Оно охватывает генеральные совокупности, выборки и их распределение, содержит полезные видеоматериалы.
Полное руководство для начинающих по линейной алгебре для специалистов по анализу данных. Всё, что необходимо знать о линейной алгебре.
Линейная алгебра для Data Scientists. Интересная статья, знакомящая с основами линейной алгебры.
Шаг 2. Программирование
Большим преимуществом будет знакомство с основами программирования. Вы можете немного упростить себе задачу: начните изучать один язык и сосредоточьтесь на всех нюансах его синтаксиса.
При выборе языка обратите внимание на Python. Во-первых, он идеален для новичков, его синтаксис относительно прост. Во-вторых, Python многофункционален и востребован на рынке труда.
Что почитать
«Автоматизация рутинных задач с помощью Python: практическое руководство для начинающих». Практическое руководство для тех, кто учится с нуля. Достаточно прочесть главу «Манипулирование строками» и выполнить практические задания из нее.
Codecademy — здесь вы научитесь хорошему общему синтаксису.
Легкий способ выучить Python 3 — блестящий мануал, в котором объясняются основы.
Dataquest поможет освоить синтаксис.
The Python Tutorial — официальная документация.
После того, как изучите основы Python, познакомьтесь с основными библиотеками:
- Numpy : документация — руководство
- Scipy : документация — руководство
- Pandas : документация — руководство
Визуализация:
- Matplotlib : документация — руководство
- Seaborn : документация — руководство
Машинное обучение и глубокое обучение:
- SciKit-Learn: документация — руководство
- TensorFlow : документация — руководство
- Theano : документация — руководство
- Keras: документация — руководство
Обработка естественного языка:
NLTK — документация — руководство
Web scraping (Работа с web):
BeautifulSoup 4 — документация — руководство
Эксперимент и запуск продукта — совершенно разные вещи
Чаще всего специалисты Data Science работают в Jupyter Notebook — это простое и удобное приложение для экспериментов и визуализации. Можно быстро попробовать что-то новое, обучить модель или увидеть результат вычислений, просто открыв ячейку и запустив несколько строк кода.
Но как только модель готова к выпуску в продакшн, господство Jupyter Notebook заканчивается, и власть переходит к Python-файлам. Продакшн — это работа ваших алгоритмов в реальной жизни. Конечный пользователь всегда смотрит на качество итогового продукта, поэтому код продакшна должен быть быстрым, чистым, читабельным, отказоустойчивым и простым в отладке.
Скорость кода не так важна, если вы просто экспериментируете и запускаете программу один-два раза. Однако в продакшне ваш код, вероятно, будет выполняться несколько раз в день и влиять на другие части продукта, поэтому скорость станет важна.
Посмотрим правде в глаза, наверняка в большинстве ваших .ipynb-файлов много неупорядоченных строк, неиспользованных import и ненужных ячеек. И это нормально, когда вы просто экспериментируете. Но перед выпуском в продакшн код нужно «очистить». Считайте, что ваш код достаточно чист, если кто-то в вашей команде может просмотреть его и с лёгкостью понять назначение каждой строки. Вот почему вы должны давать правильные имена своим переменным и функциям.
Стоит выводить важные шаги выполнения кода на экран оболочки, а также в лог-файл. Это поможет быстро выявить возможные проблемы. Хороший лог-файл должен содержать время начала и окончания выполнения, результаты и записи исключений.
Иногда даже проверенный код по какой-либо причине начинает давать сбой, и пользователи видят странные результаты. Хороший продакшн-код должен уметь обрабатывать возможные исключения и заранее выводить предупреждения в случае неожиданной или нерешаемой проблемы. В зависимости от ситуации неисправный код можно откатить до предыдущего состояния или заставить его выдать предварительные результаты. Всегда лучше потратить время на написание отказоустойчивого кода, чем потом в спешке всё переделывать.
Но даже в отказоустойчивом коде могут быть ошибки, приводящие к непредвиденным результатам. В этом случае программу нужно отлаживать. Чтобы процесс отладки был понятным и простым, всегда следите за чистотой и качеством кода: используйте функции вместо повторяющихся конструкций, помните про правило «одна функция = одна решаемая задача» и избегайте «грязных» функций. Такая практика позволит легко найти источник ошибки в коде.
Для написания продакшн-кода вместо Jupyter Notebook лучше использовать текстовый редактор или IDE, например VS Code или PyCharm. Эти инструменты сделают разработку проще и быстрее. Если вы всё же хотите работать с Jupyter, можете попробовать использовать расширение nbconvert, которое конвертирует скрипты .ipynb в .py-файлы.
Чем занимается Data Scientist?
В Data Science обучении стоит отталкиваться от задач, поставленных перед специалистом. При этом задачи Data Scientist могут отличаться в зависимости от сферы деятельности компании. Вот несколько примеров:
- обнаружение аномалий — например нестандартных действий с банковской картой, мошенничества;
- анализ и прогнозирование — показатели эффективности, качество рекламных кампаний;
- системы баллов и оценок — обработка больших объёмов данных для принятия решения, например, о выдаче кредита;
- базовое взаимодействие с клиентом — автоматические ответы в чатах, голосовые помощники, сортировка писем по папкам.
Но для любой из вышеперечисленных задач всегда нужно выполнять примерно одни и те же шаги:
- Сбор данных — поиск источников и способов получения информации, а также сам процесс сбора.
- Проверка — валидация, удаление аномалий.
- Анализ — изучение данных, построение предположений, выводов.
- Визуализация — приведение данных в вид, понятный для человека (графики и диаграммы).
- Результат — принятие решений на основе анализируемых данных, например об изменении маркетинговой стратегии или увеличении бюджета на какую-либо деятельность компании.
Заключение:
Предполагая, что в момент «развилки» не все прочитали часть 5, поэтому поделю свои впечатления на две части.
Пройдена только Data Science Fundamentals:
Ну в целом достаточно, для того, чтобы в самых общих чертах понять, что такое Data Science. Подготовки никакой не требуется, ни мат. анализом ни статистикой, ни программированием можно не владеть, главное «шпрейхать по-аглицки».
Думаю, итак очевидно, что за один день вы ничего толком не выучите и на 1500000 млн. рублей зарплату рассчитывать не стоит (я надеюсь вы еще не успели открыть «Хантер» и создать резюме?)
По идее этот курс должен развить у вас интерес к предмету и не напугать, в принципе разработчикам это удалось.
Пройдена Data Science Fundamentals + Data Science for Business + Statistics 101:
Рушит все надежды, потому что по-настоящему толковая практика так и не попалась, а курсы Data Science for Business + Statistics 101 выполнены несколько хуже по качеству чем Data Science Fundamentals, да еще и требуют установки триал версий программ от IBM.
Примеры в задачках не абы какие и оторваны во многом от реальности.
Наверное, пройдя все это, вы возможно, сдлаете для себя вывод — Data Science это ваше или нет, было ли вам до ужаса скучно или вы в восторге от колдовства над данными.
Подводя итог: Представленные курсы по пользе напоминают ситуацию, как если бы вас не умеющего водить машину, посадили бы за руль нормального автомобиля с автоматической коробкой передач, показали бы вам где газ и тормоз, как заводить машину и заливать бензин, как включить фары и дворники, ну и в конце под контролем дали бы проехать пару километров по проселочной дороге. С одной стороны водителем вы точно после этого не станете, с другой стороны если вы будете спасаться от маньяка с бензопилой возможно эти знания сохранят вашу жизнь. Ровно также и с этими курсами.
В любом случае, всем кто потратил время на обучение по программе от Cognitive class, советую не останавливаться на достигнутом. В конце концов даже у них там еще много чего интересного (Big Data, Hadoop, Scala и т.п.)
Спасибо за внимание, всем удачной недели!
UPD: Последующие статьи цикла ниже под спойлером: