С чего начать в науке о данных?

После участия в митапе в конце марта на тему «Наука о данных — что это такое?», многие люди связались со мной, чтобы отправить им некоторые вводные материалы, которые помогут им начать обучение.

Мне потребовалось много времени, чтобы сесть и начать составлять список, потому что источников много, и в чем я глубоко уверен, так это в том, что закончу этим предложением — лучше всего начать с какого-нибудь реалистичного примера, представляющего интерес. вам, потому что вы лучше всего научитесь через упражнение. Более того, не существует золотого правила, как должна выглядеть эта траектория обучения, поэтому очень неблагодарно составлять список материалов и руководств, и следить за тем, чтобы она не входила в «предвзятость», или другими словами – проклятие это «детерминистское» движение, потому что именно так я подошел к науке о данных, поэтому это можно сделать только таким образом.

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

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

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

ГЛАВНАЯ ПРЕДПОСЫЛКА

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

Золотое «правило Парето» также применяется в науке о данных. 80% — это грязная работа с точки зрения подготовки данных и проектирования, в то время как эта «причудливая» часть, включая сами модели, часто составляет всего около 20%. Модели существуют, и если вы используете библиотеки R или Python, они обычно сокращаются до нескольких строк кода. Более сложной задачей является извлечение максимальной информационной мощности из данных и, конечно же, поиск оптимальной конфигурации модели. В конце концов, модель бессильна, если нет хороших данных — «мусор на входе, мусор на выходе».

В Data Science часто упускают из виду важность исследовательского анализа. Бывает, что шаги пропускают, из-за желания как можно быстрее начать с привлекательных и сложных моделей машинного обучения. Однако хороший исследовательский анализ — это иногда больше половины проделанной работы. Это включает в себя работу с данными, раскрытие их природы, понимание основы, благодаря которой прогностическая сила и ограничения, существующие в наборе данных, становятся ясными.

Если вам не нравится этот так называемый интеллектуальный анализ данных и вы пренебрегаете исследовательским анализом, вы вряд ли так быстро продвинетесь по карьерной лестнице. Или проще говоря — это не для вас. И это нормально, вы найдете что-то другое, что подходит вам лучше. В этом тексте можно найти еще более подробные объяснения и аргументы относительно зарождения Data Science, завышенных ожиданий и несоответствующей им реальности.

НАУКА ДАННЫХ ПРОТИВ. МАШИННОЕ ОБУЧЕНИЕ ПРОТИВ. ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ

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

СТРОИТЕЛЬНЫЕ БЛОКИ НАУКИ О ДАННЫХ

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

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

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

ПРОФИЛИ «УЧЕНЫЙ ПО ДАННЫМ»

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

Аналитики больше сосредоточены на изучении, выявлении закономерностей и объяснении конкретных моделей поведения и причинно-следственных связей. Так что по своей природе они больше статистики, чем разработчики. И у них есть некоторые трудности, связанные с производством решения и обслуживанием модели.

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

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

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

Профиль во многом зависит от интереса, а также от отправной точки (предварительные знания). Вы не будете подходить к науке о данных одинаково, если вы пришли из сферы бизнеса или из мира ИТ. Однако обязанности и требуемые навыки также зависят от самой компании. Прежде всего, это зависит от того, есть ли у компании возможность использовать несколько различных профилей, таких как специалист по данным, инженер данных, инженер по машинному обучению, разработчик и DevOps. Если да — то наверняка работа Data Scientist в этой компании будет отличаться от работы в компании, которая не может позволить себе все эти профили — и Data Scientist должен будет охватить больше сфер одновременно.

МЕТОДОЛОГИИ РАЗРАБОТКИ

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

Хотя я действительно предпочитаю эту методологию и следую ей, есть еще два шага, которые следуют при создании моделей машинного обучения — мониторинг и участие. Мониторинг имеет решающее значение для отслеживания производительности в реальной среде и обработки «дрейфов концепции» (погуглите, важно знать об этом). Вовлечение означает, что заинтересованные стороны должны поверить в преимущества науки о данных и вашего решения и вовлечь их в активное использование, тестирование и предоставление отзывов о решении. Убедившись, что все эти шаги выполняются — все готово! :)

РЕШЕНИЕ ПРОТИВ. ПРОДУКТ

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

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

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

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

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

Р VS. ПИТОН ПРОТИВ. ДРУГОЕ

Это действительно (почти) не имеет значения. Когда я начал учиться, я разработал рекуррентную сеть на Java. И с тех пор к Java даже не подходил (кроме случаев, когда Spark выбрасывает исключение :D). Что действительно важно, так это то, что вы фиксируете концепции. Вы легко нагуглите то, что вам нужно. Концепции фреймов данных, группировки и агрегации существуют в R, Python и Spark и в основном вдохновлены манипуляциями, которые можно выполнить в SQL, так что вы можете понять, о чем я говорю. Когда дело доходит до моделей машинного обучения, существуют некоторые различия в реализации на разных языках программирования, однако самое главное — понять, как работает алгоритм, а освоить реализацию можно с помощью документации или Stackoverflow.

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

Говорят, что Python — второй лучший язык для всего. Если это что-то значит для вас — идите по этому пути. ? По сути, это язык общего назначения, вы можете запускать ML, вы можете запускать Deep Learning, вы можете создавать визуализации и интерактивные информационные панели, а также API, буквально — все, что придет вам в голову. При этом я не могу утверждать, что все, что есть в R, есть и в Python. Что не означает, что он не изменится в ближайшее время.

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

Spark также является хорошим вариантом, но Spark не всегда необходим. По сути, если вам не нужно основное преимущество Spark — способность распараллеливать сложные процессы с большим объемом данных — на мой взгляд, это не должно быть вашим первым выбором. Опять же, если вам когда-нибудь понадобится перейти на Spark, не бойтесь, все можно освоить.

Существуют также различные инструменты разработки моделей машинного обучения — Orange, RapidMiner, SPSS, SAS — где все работает по принципу перетаскивания, но опять же важно понимать методологию разработки и модели, которые вы используете для работы системы. Если вы не занимаетесь программированием, это может быть хорошим выбором.

ДОЛЖЕН ЛИ Я ЧИТАТЬ ИССЛЕДОВАТЕЛЬСКИЕ СТАТЬИ/ИМЕТЬ докторскую степень?

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

С другой стороны, докторская степень в определенной области может быть полезной ссылкой, поскольку в этом случае вы знаете специфику области, в которой вы можете применить расширенную аналитику. Тем не менее, это также может быть проблематично из-за плохого практического опыта. Поможет ли это звание вам быстрее поступить или вообще устроиться на работу в Data Science? Не обязательно. Истина где-то посередине.

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

ПОЧЕМУ ИНФЛЮЕНСЕРЫ ТАК ВАЖНЫ?

Помимо книг, научных статей, курсов и постов в блогах, есть еще один моментальный способ получить актуальную информацию и инсайты — через социальные сети. Пока мои любимые LinkedIn, Reddit и Twitter, хотя, конечно, есть и другие. Таким образом, вы можете следить за лидерами в этой области, всегда оставаться в курсе событий, общаться с людьми со схожими интересами, делиться опытом и знаниями и, в свою очередь, получать знания. Я уже говорил об этом в своем тексте, и что я могу сказать спустя год, так это да — я до сих пор в это верю. ?

ОК, ДАВАЙТЕ ПОГОВОРИМ О ДЕЛАХ

Курсера

Kaggle

Датакемп

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

PluralSight (бесплатно, апрель, нельзя упускать такой шанс)

Подкасты

  1. СуперДатаНаука
  2. Линейные отступления

Книги

Блоги

Глубокое обучение

Сообщества

СЛЕДУЮЩИЕ ШАГИ

  • Вливайтесь в сообщество — посещайте всевозможные митапы, конференции и лекции, на таких мероприятиях всегда можно получить дельные советы, идеи, новые знания и т.д.
  • Освойте теоретические основы расширенной аналитики (методологии разработки, исследование данных, статистические тесты, алгоритмы машинного обучения и т. д.)
  • Найдите интересный для вас пример, с помощью которого вы могли бы применить то, что вы изучаете, и расширить свои знания (репозиторий машинного обучения UCI и поисковый репозиторий наборов данных Google имеют миллионы открытых наборов данных, вы обязательно найдете что-то интересное)
  • Узнайте, как работать в GOOGLE
  • Проект, над которым вы работаете, должен быть загружен в ваш профиль GitHub, это обязательный пункт в вашем резюме.
  • Составьте отчет, в котором вы объясните, что вы сделали в проекте, какая проблема была решена, какие были шаги, какие были самые большие проблемы, какие выводы были сделаны и на какой основе, каковы возможности для улучшений и т. д.
  • Попросите кого-нибудь из сообщества, который занимается интересующими вас областями, дать совет о том, как начать работу в этой конкретной области (наука о данных — это широкий термин).
  • Подайте заявку на практику / работу, где вы будете лучше всего учиться и развиваться благодаря наставничеству. Если на этапе отбора есть технический тест — это прекрасная возможность чему-то научиться. Используй это!

БЛАГОДАРНОСТИ

Я хотел бы поблагодарить всех, кто помогал в реализации этого документа, особенно моих коллег из команды @Things Solver (спасибо Анжеле, Ясмине, Тияне, Марии, Страхине, Марко, Богдану!). И особая благодарность моим коллегам Бояне Соро из Content Insights и Срджану Сантичу из Logikka. Вместе мы составили список исходных материалов и сформулировали этот документ. СПАСИБО ВАМ ВСЕМ. Я надеюсь, что этот документ будет полезен новичкам, и что мы улучшим и обогатим его через сообщество.

Ваше здоровье!

Это сообщение изначально было опубликовано по адресу: https://thingsolver.com/how-to-start-with-data-science/