Гайд в мир 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так

  1. LinkedIn — список вакансий, которые создали на самом LinkedIn, а также те вакансии, которые LinkedIn надёргал с других ресурсов. Недостаток — легкий доступ к списку вакансий и как следствие много апликантов. 300 — 1000 апликантов на одну вакансию — это нормально. Из достоинств — вакансий много, можно массово подавать во всё, что можно.
  2. dice.com — какие-то вакансии есть и там, но я ни одного интервью с ними не получил.
  3. monster.com — тоже ксть какие-то вакансии, но я на нём зарегестрировался достаточно поздно
  4. Секция jobs на kaggle.com
  5. Знакомые, которые где-то работают могут вас посоветовать. (Я так получил интервью с Google и Pebble)
  6. Знакомые, которые получили job offer, отклонили его, но вместо себя посоветовали вас. (Я так получил интервью с Uptake и Bidgely)
  7. Career Fair в UC Davis было бесполезное, а на Career Fair в Stanford или Berkley без соответствующего студенческого билета не просочится. Но это я поздно спохватился. Если бы раньше мозг включил, может быть что-нибудь бы и придумал.
  8. Meetups — в Bay Area чуть не каждый день проводятся всевозможные митапы на темы связанные с Data Science. Там как минимум можно с кем-то познакомится, а как максимум, можно и впечатлить (Недавний пример — надо мне было пробки переждать, я зашёл на митап, который проходил неподалёку под названием Deep Learning в Natural Language Processing. И мне эта тема никогда не давалась. По отдельности и нейронные сети и NLP работают, а когда их скрещиваешь — резльтат у меня получался средненький. Вот я и зашёл просветится. Но не угадал. Там все были неопытные, поэтому я два часа у доски им лекцию читал о том, что знаю на эту тему и на следующий день пара присутствующих на митапе написали, что у них на работе есть вакансия ну вот как раз для меня. Но это скорее исключение. Да и митапы где я ничему не учусь мне не нравятся.).

Михаила Обухова

  1. Знания алгоритмов машинного обучения на уровне эксперта.
  2. Знания статистики на уровне эксперта
  3. Знания генетики на уровне эксперта.
  4. Умение писать production quality code
  5. Умение работать со всевозможными базами данных.
  6. Естественно, у вас должна быть 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 Sci­en­tist

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

Шаг 1. Ста­ти­сти­ка, ма­те­ма­ти­ка, ли­ней­ная ал­геб­ра

Для се­рьез­но­го по­ни­ма­ния Data Sci­ence по­на­до­бит­ся фундамен­таль­ный курс по тео­рии ве­ро­ят­но­стей (математический ана­лиз как необ­хо­ди­мый ин­стру­мент в теории ве­ро­ят­но­стей), ли­ней­ной ал­геб­ре и ма­те­ма­ти­че­ской ста­ти­сти­ке.

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

Что по­чи­тать

«Эле­мен­ты ста­ти­сти­че­ско­го обу­че­ния», Тре­вор Ха­сти, Ро­берт Тиб­ши­ра­ни и Дже­ром Фрид­ман — если по­сле уче­бы в универси­те­те оста­лось мно­го про­бе­лов. Классические разделы ма­шин­но­го обу­че­ния пред­став­ле­ны в тер­ми­нах матема­ти­че­ской статисти­ки со стро­ги­ми ма­те­ма­ти­че­ски­ми вычис­ле­ни­я­ми.

«Глу­бо­кое обу­че­ние», Ян Гуд­фел­лоу. Луч­шая кни­га о математи­че­ских прин­ци­пах, ле­жа­щих в ос­но­ве ней­рон­ных сетей.

«Ней­рон­ные сети и глу­бо­кое обу­че­ние», Май­кл Ниль­сен. Для зна­ком­ства с основны­ми прин­ци­па­ми.

Пол­ное ру­ко­вод­ство по ма­те­ма­ти­ке и ста­ти­сти­ке для Data Science. Кру­тое и нескучное по­ша­го­вое ру­ко­вод­ство, ко­то­рое по­мо­жет сори­ен­ти­ро­вать­ся в ма­те­ма­ти­ке и ста­ти­сти­ке.

Вве­де­ние в ста­ти­сти­ку для Data Sci­ence по­мо­жет по­нять централь­ную пре­дель­ную тео­ре­му. Оно охва­ты­ва­ет генеральные со­во­куп­но­сти, вы­бор­ки и их рас­пре­де­ле­ние, содер­жит по­лез­ные ви­део­ма­те­ри­а­лы.

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

Ли­ней­ная ал­геб­ра для Data Sci­en­tists. Ин­те­рес­ная ста­тья, знако­мя­щая с ос­но­ва­ми ли­ней­ной ал­геб­ры.

Шаг 2. Про­грам­ми­ро­ва­ние

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

При вы­бо­ре язы­ка об­ра­ти­те вни­ма­ние на Python. Во-пер­вых, он иде­а­лен для новичков, его син­так­сис от­но­си­тель­но прост. Во-вто­рых, Python мно­го­функ­ци­о­на­лен и вос­тре­бо­ван на рынке тру­да.

Что по­чи­тать

«Ав­то­ма­ти­за­ция ру­тин­ных за­дач с по­мо­щью Python: практическое ру­ко­вод­ство для на­чи­на­ю­щих». Прак­ти­че­ское ру­ко­вод­ство для тех, кто учит­ся с нуля. До­ста­точ­но про­честь гла­ву «Ма­ни­пу­ли­ро­ва­ние стро­ка­ми» и вы­пол­нить практические за­да­ния из нее.

Codecad­emy — здесь вы на­учи­тесь хо­ро­ше­му об­ще­му синтакси­су.

Лег­кий спо­соб вы­учить Python 3 — бле­стя­щий ма­ну­ал, в котором объ­яс­ня­ют­ся основы.

Dataquest по­мо­жет осво­ить син­так­сис.

The Python Tu­to­r­ial — офи­ци­аль­ная до­ку­мен­та­ция.

По­сле того, как изу­чи­те ос­но­вы Python, по­зна­комь­тесь с основ­ны­ми биб­лио­те­ка­ми:

  • Numpy : до­ку­мен­та­ция —  ру­ко­вод­ство
  • Scipy : до­ку­мен­та­ция  —  ру­ко­вод­ство
  • Pan­das :  до­ку­мен­та­ция  —  ру­ко­вод­ство

Ви­зу­а­ли­за­ция:

  • Mat­plotlib :  до­ку­мен­та­ция  —  ру­ко­вод­ство
  • Seaborn : до­ку­мен­та­ция  —  ру­ко­вод­ство

Ма­шин­ное обу­че­ние и глу­бо­кое обу­че­ние:

  • SciKit-Learn:  до­ку­мен­та­ция  —  ру­ко­вод­ство
  • Ten­sor­Flow : до­ку­мен­та­ция  —  ру­ко­вод­ство
  • Theano : до­ку­мен­та­ция  —  ру­ко­вод­ство
  • Keras:  до­ку­мен­та­ция  —  ру­ко­вод­ство

Об­ра­бот­ка есте­ствен­но­го язы­ка:

NLTK — до­ку­мен­та­ция  —  ру­ко­вод­ство

Web scrap­ing (Ра­бо­та с web):

Beau­ti­ful­Soup 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 могут отличаться в зависимости от сферы деятельности компании. Вот несколько примеров:

  • обнаружение аномалий — например нестандартных действий с банковской картой, мошенничества;
  • анализ и прогнозирование — показатели эффективности, качество рекламных кампаний;
  • системы баллов и оценок — обработка больших объёмов данных для принятия решения, например, о выдаче кредита;
  • базовое взаимодействие с клиентом — автоматические ответы в чатах, голосовые помощники, сортировка писем по папкам.

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

  1. Сбор данных — поиск источников и способов получения информации, а также сам процесс сбора.
  2. Проверка — валидация, удаление аномалий.
  3. Анализ — изучение данных, построение предположений, выводов.
  4. Визуализация — приведение данных в вид, понятный для человека (графики и диаграммы).
  5. Результат — принятие решений на основе анализируемых данных, например об изменении маркетинговой стратегии или увеличении бюджета на какую-либо деятельность компании.

Заключение:

Предполагая, что в момент «развилки» не все прочитали часть 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: Последующие статьи цикла ниже под спойлером:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *