Курсы и книги для изучения data science c нуля
Содержание:
- Насколько это востребовано?
- Программирование: что и как учить?
- Этап 6
- Откуда приходят в дата-инженеры?
- Цель — учиться эффективнее и бесплатно
- Отличие от бизнес-аналитика
- Кто такой дата-сайентист?
- Образование в области Data Science: ничего невозможного нет
- Чем еще нужно обладать?
- Этап 3. Базовые понятия и классические алгоритмы машинного обучения
- №1. Профессия Data Scientist PRO
- Заключение:
Насколько это востребовано?
Из-за того, что данные растут в геометрической прогрессии, компании придумывают новые, более эффективные способы работы с ними. Для этого им нужны не только мощные платформы для хранения, но и сотрудники, которые оптимизируют процессы, поставляют уже подготовленные данные, ускоряя дальнейшую работу дата-сайентистов. Поэтому спрос на специалистов в этой сфере только увеличивается, а зарплаты в этом направлении – одни из самых высоких в IT.
Согласно отчету DICE о технических вакансиях за 2020 год количество вакансий дата-инженера выросло на 50% по сравнению в 2019 годом. Это самый большой показатель среди других профессий.
Источник
Программирование: что и как учить?
Что такое SQL и зачем его учить?
SQL является стандартом для получения данных в нужном виде из разных баз данных. Это тоже своеобразный язык программирования, который дополнительно к своему основному языку используют многие программисты. Большинство самых разных баз данных использует один и тот же язык с относительно небольшими вариациями.
SQL простой, потому что он «декларативный»: нужно точно описать «запрос» как должен выглядеть финальный результат, и всё! — база данных сама покажет вам данные в нужной форме. В обычных «императивных» языках программирования нужно описывать шаги, как вы хотите чтобы компьютер выполнил вашу инструкцию. C SQL намного легче, потому что достаточно только точно понять что вы хотите получить на выходе.
Сам язык программирования — это ограниченный набор команд.
Когда вы будете работать с данными — даже аналитиком, даже необязательно со знанием data science, — самой первой задачей всегда будет получить данные из базы данных. Поэтому SQL надо знать всем. Даже веб-аналитики и маркетологи зачастую его используют.
Как учить SQL:
Наберите в Гугле «sql tutorial» и начните учиться по первой же ссылке. Если она вдруг окажется платной, выберете другую. По SQL полно качественных бесплатных курсов.
На русском языке тоже полно курсов. Выбирайте бесплатные.
Главное — выбирайте курсы, в которых вы можете сразу начать прямо в браузере пробовать писать простейшие запросы к данным. Только так, тренируясь на разных примерах, действительно можно выучить SQL.
На изучение достаточно всего лишь от 10 часов (общее понимание), до 20 часов (уверенное владение большей частью всего необходимого).
Почему именно Python?
В первую очередь, зачем учить Python. Возможно, вы слышали что R (другой популярный язык программирования) тоже умеет очень многое, и это действительно так. Но Python намного универсальнее. Мало сфер и мест работы, где Python вам не сможет заменить R, но в большинстве компаний, где Data Science можно делать с помощью Python, у вас возникнут проблемы при попытке использования R. Поэтому — точно учите Python. Если вы где-то услышите другое мнение, скорее всего, оно устарело на несколько лет (в 2015г было совершенно неясно какой язык перспективнее, но сейчас это уже очевидно).
У всех других языков программирования какие-либо специализированные библиотеки для машинного обучения есть только в зачаточном состоянии.
Как учить Python
Основы:
Прочитать основы и пройти все упражнения с этого сайта можно за 5-40 часов, в зависимости от вашего предыдущего опыта.
После этого варианты (все эти книги есть и на русском):
-
Learning Python, by Mark Lutz (5 издание). Существует и на русском.
Есть много книг, которые сразу обучают использованию языка в практических задачах, но не дают полного представления о детальных возможностях языка.
Эта книга, наоборот, разбирает Python досконально. Поэтому по началу её чтение будет идти медленнее, чем аналоги. Но зато, прочтя её, вы будете способны разобраться во всём.
Я прочёл её почти целиком в поездах в метро за месяц. А потом сразу был готов писать целые программы, потому что самые основы были заложены в pythontutor.ru, а эта книга детально разжевывает всё.
В качестве практики берите, что угодно, когда дочитаете эту книгу до 32 главы, и решайте реальные примеры (кстати, главы 21-31 не надо стараться с первого раза запоминать детально. Просто пробежите глазами, чтобы вы понимали что вообще Python умеет).
Не надо эту книгу (и никакую другую) стараться вызубрить и запомнить все детали сразу. Просто позже держите её под рукой и обращайтесь к ней при необходимости.
Прочитав эту книгу, и придя на первую работу с кучей опытных коллег, я обнаружил, что некоторые вещи знаю лучше них.
-
Python Crash Course, by Eric Matthes
Эта книга проще написана и отсеивает те вещи, которые всё-таки реже используются. Если вы не претендуете быстрее стать высоко-классным знатоком Python — её будет достаточно.
-
Automate the Boring Stuff with Python
Книга хороша примерами того, что можно делать с помощью Python. Рекомендую просмотреть их все, т.к. они уже похожи на реальные задачи, с которыми приходится сталкиваться на практике, в том числе специалисту по анализу данных.
Какие трудозатраты?
Путь с нуля до уровня владения Python, на котором я что-то уже мог, занял порядка 100ч. Через 200ч я уже чувствовал себя уверенно и мог работать над проектом вместе с коллегами.
(есть бесплатные программы — трекеры времени, некоторым это помогает для самоконтроля)
Этап 6
Углубление и развитие технических навыков
Если предыдущие этапы давали вам навыки, без которых работать ну вообще нельзя, то навыки этого этапа призваны повысить вашу продуктивность или повысить качество решаемых задач, повысить самостоятельность при запуске разработанных моделей машинного обучения в продакшн.
-
Python на хорошем уровне: декораторы, уверенное знание классов и наследования, изучение базовых классов, dunderscore __методы__ .
-
Уверенное пользование bash, понимание основ linux
-
Полезно изучить основы docker
Все эти вещи можно было бы учить и раньше. Но, как правило, раньше их знать просто не нужно. Т.к. вы больше будете страдать от нехватки других навыков, приведенных в предыдущих этапах.
Другие области машинного обучения
В какой-то момент вам может потребоваться выйти из сферы подготовки прогнозных моделей или изучения и объяснения данных (кластеризация, EDA и визуализация). Это может быть связано как с вашими интересами, так и с проектами на работе. Например, это могут быть рекомендательные системы. Наверное, базовые рекомендательные алгоритмы можно изучать и одновременно с основами машинного обучения, т.к. знание одного не является обязательным для знания другого. Но логичнее переходить к ним, когда вы уже разобрались с основными алгоритмами обучения прогнозирования и кластеризации: скорее всего, этого от вас будут ожидать любые коллеги до тех пор, как вы включитесь в работу над рекомендательными системами.
Нейронные сети
Начиная с этого этапа имеет смысл изучать нейронные сети как следует с тем, чтобы применять их на пратике. Неэффективно изучать их раньше, т.к. многие задачи эффективно можно решить другими методами. И пока ваши данные и прогнозы изначально числовые, обычно «классическими» методами их решать эффективнее.
Подробнее в этапы изучениях нейронных сетей вдаваться не стану: эта тема требует отдельной статьи. И потратить на них можно от 50, чтобы решать самые простейшие задачи, до сотен часов, чтобы решать задачи связанные с обработкой неструктурированных данных или с обучением сложных моделей.
Откуда приходят в дата-инженеры?
- Из аналитики вне IT. Когда хочется автоматизировать и улучшить работу с таблицами и отчетами.
- Из аналитики в IT. Если уже знакомы с Python на базовом уровне и хочется развиваться в техническом направлении, научиться программировать.
Максим Керемет добавляет: «Можно переквалифицироваться из дата-сайентиста, если хочется больше развиваться с точки зрения программирования и построить какой-то сервис или продукт. Кроме того, если надоело постоянно выполнять разные ситуативные задачи и хочется сконцентрироваться на среднесрочных проектах на несколько месяцев, дата-инженер — хороший вариант».
Цель — учиться эффективнее и бесплатно
Мне помогло то, что до этого я сформировал привычки к самообразованию, а экономность не позволила мне пойти по самому простому пути: найти онлайн курс с именитыми преподами, заплатить им много денег и довериться, что они всему научат лучше всего. В итоге я перебирал много бесплатно доступных книг и курсов (книги часто были найдены на b-ok.org). Из всех курсов и книг отбирал самые лучшие, забрасывая то, что казалось слишком теоретизированными или плохо структурированным.
На основе этих десятков книг и курсов я и сформировал то мнение, которым хочу поделить. Вероятно, существует еще более эффективный и быстрый способ научится этому всему. То, как учился я, было всего-лишь быстрее большинства платных программ, которые я видел, и заодно бесплатным (на многие лучшие англоязычные курсы всегда можно записаться бесплатно; покупал я только книги русских авторов и пару книг, которые иначе не смог найти).
Отличие от бизнес-аналитика
Профессия Data Scientist имеет много общего с другими специальностями в области аналитики, в частности с бизнес-аналитиком. И некоторые даже думают, что это одно и тоже. В этих профессиях есть, конечно, некоторое сходство, но тем не менее они разные. Поэтому немного расскажу о том, чем они отличаются.
Главное отличие в том, что дата сайентист предсказывает результат на основании обработанных массивов данных, то есть прогнозирует будущее проекта с помощью технических средств – программирование и математическая статистика.
А бизнес-аналитик направлен не на технические результаты, а на коммерческие. Он оценивает, в первую очередь, эффективность проекта, используя статистические и аналитические данные.
При решении сложных задач (разработка алгоритма, обработка большого массива данных) бизнес-аналитик может привлечь дата-сайентиста для решения технических вопросов. Бизнес-аналитик может предложить варианты решения, которые дадут лучшие коммерческие результаты, но он не решает технические задачи, этим уже занимается дата-сайентист.
Кто такой дата-сайентист?
Проще всего объяснить на примерах. Возьмем рынок полипропилена. Есть цены на продукцию, которые формируются на основе каких-то факторов, например, стоимости сырья, курса валют, макроэкономических показателей различных стран или ситуации вокруг заводов-производителей полипропилена. Все это влияет на динамику цены полипропилена, но как именно — непонятно.
Все знают только примерную зависимость, вроде того, что если стоимость нефти растет, то и полипропилен может подорожать, а может и не подорожать, если сыграют еще какие-то факторы. В общем, диванная аналитика на кофейной гуще. Пока не придет дата-сайентист.
Например, в результате расчетов можно рекомендовать заводу заранее закупать побольше сырья, если цена на него низкая, чтобы сэкономить, когда его стоимость поползет вверх. Или предсказать цены на разных рынках, чтобы выбрать, где продать товар выгоднее с учетом остальных факторов, влияющих на прибыль. Вариантов использования прогнозов множество.
Образование в области Data Science: ничего невозможного нет
Сегодня для тех, кто хочет развиваться в сфере анализа больших данных, существует очень много возможностей: различные образовательные курсы, специализации и программы по data science на любой вкус и кошелек, найти подходящий для себя вариант не составит труда. С моими рекомендациями по курсам можно ознакомиться здесь.
Потому как Data Scientist — это человек, который знает математику. Анализ данных, технологии машинного обучения и Big Data – все эти технологии и области знаний используют базовую математику как свою основу.
Читайте по теме: 100 лучших онлайн-курсов от университетов Лиги плюща Многие считают, что математические дисциплины не особо нужны на практике. Но на самом деле это не так.
Приведу пример из нашего опыта. Мы в E-Contenta занимаемся рекомендательными системами. Программист может знать, что для решения задачи рекомендаций видео можно применить матричные разложения, знать библиотеку для любимого языка программирования, где это матричное разложение реализовано, но совершенно не понимать, как это работает и какие есть ограничения. Это приводит к тому, что метод применяется не оптимальным образом или вообще в тех местах, где он не должен применяться, снижая общее качество работы системы.
Хорошее понимание математических основ этих методов и знание их связи с реальными конкретными алгоритмами позволило бы избежать таких проблем.
Кстати, для обучения на различных профессиональных курсах и программах по Big Data зачастую требуется хорошая математическая подготовка.
«А если я не изучал математику или изучал ее так давно, что уже ничего и не помню»? — спросите вы. «Это вовсе не повод ставить на карьере Data Scientist крест и опускать руки», — отвечу я.
Есть немало вводных курсов и инструментов для новичков, позволяющих освежить или подтянуть знания по одной из вышеперечисленных дисциплин. Например, специально для тех, кто хотел бы приобрести знания математики и алгоритмов или освежить их, мы с коллегами разработали специальный курс GoTo Course. Программа включает в себя базовый курс высшей математики, теории вероятностей, алгоритмов и структур данных — это лекции и семинары от опытных практиков
Особое внимание отведено разборам применения теории в практических задачах из реальной жизни. Курс поможет подготовиться к изучению анализа данных и машинного обучения на продвинутом уровне и решению задач на собеседованиях
15 сентября в Москве состоится конференция по большим данным Big Data Conference. В программе — бизнес-кейсы, технические решения и научные достижения лучших специалистов в этой области. Приглашаем всех, кто заинтересован в работе с большими данными и хочет их применять в реальном бизнесе. |
Ну а если вы еще не определились, хотите ли заниматься анализом данных и хотели бы для начала оценить свои перспективы в этой профессии, попробуйте почитать специальную литературу, блоги о науке данных или посмотреть лекции. Например, рекомендую почитать хабы по темам Data Mining и Big Data на Habrahabr. Для тех, кто уже хоть немного в теме, со своей стороны порекомендую книгу «Машинное обучение. Наука и искусство построения алгоритмов, которые извлекают знания из данных» Петера Флаха — это одна из немногих книг по машинному обучению на русском языке.
Заниматься Data Science так же трудно, как заниматься наукой в целом. В этой профессии нужно уметь строить гипотезы, ставить вопросы и находить ответы на них. Само слово scientist подталкивает к выводу, что такой специалист должен, прежде всего, быть исследователем, человеком с аналитическим складом ума, способный делать обоснованные выводы из огромных массивов информации в достаточно сжатые строки. Скрупулезный, внимательный, точный — чаще всего он одновременно и программист, и математик.
Чем еще нужно обладать?
Помимо образования, есть несколько качеств, которые, как мне кажется, пригодятся дата-сайентисту.
Математический склад ума. В процессе принятия решений человек должен руководствоваться в первую очередь логическими умозаключениями.
Нестандартное мышление. Часто бывает, что для того, чтобы все работало, достаточно добавить или заменить всего одну строчку в коде. И аналитику нужно додуматься, какую именно.
Усидчивость. У дата-сайентистов довольно много рутинной работы, например, загрузка и предварительная обработка данных, проверка гипотез — не самые интересные и приятные этапы рабочего процесса. Но без них остальная часть работы невозможна, поэтому специалист должен уметь себя заставить делать что-то не очень интересное.
Дотошность
Мне, например, важно системно докопаться до сути вопроса, даже если на самом деле он не является важным. Например, после просмотра какого-нибудь фильма от Marvel я могу потратить много времени, систематизируя информацию об этой киновселенной: о супергероях, их истории, способностях и взаимоотношениях, о значимых событиях и так далее
В работе это качество необходимо, чтобы понимать нюансы применения различных алгоритмов и моделей, вплоть до деталей реализации.
Конечно, для дата-сайентистов очень важны внимание к деталям и настойчивость. Но это не значит, что одно только упорство или талант к математике сделают из вас профессионала
Дата-сайентист — профессия для целеустремленных и увлекающихся. Для тех, кто не боится трудностей и не бросает дело на полпути. И если все перечисленное про вас, то почему вы до сих пор не с нами в команде?
Фото в материале: архив компании
Этап 3. Базовые понятия и классические алгоритмы машинного обучения
(Этот этап может занять 200-400 ч в зависимости от того, насколько хорошо изначально вы владеете математикой)
Базовые понятия машинного обучения:
-
Кросс-валидация
-
Overfitting
-
Регуляризация
-
Data leakage
-
Экстраполяции (понимание возможности в контексте разных алгоритмов)
Базовые алгоритмы, которые достаточно знать на уровне главных принципов:
-
Прогнозирование и классификация:
-
Линейная регрессия
-
Дерево решений
-
Логистическая регрессия
-
Random forest
-
Градиентный бустинг
-
kNN
-
-
Кластерзиация: k-means
-
Работа с временными рядами: экспоненциальное сглаживание
-
Понижение размерности: PCA
Базовые приёмы подготовки данных: dummy переменные, one-hot encoding, tf-idf
Математика:
-
умение считать вероятности: основы комбинаторики, вероятности независимых событий и условные вероятности (формула Байеса).
-
Понимать смысл фразы: «correlation does not imply causation», чтобы верно трактовать результаты моделей.
-
Мат.методы, необходимые для полного понимания, как работают ключевые модели машинного обучения: Градиентный спуск. Максимальное правдоподобие (max likelihood), понимание зачем на практике используются логарифмы (log-likelihood). Понимание как строиться целевая функция логистической регрессии (зачем log в log-odds), понимание сути логистической функции (часто называемой «сигмоид»). С одной стороны, нет жесткой необходимости всё это понять на данном этапе, т.к все алгоритмы можно использовать как черные ящики, зная только основные принципы. Но понимание математики поможет глубже понять разные модели и придать уверенности в их использовании. Позднее, для уровня senior, эти знания являются уже обязательным:
Без практических навыков знания данного этапа мало повышают ваши шансы на трудоустройство. Но значительно облегчают общение с другими дата-сайентистами и открывают путь для понимания многих дальнейших источников (книг/курсов) и позволяют начать практиковаться в их использовании.
№1. Профессия Data Scientist PRO
Платформа обучения: Образовательный онлайн-сервис Skillbox.
Кому подойдет: Новичкам, решившим с нуля освоить Python и SQL, научиться собирать и анализировать данные и выбрать профессию в IT-сфере. Даже у тех, кто ранее не связывался с программированием, появится шанс пройти стажировку еще во время обучения.
Программистам, мечтающим вновь подтянуть математику и статистику, настроиться на аналитическое и алгоритмическое мышление, научиться выявлять потребности бизнеса, применять Python и повысить заработную плату.
Аналитикам с опытам, заинтересованным в смене специальности: даже новички научатся писать эффективный код на Python, разбираться в математике и иных тонкостях, связанных с аналитикой данных.
Длительность курса: Зависит от выбранной специальности. Доступно обучение по профессиям Machine Learning, «Дата-инженер» и «Аналитик данных». Каждый студент пройдет более 15 онлайн-курсов и преодолеет более 100 часов практических испытаний.
Сертификат или диплом: Да, диплом о профессиональной переподготовке государственного образца по выбранной специальности. Выдается студентам и электронный сертификат, закрепляемый в личном кабинете.
Трудоустройство: Гарантированная помощь с трудоустройством и прохождением стажировки в качестве Junior-специалиста. Дополнительно предусмотрены консультации, связанные с оформлением портфолио.
Стоимость курса: Рассрочка без первого взноса с ежемесячным платежом от 5 900 рублей. Без скидки – от 9 834 рублей.
Чему научитесь:
- Анализировать объемную информацию, создавать модели прогнозирования в бизнесе, медицине, промышленности;
- Обучать нейронные сети, подготавливать аналитические системы и рекомендательные сервисы;
- Развиваться в сфере обработке естественного языка или Computer Vision;
- Разворачивать инфраструктуру для организации сбора и обработки данных;
- Генерировать отказоустойчивые системы для работы с Big Data;
- Писать код на Python, оформлять SQL-запросы, искать и исправлять ошибки;
- Собирать и анализировать информацию, выискивать закономерности, строить гипотезы.
Как проходит обучение: Основа учебного курса – вебинары, транслируемые в режиме реального времени или добавляемые в личный кабинет в записи. После каждого занятия – практические испытания, разбираемые вместе с наставником. Финальный этап – обязательная защита диплома.
Преподаватели: Авторы профессии – Кирилл Шмидт и Юлдуз Фаттахова. Дополнительно лекции ведут действующие специалисты в рамках Data Engineer и Machine Learning, а вместе с тем – программисты и студенты-выпускники Skillbox.
Преимущества курса:
- Скидки для студентов Skillbox, оплата обучения в рассрочку, возможность не платить за первые 3 месяца доступа к лекциям, практическим испытаниям и дополнительным материалам;
- Наличие индивидуальной карьерной консультации, сосредоточенной вокруг подготовки резюме и оформления портфолио, прохождения собеседований и поиска вакансий;
- Доступ к бонусным курсам: «Карьера разработчика: трудоустройство и развитие», «Система контроля версий Git», «Английский для IT-специалистов»;
- Год обучения английскому языку вместе с онлайн-школой «КЭСПА» в подарок: предложение включает 4 индивидуальные сессии с преподавателем по 25 минут;
- Возможность выбрать подходящую специальность на основе пройденного материала и добраться до позиции Middle;
- Серия обязательных дипломных проектов, проверяющих знания и способных дополнить портфолио и стать дополнительным аргументом при трудоустройстве;
- Шанс зарегистрироваться и стать частью платформы Kaggle, публикующей задания для отработки навыков на реальных рабочих кейсах;
- Курс адаптирован под новичков, совмещающих обучение – с работой или учебой: для прохождения заданий достаточно от 3 до 7 часов в неделю;
- Почти круглосуточная помощь от кураторов, преподавателей и координаторов.
Заключение:
Предполагая, что в момент «развилки» не все прочитали часть 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: Последующие статьи цикла ниже под спойлером: