Как стать автором
Обновить

Ликбез по вхождению в Data Science: что для этого нужно и стоит ли пытаться?

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров27K
Всего голосов 11: ↑8 и ↓3+5
Комментарии25

Комментарии 25

Не надо форсить курс на Степике «Программирование на Python» от Института биоинформатики. Это лютый кринж.

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

Лучший курс по Python - Поколенийе Python на Stepik. Я прошел и тот и этот и могу судить.

Не знаю что вам не понравилось, для начинающих этот курс хороший, возможно у вас есть какая-то альтернатива? Когда я его проходил, он дал довольно большое количество опыта за короткий промежуток времени :)

А MIT сейчас передлагает 12 бесплатных курсов по Data Science. Там и программирование, и статистика, и прочее.

а можете ссылками поделиться?

Хмм.. Ну если только за плюсик в карму 😎

Here are 12 FREE courses you DO NOT want to miss:

1. Introduction to Data Science

https://lnkd.in/dSv5S4gj

2. IBM Data Science https://lnkd.in/gqXJF33A

3. Advanced Data Science with IBM https://lnkd.in/gBX5mT7n

4. Applied Data Science with Python https://lnkd.in/dRx4Bgr8

5. Data Science: Foundations using R https://lnkd.in/d9rXQ7FG

6. Learn SQL Basics for Data Science https://lnkd.in/d5Zac8hu

7. Data Science Fundamentals with Python and SQL https://lnkd.in/dqEPtc-u

8. Advanced Statistics for Data Science https://lnkd.in/dAirxZ8q

9. Mathematics for Machine Learning and Data Science https://lnkd.in/d_NF7vVZ

10. Genomic Data Science https://lnkd.in/dK5ApXNY

11. Executive Data Science https://lnkd.in/dzkAYhk8

12. Data Science with Databricks for Data Analysts https://lnkd.in/dMtFdGYm

а MIT то где?

В рекламном банере было, что MIT, а потом этот список. Я его даже не смотрел.

А еще Гугл предлагает 6 бесплатных курсов с сертификацией по project management... 🙄

Не понял. Это как это потратить полгода всего лишь на дата сайентиста? Даже если мы обсуждаем минимум.

Это типа если ты закончил мехмат мгу ил физтеха + адвансед дата аналитик + с супер опытом ооп программирования тогда еще можно предположить.

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

Но даже в этой ситуации, если человек сильно замотивирован, и хочет именно в data science и будет заниматься, то имхо полгода — это адекватное количество времени.

Мой кейс: мехмат + опыт программирования на С++ (сугубо с внутренними библиотеками работодателя) и некоторый опыт программирования на python (без ООП). У меня ушло на обучение где-то 2-3 месяца, но это с небольшими перерывами и при офисной работе с 8 до 17 с высокой загруженностью. У меня была мотивация, поэтому я ботала в метро, по вечерам и выделяла время на выходных. Потом я начала искать работу, проходить интервью и по их результатам что-то еще параллельно добивала. Всего на поиск работы у меня ушло около 2-х месяцев, но это был очень интенсивный процесс, в среднем где-то по 2 технических интервью в неделю.

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

Математика для data science за 2 недели? Это чисто темы почитать которые изучить надо? Как и sql .

Разумеется, это не полные университетские курсы мат. анализа и линейной алгебры, даже не близко к этому :) но за пару недель действительно можно в первом приближении разобраться с самыми базовыми понятиями — с дифференцированием, векторно-матричными операциями, функциями многих переменных, понятиями градиента и матрицы Гессе, с постановкой задачи оптимизации и пр. В дальнейшем, конечно, было бы неплохо посмотреть уже полные курсы, которые есть в свободном доступе в большом количестве, просто это займет значительное время и не является необходимым условием для понимания ML-алгоритмов . Что касается SQL, изучить синтаксис и разобраться, как делать выгрузки из БД, как объединять таблицы, что такое primary/secondary key, чем отличаются разные join-ы — это дело пары дней, особенно если есть опыт работы с библиотеками типа pandas. Ну неделю можно еще порешать задачки, просто чтобы руку набить. Все равно на реальной работе будет своя специфика, к которой надо будет адаптироваться и что-то дополнительно гуглить, поэтому, на мой взгляд, тратить очень много времени на SQL не стоит. Хотя что касается сроков обучения — тут все сугубо индивидуально, все люди разные, я оцениваю ситуацию для эдакого сильно замотивированного человека в вакууме, обобщая мой личный опыт и опыт моих знакомых :)

Очень смешно! Питон - до 1,5 месяца. Я уже год мучаю всего один курс для начинающих!!! А я далеко не дурак. Но на решение задач иногда уходит по 2 дня. Уже около 350 задач решено. Это если мне не напишет код какой-нибудь программист, а я сам до него додумаюсь. Git и Docer - 2 недели? Я тут только совсем недавно неделю потратил выяснить, что это такое. Нигде толком нет доходчивого объяснения. Так что все сроки, что описал автор - для гениев с большим стажем программирования. Обычному человеку понадобится лет 5 все это выучить

Питон — это настолько обширный язык программирования, что изучать его можно всю жизнь :) Все зависит от того, для чего вы его изучаете. Мне кажется, очень важно помнить, что Питон — это лишь инструмент, который используется для различных задач. По сути он представляет собой основы (что такое интерпретатор, какие есть типы и структуры данных, что такое стек вызовов, пространства имен и области видимости, элементы ООП) и большое количество библиотек и фреймворков. Например, для того, чтобы заниматься разработкой высоконагруженных сервисов, необходимо уметь работать с одним набором инструментов (многопоточность, работа с REST API запросами и пр.), для data science или для аналитики данных будут совершенно другие библиотеки (анализ данных, рисование графиков, обучение моделей). Например, если взять ту же биоинформатику — там настолько специфические инструменты, что смысла их изучать без особой необходимости совершенно нет. Поэтому при изучении Питона важно разобраться с основами и сконцентрироваться на том наборе библиотек и фреймворков, который нужен для достижения желаемой цели. Еще я бы здесь обратила внимание на то, что ты никогда не выучишь все и сразу, часто обучение происходит итерационно — сначала появляется первое понимание происходящего, потом оно уточняется с появлением нового опыта, и это может происходить на протяжении многих лет. Поэтому очень важно сдерживать себя и не пытаться выучить сразу все досконально, это не получится и всегда будут какие-то белые пятна, в которые можно углубляться.


Насчет оценки времени, полутора месяцев для изучения основ в первом приближении, на мой взгляд, вполне достаточно (хотя, разумеется, копать глубже можно очень долго). Конечно, это индивидуально, кто-то справится и за неделю (лично знаю такие истории), кому-то потребуется больше времени. Но здесь я бы обратила внимание на то, что очень важно отслеживать прогресс. Если есть понимание, что ты топчешься на месте, то имеет смысл обратиться за помощью. Можно написать в тематические чаты, можно поискать ментора (например, на https://getmentor.dev/ есть менторы, которые дают бесплатные консультации).


Что касается Git и Docker, опять же, всё зависит от целей. В посте я рассматриваю изучение этих инструментов для дата-сайнтистов, не для разработчиков и не для дата-инженеров/MLOps-ов. Чтобы понять концепцию систем контроля версий, принцип работы Git, основные понятия (что такое репозиторий, как делать коммиты, работа с ветвлением, слияние веток) и команды, уйдет максимум неделя (это еще и с практикой). То же самое с докером. Чтобы понять, что такое докер-файл, докер-образ, как создается контейнер, базовые команды для запуска контейнера — на это уйдет неделя. Разумеется, если погружаться глубже, начать писать самостоятельно докер-файлы и погружаться в оркестрацию контейнеров, то тут потребуется гораздо больше времени, но для джуновской DS-позиции это не нужно.

Я что ли один такой, кто требует от аналитика данных глубоких знаний в факторном и, в частности, в корреляционном/регрессионном анализе на собеседовании? Или в математике есть иные методы анализа данных?

Да я бы год прогнозировал только на освоение этих дисциплин.

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

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

Часто просто дают данные и просят подготовить отчет

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

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

Отсюда, в подавляющем большинстве случаев, производится анализ больших данных (Big-Data), где без профессионального владения SQL вообще делать нечего.

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

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

анализировать на наличие выбросов, пропущенных значений

Уже тут необходим регрессионный анализ и, как минимум, подбор регрессионной модели и её параметров для фильтра Калмана. Или Вы знаете иные варианты?

Это даже не трогая анализ на стационарность, трансформацию Бокса-Кокса, поиск составляющих преобразованиями Фурье и т.п.

трансформировать (объединять, группировать и т.д.)

Миллиарды записей без знания SQL? Как? Или Вы думаете, что каждому студенту для его Python поставят по терабайту оперативной памяти на его компьютер?

Давайте свернем это обсуждение, так как я не вижу в нем смысла. Я не знаю ни одного аналитика, который применяет в своей рутинной работе преобразование Фурье или фильтр Калмана. У меня есть большой опыт использования этих инструментов, но в совершенно других, инженерных задачах. Допускаю, что есть проекты, в которых это действительно необходимо (возможно, у вас как раз такой случай), но если говорить об общей массе — сомневаюсь.

Своё мнение по этому вопросу я высказала, ваше также услышала, но я с ним не согласна.

В конце концов, эта статья посвящена моему видению вопроса, основана на моем практическом опыте, никто не мешает написать вам свою :)

Я не знаю ни одного аналитика, который применяет в своей рутинной работе преобразование Фурье или фильтр Калмана.

Вы же сами заговорили о пропусках в данных. Какие методы проще фильтра Калмана Вы предлагаете использовать для их восстановления? А ведь и он имеет свои недостатки и не всегда эффективен.

Как Вы находите сезонные составляющие без использования преобразования Фурье?

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

Как Вы находите сезонные составляющие без использования преобразования Фурье?

Сглаживание, построение тренда, расчет коэфициентов сезонности относительно тренда. Нет?

Для того, чтобы сгладить, не потеряв сезонные составляющие, нужно их сначала найти. А от тренда тут толку вообще мало, если сезонность ярко выражена. Может последнее значение уже локальный минимум или максимум?

Для примера, движение автотранспорта имеет сезонности годовые, недельные и суточные. Но тут на уровне проблемной части это понятно. А если на входе временной ряд, для которого эти сезонности только предстоит найти?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий