Язык программирования для data science

Python vs. R: что выбрать для Data Science начинающему специалисту?

Python vs. R: что выбрать для Data Science начинающему специалисту?

Python и R давно стали стандартом для Data Science. Суть их противостояния в том, что оба языка прекрасно подходят для работы со статистикой. В то время как Python характеризуется понятным синтаксисом и большим количеством библиотек, язык R разрабатывался целенаправленно для специалистов по статистике, а посему оснащён качественной визуализацией данных. Особняком стоит SQL — потому что, если данные уже лежат в таблицах, то это скорее везение, чем повод для расстройств, — и Scala — в основном благодаря тому, что на ней написан популярнейший фреймворк распределённой обработки данных Spark.

Чтобы провести первичный анализ данных и принять решение о дальнейшей судьбе фичи, достаточно средств одного только SQL и командной строки, ведь data science — это, в первую очередь, не про библиотеки с броскими названиями, а про подход. Тем не менее, такой минимализм имеет свой предел (а новичка вообще может отпугнуть), и в какой-то момент всё же придётся обратиться к более продвинутым инструментам исследования.

В этой статье мы вместе со SkillFactory разобрали для вас преимущества и недостатки R и Python в качестве первых языков в карьере data scientist’а. Разработчикам, желающим добавить строчку с полезным навыком в резюме, тоже будет интересно.

Python

Совершенно незаметно подкралось тридцатилетие Python. За свою уже немалую историю Python несколько раз перерождался, теряя обратную совместимость, но всегда оставался популярен как среди разработчиков в общем, так, в частности, и среди data scientist’ов. На это есть несколько причин.

Преимущества Python в Data Science

При всём своём великолепии, Python не лишён и минусов. Его часто (и иногда заслуженно) называют медленным, ему всё ещё не хватает удобных средств ORM, а написание действительного крупного проекта на нём — довольно тяжёлый труд, требующий хорошей дисциплины. Но как и с любым другим инструментом, важно просто знать, как им пользоваться. Кстати об инструментах.

Python-инструменты для data scientist

Как уже упоминалось ранее, Python примечателен своим обширным набором библиотек и инструментов. Говоря о data science, нужно в первую очередь упомянуть следующие:

Кстати, именно Python — основный язык курса «Профессия Data Scientist» от SkillFactory. При этом знать его не обязательно: вы освоите его в процессе обучения на примере реальных задач.

В 2020 году язык R остаётся одним из самых популярных для Data Science и статистики, стабильно завоёвывая всё большую долю просмотров в соответствующих разделах StackOverflow. При этом, со значительным перевесом лидируют вопросы академического характера: в первую очередь, R — это язык с богатым набором библиотек по машинному обучению и статистике, что особенно важно в исследовательских целях.

Преимущества R в Data Science

R-инструменты для data scientist

Поговорим об упомянутых библиотечных богатствах R. Вот некоторые из базовых, но мощных библиотек, вооружившись которыми можно провести обширный рисерч или занять хорошие места в Kaggle:

Python vs. R в Data Science: что лучше?

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

Если вы пока не знаете ни Python, ни R, но при этом хотите работать в IT, начать вам может помочь курс «Профессия Data Scientist» от SkillFactory. Там вы сможете за 2 года стать middle Data scientist с нуля. Курс ориентирован на практические задачи и его можно совмещать с работой или учёбой.

Источник

Лучшие языки программирования для Data Science

Рассмотрим языки программирования для Data Science. Как они появились, их сильные и слабые стороны, а также отметим простые для старта.

Язык программирования для data science. Смотреть фото Язык программирования для data science. Смотреть картинку Язык программирования для data science. Картинка про Язык программирования для data science. Фото Язык программирования для data science

Язык R появился на свет в 1995 году как прямой наследник более старого языка S. Созданный с использованием C, фортрана и себя самого, R поддерживается организацией R Foundation for Statistical Computing.

Лицензия

Плюсы

Минусы

Python

Язык программирования для data science. Смотреть фото Язык программирования для data science. Смотреть картинку Язык программирования для data science. Картинка про Язык программирования для data science. Фото Язык программирования для data science

Гвидо ван Россум показал Пайтон в 1991 году. С тех пор он превратился в чрезвычайно популярный язык общего назначения, который широко применяется в обработке данных. Основные версии языка на данный момент – это 2.7 и 3.6.

Лицензия

Плюсы

Минусы

Язык программирования для data science. Смотреть фото Язык программирования для data science. Смотреть картинку Язык программирования для data science. Картинка про Язык программирования для data science. Фото Язык программирования для data science

SQL (Structured Query Language) создан для определения, управления и создания запросов к реляционным базам данных. Он появился в 1974 году и с тех пор претерпел множество изменений, но его основные принципы остались прежними.

Лицензия

Некоторые реализации – бесплатные, другие – проприетарные.

Плюсы

Минусы

Язык программирования для data science. Смотреть фото Язык программирования для data science. Смотреть картинку Язык программирования для data science. Картинка про Язык программирования для data science. Фото Язык программирования для data science

Java – крайне популярный язык общего назначения. Для работы использует JVM (Java Virtual Machine) – собственную абстрактную вычислительную систему, которая обеспечивает полную переносимость между различными платформами. Поддерживается Oracle Corporation.

Лицензия

Java 8 – бесплатная, старые версии – проприетарные.

Плюсы

Минусы

Scala

Язык программирования для data science. Смотреть фото Язык программирования для data science. Смотреть картинку Язык программирования для data science. Картинка про Язык программирования для data science. Фото Язык программирования для data science

Скала разработан Мартином Одерски и выпущена в свет в 2004 год. Это еще один язык, который использует для работы JVM. Scala – мультипарадигмальный язык, который способен реализовать и ООП и функциональный подход.

Лицензия

Плюсы

Минусы

Julia

Язык программирования для data science. Смотреть фото Язык программирования для data science. Смотреть картинку Язык программирования для data science. Картинка про Язык программирования для data science. Фото Язык программирования для data science

Появился на свет в 2012 году. Язык был быстро принят в финансовой сфере.

Лицензия

Плюсы

Минусы

MATLAB

Язык программирования для data science. Смотреть фото Язык программирования для data science. Смотреть картинку Язык программирования для data science. Картинка про Язык программирования для data science. Фото Язык программирования для data science

MATLAB – признанный язык для вычислений, используется в академических кругах и промышленности. Разработан и лицензирован MathWorks, компанией, созданной в 1984 году, которая занимается разработкой программного обеспечения.

Лицензия

Проприетарный – цена зависит от области применения.

Плюсы

Минусы

Прочие языки программирования для Data Science

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

Мощный язык программирования общего назначения, обладающий молниеносной производительностью. Вопрос невысокой популярности C++ в Data Science объясняется выбором продуктивности вычислений против производительности языка.

Как сказал один пользователь Quora:

«Если вы пишете код, который будет делать какой-то специальный анализ, и запустится всего раз, что вы выберете: потратить полчаса на программу, которая будет работать через 10 секунд или 10 минут на написание программы, которая запустится через минуту?»

JavaScript

Хотя с появлением Node.js JavaScript стал серьезным серверным языком, его использование в Data Science ограничено (хотя есть, конечно, brain.js и synaptic.js). А виной тому некоторые его недостатки:

Node.js обладает асинхронным вводом/выводом – и это сильная сторона. Так что, в будущем это может сыграть в пользу JavaScript, как серьезного языка для обработки больших объемов данных. Другой вопрос в том, будет ли кто-то на его основе создавать то, что уже имеют другие языки программирования для Data Science.

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

Однако, в сравнении с тем же Python, он имеет крайне мало расширений для работы с данными и большого энтузиазма в этой области работы с Perl не наблюдается. Возможно, виной тому не слишком дружелюбный синтаксис.

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

Однако для Ruby существует проект SciRuby, созданный для вычислений и обработки данных. Впрочем, для серьезных исследований одного его оказывается недостаточно, поэтому Ruby остается не так популярен, как другие языки программирования для Data Science.

Источник

Как стать экспертом в Data Science: пошаговый план обучения

Язык программирования для data science. Смотреть фото Язык программирования для data science. Смотреть картинку Язык программирования для data science. Картинка про Язык программирования для data science. Фото Язык программирования для data science

Мало кто может предсказывать события до ста процентов верно. Но дата-сайнтисты научились. А мы нашли последние тренды Data Science и составили план для тех, кто хочет глубоко изучить эту область.

Выбор языка

Сейчас в науке о данных используются два основных языка: Python и R. Язык R применяется для сложных финансовых анализов и научных исследований, потому его глубокое изучение можно отложить на потом.

На начальном этапе можно остановиться на изучении основ:

Быстро разобраться в теории языка R поможет сайт Quick-R.

Python популярен больше: на нём проще научиться писать код и для него написано множество пакетов визуализации данных, машинного обучения, обработки естественного языка и сложного анализа данных.

Что важно освоить в Python:

Чтобы освоить базовые понятия Python, у вас уйдёт примерно 4-6 недель при условии, что вы будете тратить на изучение 2-3 часа в день.

Где можно освоить: в Skillfactory.

Библиотеки для Python

NumPy

NumPy — библиотека научных вычислений. От неё зависит почти каждый пакет Python для Data Science или Machine Learning: SciPy (Scientific Python), Matplotlib, Scikit-learn.

NumPy помогает выполнять математические и логические операции: например, в ней содержатся полезные функции для n-массивов и матриц. А ещё библиотека поддерживает многомерные массивы и высокоуровневые математические функции для работы с ними.

Зачем нужно знать математику? Почему компьютер не может сам всё посчитать?

Часто методы машинного обучения используют матрицы для хранения и обработки входных данных. Матрицы, векторные пространства и линейные уравнения — всё это линейная алгебра.

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

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

Где можно подтянуть знания по NumPy: официальная документация.

Где можно подтянуть знания по алгебре: Calculus (глава 11), курс по математике для Data Science.

Pandas

Pandas — библиотека с открытым исходным кодом, построенная на NumPy. Она позволяет выполнять быстрый анализ, очистку и подготовку данных. Такой своеобразный Excel для Python.
Библиотека хорошо умеет работать с данными из разных источников: листов Excel, файлов CSV, SQL, веб-страниц.

Где можно подтянуть знания по Pandas: Pydata.

Базы данных и сбор информации

Если вы уже знакомы с Python, Pandas и NumPy, можете приступать к изучению работы с базами данных и парсингу информации.

Несмотря на то, что NoSQL и Hadoop уже пустили корни в науку о данных, важно уметь писать и выполнять сложные запросы на SQL.

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

Хорошо структурированный курс по работе с SQL можно пройти здесь: SkillFactory.

Парсинг информации

Алгоритмы

Быть программистом без знания алгоритмов страшно, а Data Scientist’ом — опасно. Так что если вы уже освоили Python, Pandas, NumPy, SQL и API, пора учиться применять эти технологии для исследований.

Скорость работы хорошего специалиста часто зависит от трёх факторов: от поставленного вопроса, объёма данных и выбранного алгоритма.

Потому на этом этапе важно понять алгоритмы и структуры данных Беллмана-Форда, Дейкстры, двоичного поиска (и двоичные деревья как инструмент), поиска в глубину и ширину.

Машинное обучение и нейронные сети

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

Реальные задачи чаще всего решаются с помощью серьёзных библиотек вроде TensorFlow и Keras.

Дополнительно закрепить знания о машинном обучении можно здесь: Машинное обучение от Эндрю Ына.

Заключение

Стать экспертом в Data Science непросто: приходится изучать множество инструментов и быть гибким, чтобы вовремя узнавать о трендах.

Хорошая стратегия — получить базу по Data Science на фундаментальном курсе, а новые инструменты и технологии изучать, решая практические задачи на работе.

Источник

Какие языки вам стоит изучить для Data Science?

Data Science (наука о данных) — это захватывающее поле для работы, сочетающее передовые статистические и количественные навыки с возможностями программирования в реальном мире. Существует много потенциальных языков программирования, в котором ученый может специализироваться.

Язык программирования для data science. Смотреть фото Язык программирования для data science. Смотреть картинку Язык программирования для data science. Картинка про Язык программирования для data science. Фото Язык программирования для data science

Язык программирования для data science. Смотреть фото Язык программирования для data science. Смотреть картинку Язык программирования для data science. Картинка про Язык программирования для data science. Фото Язык программирования для data science

Перевод выполнен проектом Ladies Code — это открытое обучение для девушек, которые хотят развиваться в сфере IT. 25 ноября в Москве пройдёт первая международная конференция Ladies Code: Время технологий.

Data Science (наука о данных) — это захватывающее поле для работы, сочетающее передовые статистические и количественные навыки с возможностями программирования в реальном мире. Существует много потенциальных языков программирования, в котором ученый может специализироваться.

Хотя нет правильного ответа, есть несколько вещей, которые следует принять во внимание. Ваш успех как научного сотрудника зависит от многих факторов, в том числе:

Специфичность

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

Общность

У лучших data scientists есть хорошие навыки всестороннего программирования, а также способность корпеть над расчетами. Большая часть повседневной работы в области науки о данных вращается вокруг поиска и обработки необработанных данных или «очистки данных». Для этого никакие причудливые пакеты машинного обучения не помогут.

Продуктивность

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

Производительность

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

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

Что вам нужно знать

Выпущен в 1995 году как прямой потомок старшего языка программирования S. Написанный в C, Fortran и R проект в настоящее время поддерживается Фондом R для статистических вычислений.

Лицензия: бесплатно!

Плюсы:

Минусы:

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

Язык программирования для data science. Смотреть фото Язык программирования для data science. Смотреть картинку Язык программирования для data science. Картинка про Язык программирования для data science. Фото Язык программирования для data science

2. Python

Что вам нужно знать

Гуидо ван Россум представил Python еще в 1991 году. С тех пор он стал чрезвычайно популярным языком общего назначения и широко используется в сообществе ученых. В настоящее время основными версиями являются 3.6 и 2.7.

Лицензия: бесплатно!

Плюсы:

Минусы:

Python – очень хороший выбор языка для науки о данных не только для начального уровня. Большая часть процесса передачи данных вращается вокруг процесса ETL (извлечение-преобразование-загрузка).

3. SQL

Что вам нужно знать

SQL (Structured Query Language) определяет, управляет и делает запросы в реляционных базах данных. Язык появился в 1974 году и с тех пор претерпел множество реализаций, но основные принципы остаются неизменными.

Лицензия: Различается. Некоторые реализации являются бесплатными, другие являются патентованными.

Плюсы:

Минусы:

SQL более полезен в качестве языка обработки данных, чем в качестве передового аналитического инструмента. Тем не менее, много процессов в области данных зависит от ETL, а долговечность и эффективность SQL – это доказательство того, что это очень полезный язык для современного исследователя данных.

4. Java

Что вам нужно знать

Java – чрезвычайно популярный язык общего назначения, который работает на виртуальной машине Java (JVM). Это абстрактная вычислительная система, которая обеспечивает плавную переносимость между платформами. В настоящее время поддерживается корпорацией Oracle.

Лицензия: Версия 8 – бесплатно!

Плюсы:

Минусы:

Многие компании оценят возможность беспрепятственной интеграции кода производства данных в их существующую кодовую базу, и вы обнаружите, что производительность Java и безопасность типов являются реальными преимуществами. Тем не менее, вы не будете иметь набор специфически статистических пакетов, доступных для других языков. Тем не менее, Java определенно нужно рассмотреть – особенно если вы уже знаете R и/или Python.

5. Scala

Что вам нужно знать

Scala – это язык, который работает на JVM, он разработан Мартином Одерским и выпущен в 2004 году. Это язык с несколькими парадигмами, позволяющий использовать как объектно-ориентированные, так и функциональные подходы. Структура кластерных вычислений Apache Spark написана на Scala.

Лицензия: бесплатно!

Плюсы:

Минусы:

Когда дело доходит до использования кластерных вычислений для работы с большими данными, Scala + Spark – фантастические решения. Если у вас есть опыт работы с Java и другими статически типизированными языками, вы также оцените эти возможности Scala.

6. Julia

Что вам нужно знать

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

Лицензия: бесплатно!

Плюсы:

Минусы:

Главная проблема с Julia – это та, за что ее нельзя обвинять. Как недавно разработанный язык, он не настолько зрелый или готовый к производству, как его основные альтернативы Python и R. Но, если вы готовы быть терпеливыми, есть все основания уделять ему пристальное внимание, поскольку язык будет развиваться в ближайшие годы.

7. Matlab

Что вам нужно знать

MATLAB – это устоявшийся язык вычислений, используемый во всех академических кругах и промышленности. Он разработан и лицензирован MathWorks, компанией, созданной в 1984 году для коммерциализации программного обеспечения.

Лицензия: проприетарный – цены варьируются в зависимости от вашего варианта использования.

Плюсы:

Минусы:

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

Вывод

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

Я регулярно использую R, Python и SQL, так как моя текущая роль в основном сосредоточена на разработке существующих конвейеров данных и ETL-процессов. Эти языки дают правильный баланс общности и производительности для выполнения этой работы, с возможностью использования более совершенных статистических пакетов R, когда это необходимо.

Однако, возможно, у вас уже есть опыт работы с Java. Или вы можете использовать Scala для больших данных. Или, может быть, вы очень заинтересованы в проекте Julia.

Может быть, вы изучили MATLAB в университете или хотите дать SciRuby шанс? Возможно, у вас есть совсем другое предложение?

Источник

Изучение data science c нуля: этапы и вехи

В соответствии с концепцией спирального подхода к обучению, о которой писал ранее, привожу поэтапный план освоения data science. План составлен так, чтобы каждый этап делал учащегося в той или иной степени лучше подготовленным к выполнению реальных задач. Такой подход вдохновлен идеологией Agile в том смысле, что сколько бы времени вы ни уделили обучению и в какой бы момент ни остановились, у вас будет наиболее востребованный набор знаний из возможных к освоению за такое время.

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

Позднее, в отдельной статье напишу хорошие курсы и книги, соответствующие каждому этапу (некоторые курсы и книги для первых этапов уже указал ранее в первой статье этой серии).

Этап 1. Базовые инструменты анализа данных: SQL, Excel

SQL, основы (20ч). Самостоятельное знание SQL может пригодится для выполнения кучи других задачи. И оно, в любом случае, необходимо для большой (большей?) части вакансий на позицию аналитика, дата сайентиста и, тем более, machine learning engineer.

Основы Excel (10ч): фильтры и сортировка данных, формулы, vlookup, pivot tables, базовая работа с графиками. Коллеги, партнеры или руководство будут присылать входящие данные в excel, и вам нужно будет уметь их быстро понять и изучить. Нередко и результаты анализа сделанного на Питоне удобнее подготовить и предоставить в Excel.

Базовый английский (20-200ч, зависит от предыдущего уровня), на уровне самостоятельного чтения технической документации и спец.литературы. Например, вам совершенно необходимо уметь читать официальную документацию pandas/scikit, и также многие хорошие материалы по Python доступны только на английском.

Этап 2. Основы Python и Pandas

Основы Python (80ч). Без знания Питона невозможно использовать львиную часть инструментов машинного обучения. Другие языки менее эффективны в этой сфере и непопулярны.

Также научиться основам работы с разными API и парсингом данных (requests, beatiful soup)

На этом этапе дополнительные знания Python позволяют вытаскивать данные из разных API, или путем веб-парсинга.

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

Этап 3. Базовые понятия и классические алгоритмы машинного обучения

(Этот этап может занять 200-400 ч в зависимости от того, насколько хорошо изначально вы владеете математикой)

Базовые понятия машинного обучения:

Экстраполяции (понимание возможности в контексте разных алгоритмов)

Базовые алгоритмы, которые достаточно знать на уровне главных принципов:

Прогнозирование и классификация:

Работа с временными рядами: экспоненциальное сглаживание

Понижение размерности: PCA

Базовые приёмы подготовки данных: dummy переменные, one-hot encoding, tf-idf

умение считать вероятности: основы комбинаторики, вероятности независимых событий и условные вероятности (формула Байеса).

Понимать смысл фразы: «correlation does not imply causation», чтобы верно трактовать результаты моделей.

Мат.методы, необходимые для полного понимания, как работают ключевые модели машинного обучения: Градиентный спуск. Максимальное правдоподобие (max likelihood), понимание зачем на практике используются логарифмы (log-likelihood). Понимание как строиться целевая функция логистической регрессии (зачем log в log-odds), понимание сути логистической функции (часто называемой «сигмоид»). С одной стороны, нет жесткой необходимости всё это понять на данном этапе, т.к все алгоритмы можно использовать как черные ящики, зная только основные принципы. Но понимание математики поможет глубже понять разные модели и придать уверенности в их использовании. Позднее, для уровня senior, эти знания являются уже обязательным:

Без практических навыков знания данного этапа мало повышают ваши шансы на трудоустройство. Но значительно облегчают общение с другими дата-сайентистами и открывают путь для понимания многих дальнейших источников (книг/курсов) и позволяют начать практиковаться в их использовании.

Этап 4. Набор базовых навыков решения задач

По сути, это практика по теоретическим знания предыдущего этапа. Имеет смысл отвести на это 100-300ч. И важнее уметь хотя бы как-то применять все указанные выше методы, чем дотошно разобраться в одном из них.

Тут же следует инвестировать время в изучение разных приёмов и трюков feature engineering

По завершению данного этапа есть шанс устроиться на позицию junior data scientist. ЗП будет низкая. Но главное будет продолжать учиться. До достижения уровня senior возможность учиться у коллег ценнее, чем текущая зарплата.

Знакомство с основами нейронных сетей

На данном этапе может быть полезно знание основ нейронных сетей, CNN, RNN/LSTM слоев, vector embeddings. Но не обязательно уметь тренировать их самому, на данном этапе. Пока это важно для «общего развития» и чтобы вы не хотели применять нейронные сети там, где без можно обойтись, и, наоборот, понимали где они могут быть полезны и когда имеет смысл или обращаться к коллеге уже их знающему, или браться за глубокое изучение и практику.

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

Рекомендую ограничить это объемом в 20-40ч, необходимым только для общего понимания концепций.

Этап 5. Дополнительные технические навыки, необходимые в работе

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

Conda, понимание проблем зависимостей версий библиотек, и как conda это может решить

Python standard library, если не освоили ранее (необходимый минимум itertools, collections, contextlib), умение эффективно разбивать код на функции и модули, классы; умение применять context managers.

Основы git, также очень полезно умение работать с IDE: pycharm/vs code. Их использование облегчит работу с git, заменив графическим интерфейсом работу с командной строкой

Библиотеки визуализации (matplotlib+seaborn, plotnine, plotly), если не освоили их раньше.

С таким багажом знаний наверняка можно найти позицию джуниор дата сайентиста (может называться по-другому, но суть та же).

В принципе, на этом уровне знаний можно работать годами, практикуясь в применении разных из уже изученных моделей, библиотек и инструментов, осваивая вспомогательные методы (feature engineering), нюансы, и способы решения похожих же задач, с помощью разных библиотек (xgboost, cat-boost). Постепенно будет уровень рост ЗП. Но это не уровень Senior специалиста.

Изучаем по необходимости, этапы 2-5

Визуализация данных

В какой-то момент времени вам потребуется уметь визуализировать данные, с которыми вы работаете. Имеет смысл активно это изучать тогда, когда вы будуте готовы сразу примененять эти знаний на практике, потому что иначе они не запоминаются. В Питоне существует несколько библиотек (привожу рекомендуемый порядок изучения):

matplotlib – на нём базируется следующие два варианта, и потенциально он может всё. Но тяжел и неэффективен для прямого использования, кроме построения уродливых графиков, для себя и коллег-технарей. Можно специально не учиться его применять, а понять только самые основы, которые будут «проступать» из-за других библиотек.

До начала применения в реальной практике, на обучение можно себя ограничить в 10-20ч на одну библиотеку.

Средства работы с данными

Можно учить на разных этапах, в зависимости от задач, с которыми столкнётесь

Основы regular expressions, aka RegExp (10ч). Знания regexp необходимо для продвинутой фильтрации данных в разных инструментах для работы с данными.

Внутри Spark устроен сильно не так, как обычные базы данных, но с точки зрения использования он оказывается сильно похожим, т.к. поддерживает почти стандартный SQL синтаксис или, как альтернативу, API отдалённо похожий на pandas. Определенные концептуальные отличия присутствуют, но больших сложностей в освоении это не вызывает. В последнее время продвигают библиотеку Koalas, которая будет использовать команды совсем как у pandas для работы с spark-кластером, но пока не советую делать это основным подходом по работе с Spark.

Этап 6

Углубление и развитие технических навыков

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

Уверенное пользование bash, понимание основ linux

Полезно изучить основы docker

Все эти вещи можно было бы учить и раньше. Но, как правило, раньше их знать просто не нужно. Т.к. вы больше будете страдать от нехватки других навыков, приведенных в предыдущих этапах.

Другие области машинного обучения

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

Нейронные сети

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

Подробнее в этапы изучениях нейронных сетей вдаваться не стану: эта тема требует отдельной статьи. И потратить на них можно от 50, чтобы решать самые простейшие задачи, до сотен часов, чтобы решать задачи связанные с обработкой неструктурированных данных или с обучением сложных моделей.

Другие статьи

Готов выступить ментором в самообучении

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

В результате такого общения некоторые поняли, что им лучше уйти в другую сферу (программирование, биг дата), некоторым я смог скорректировать учебный/карьерный план под индивидуальные потребности, кому-то я посоветовал тех, кто сможет помочь лучше меня, а кого-то спас (?) от неэффективной траты времени на тупиковые проекты (решение задач в машинном обучении, без понимания принципов машинного обучения).

Источник

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

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