Гайд в мир Data Science для начинающих
Татьяна Жумахметова, переводчик-фрилансер, специально для блога Нетологии адаптировала статью Conor Dewey, рассказав о том, из каких компонентов состоит Data Science.
Цель
Эта статья затрагивает основные понятия и специализации, из которых состоит наука о данных. Для каждого понятия я постараюсь наиболее доступно передать общие определения, объяснив роль, которую они играют в этой области. Вот темы, которые я затрону:
- статистика;
- линейная алгебра;
- программирование;
- машинное обучение;
- добыча данных (Data Mining);
- визуализация данных.
Статистика
Бизнес-словарь определяет статистику как «отрасль математики, относящуюся к сбору, классификации, анализу и интерпретации числовых данных для выведения предположений на основе их количественной вероятности».
Проще говоря, статистика собирает числа, изучает их и делает выводы.
В науке о данных для статистики есть множество применений. Её методы могут быть чрезвычайно полезны для интерпретации данных и получения интересных результатов.
Планирование эксперимента. Если у вас есть вопрос, на который вы хотите найти ответ, то скорее всего, для этого понадобится провести своего рода эксперимент. Сюда войдет подготовка, определение размеров выборки, создание контрольных групп и т. д.
Часто повторяющаяся статистика. Применение таких статистических методов как доверительные интервалы и тестирование гипотез позволяет определить, насколько важны результаты или отдельные данные. Умение рассчитать значимость и другую важную информацию из данных сделает из вас более опытного специалиста.
Моделирование. Такие методы как регрессия и кластеризация часто используются в науке о данных для моделирования. Независимо от того, пытаетесь ли вы что-то предвидеть, ищете ли зависимости в данных или делаете логические выводы на основе данных, скорее всего вы в конечном итоге используете какой либо из видов прогностического моделирования.
Насколько это важно
Здесь все становится неоднозначно и мнения разделяются. Чтобы точнее ответить на этот вопрос, я предлагаю разбить статистику на две группы: новую и старую.
Старая статистика, такая как регрессия и тестирование гипотез, просты по своей природе. Они могут быть полезны, но многие известные специалисты в области данных прогнозируют, что использовать их будут все меньше и меньше. Есть мнение, что эти специализации, вероятно, станут менее важными, в то время как наука продвигается вперед, а статистические методы развиваются. С другой стороны, новые статистические методы, например, деревья принятия решений и прогнозирующая способность, невероятно полезны и часто используются специалистами в области данных.
Говоря все это, я по-прежнему рекомендую честолюбивым специалистам в области данных работать в рамках общих статистических теорий и практик. Даже если вы не будете использовать их в повседневной работе, они все также будут очень полезны. Они помогут вам переходить к более продвинутым понятиям, которые вы будете регулярно использовать при обучении аналитическому мышлению.
Что почитать
В чем разница между наукой о данных и статистикой? (англ.) — отличное объяснение разницы между двумя сферами.
Наука о данных и статистика (англ.) — еще одна замечательная статья по аналогичному вопросу.
7 способов использования статистики специалистами в области данных (англ.) — детально о возможностях применения статистики.
Линейная алгебра
Лично я считаю определение Википедии наиболее полезным: линейная алгебра — это раздел математики, изучающий векторные пространства и линейные отображения между пространствами. Для начала неплохо, однако считаю, что можно немного упростить это определение и сделать его не таким сухим.
Проще говоря, линейная алгебра — это математика, работающая с объектами линейной природы.
Вот несколько наиболее известных примеров использования линейной алгебры в науке о данных на сегодняшний день.
Машинное обучение. Огромное количество методов машинного обучения тесно связано с компонентами линейной алгебры. Некоторые из них: основной компонентный анализ, собственный вектор и регрессия. Они особенно актуальны в работе с высокоразмерными данными, поскольку в них, как правило, присутствуют матрицы.
Моделирование. Если вы хотите каким-либо образом смоделировать поведение, скорее всего, для точных результатов вам понадобятся матрицы — разбить выборки на подгруппы. Здесь пригодится общая матричная алгебра: перестановка, дифференцирование и многое другое.
Оптимизация. Пониманить различия видов применения метода наименьших квадратов невероятно полезно любому специалисту в области данных. Метод наименьших квадратов используют для уменьшения размерности, кластеризации и т. д. — все это имеет значение в оптимизации сетей или прогнозов.
Некоторые из вас, возможно, заметили повторение слов «матрица» и «матрицы», и это не совпадение. Матрицы — большая часть теории общей линейной алгебры. Идеи, используемые для матриц, одинаково применимы к таблицам и фреймам данных — двум фундаментальным структурам, используемым в науке о данных.
Что почитать
Страница из Википедии о линейной алгебре (англ.) — хорошее определение в стиле учебника.
В чем суть линейной алгебры? (англ.) — большое обсуждение на Quora; обратите особое внимание на первые два ответа, Сэма Лихтенштейна и Дэна Пипони.
Что нужно знать о линейной алгебре, чтобы стать хорошим специалистом в области данных? (англ.) — еще одно качественное обсуждение на Quora, ответ Лили Цзян особенно познавательный.
Линейная алгебра для специалистов в области данных (англ.) — материал для быстрого погружения в основы.
Программирование
Если вы планируете карьеру в области науки о данных, вам нужно изучить программирование на должном уровне. Именно по этой причине многие специалисты в области данных обладают бэкграундом в компьютерных науках: это большое преимущество. Однако, если вы читаете эту статью и не обладаете опытом в программировании — не волнуйтесь, как и большинству вещей, этому можно обучиться самостоятельно.
Программа обучения: «Профессия Python-разработчик»
Мы выяснили, что программирование — важный навык для специалистов в области данных независимо от того, в какой сфере вы находитесь. Однако программирование в целом — не совсем то, что нужно науке о данных. А вот если вы сможете писать программы для автоматизации задач, то не только сэкономите драгоценное время, но и значительно упростите использование кода в будущем.
Для автоматизации повторяющихся действий удобно написать скрипт или программу.
Перейдем к некоторым ключевым навыкам. В списке я уделил больше внимания практическим навыкам.
Что надо знать
Разработка. Специалисты в области данных, знакомые с практикой разработки программного обеспечения, обычно чувствуют себя более комфортно, чем ученые, работая над крупными коммерческими проектами.
Базы данных. Логично, что специалисты в области данных постоянно используют базы данных, поэтому нужно иметь опыт в этой области. По мере роста баз данных NoSQL и количества облачных вычислений число традиционных SQL-баз данных резко сокращается. Однако работодатели по-прежнему ожидают, что вы будете иметь базовые знания о командах SQL и практику проектирования баз данных.
Сотрудничество. Сотрудничество — ключевой момент в разработке программного обеспечения. Вы, несомненно, знакомы с выражением: «Сила команды определяется её самым слабым звеном». Хоть это и банально, но правдиво для любой команды, специализирующейся в науке о данных. Большая часть работы ведется в группах, поэтому необходимо налаживать связь с командой, а также поддерживать хорошие отношения, чтобы эффективность сотрудничества была максимальной.
Полезные советы
Если спросить любого разработчика программного обеспечения или дата сайентиста о том, какой самый важный аспект программирования в работе, они обязательно ответят одинаково: простота технического сопровождения. Простой, поддерживаемый код почти всегда превосходит пусть и гениальный, но сложный код — он в конечном счете не будет иметь значения, если другие программисты не смогут его понять, оценить, масштабировать и поддерживать в дальнейшем. Есть несколько способов легко улучшить код. Вот они.
Не нужно хардкодить: не указывайте постоянных значений для каких-либо параметризуемых элементов кода, вместо этого используйте переменные и входные данные, они динамичны по своей природе и будут масштабироваться в будущем, в отличие от статических значений. Это небольшое изменение в коде значительно облегчит вам жизнь.
Документируйте и постоянно комментируйте свой код: самый эффективный способ сделать код понятнее — это комментировать, комментировать и комментировать. Кратко и информативно комментируя происходящее, вы убережете себя от бесконечных изменений и объяснений с коллегами.
Проводите рефакторинг: помните, что окончание разработки кода — это еще не конец. Постоянно возвращайтесь к прошлым работам и ищите способы оптимизации и повышения эффективности.
Что почитать
Навыки разработки программного обеспечения для специалистов в области данных (англ.) — отличный обзор важных навыков программирования.
Пять измерений дата сайентиста (англ.) — интересный подход к различным ролям, которые может взять на себя специалист в области данных. Обратите особое внимание на «Программист-эксперт» и «Эксперт по базам данных».
9 навыков, необходимых для старта карьеры в области данных (англ.) — короткая, но интересная статья.
Машинное обучение
Во-первых, машинное обучение — часть более обширной области искусственного интеллекта. Искусственный интеллект — это термин, придуманный Джоном МакКарти в 1956 году, определяемый как «наука и технология создания интеллектуальных машин». Со временем машинное обучение в этой области становится все более значимым.
Машинное обучение позволяет обучить компьютеры действовать самостоятельно, чтобы нам не приходилось писать подробные инструкции для выполнениях определенных задач.
Машинное обучение можно разбить на две формы обучения: обучение с учителем (supervised) и без учителя (unsupervised).
Обучение с учителем (supervised). Большая часть прикладного машинного обучения сегодня осуществляется с помощью контролируемого обучения — обучения с учителем. Контролируемое обучение — это обучение алгоритма на данных с получением ожидаемых результатов и их последующей корректировкой пользователем, чтобы алгоритм совершенствовал точность при следующем запуске. Представьте алгоритм компьютера в роли студента, а себя в роли учителя, который корректирует его и направляет, когда это необходимо.
Обучение без учителя (unsupervised). Хотя этот тип машинного обучения имеет сейчас менее практическое применение, эта отрасль, возможно, интереснее. В неконтролируемом обучении алгоритмы оставлены сами себе, они самостоятельно обнаруживают и идентифицируют базовые структуры в данных.
Значимость в Data Science
Машинное обучение, несомненно, имеет большое значение в сегодняшней технологической картине. Тони Тейтер и Джон Хеннесси уже назвали это «следующим интернетом» и «горячей новинкой». Билл Гейтс также упомянул эту тему, заявив, что «прорыв в компьютерном обучении будет стоить десяти Microsoft».
Офлайн-курс: «Data Scientist»
Области применения вроде разработки беспилотных автомобилей, классификации изображений и распознавания речи, легко объясняют шумиху вокруг машинного обучения. Сфера растет, и растет быстро, так что прыгайте на подножку сейчас или останетесь позади.
Что почитать
7 шагов к пониманию машинного обучения — пошаговое объяснение процесса машинного обучения.
Что такое машинное обучение? (англ.) — интересное обсуждение на Quora с несколькими немного отличающимися ответами, цель которых — определить машинное обучение.
Краткая история машинного обучения (англ.) — немного о том, как возникло машинное обучение.
Контролируемые и неконтролируемые алгоритмы машинного обучения (англ.) — четкие, краткие объяснения типов алгоритмов машинного обучения.
Визуализация машинного обучения (англ.) — мой любимый ресурс по этому вопросу. Отличная визуализация, которая позволяет вам точно понять, как используется машинное обучение.
Добыча данных (Data Mining)
Если вы много читали о Data Science, вероятно, вы познакомились с термином «добыча данных» или Data Mining. Но что в самом деле это значит? Изучив различные источники, я думаю, что лучше всего описать это следующим образом
Добыча данных (Data Mining) — это процесс изучения данных для получения ценной информации.
Глоссарий
В своей практике я столкнулся с некоторыми вопросами в области анализа данных, которые, как мне кажется, важны для понимания. Ниже список легких определений терминов из сферы анализа данных. Имейте в виду, что заметить разницу между ними может быть сложно, поскольку все они очень похожи.
Data Wrangling: это преобразование сырых данных для последующей работы над ними. Обычно состоит из нескольких важных шагов, включая очистку и разбор в предопределенные структуры.
Data Munging: то же самое, что и «Data Wrangling» выше. Почему нужно два термина для одного процесса, я, возможно, никогда не узнаю…
Data Cleaning: важный шаг, который включает в себя обнаружение и исправление (или удаление) поврежденных, неточных или отсутствующих значений из набора данных.
Data Scraping: метод, в котором компьютерная программа считывает данные, поступающие из другой программы или сайта, например, Twitter.
Значимость в Data Science
Каждый хочет делать потрясающие прогностические модели и феерические визуализации. Однако часто забывают, что ничего не выйдет, пока вы не выполните работу «санитара». В недавней статье New York Times было обнаружено, что специалисты в области данных тратят примерно 5080% рабочего времени на сбор и подготовку данных.
Об этой суровой реальности обязательно надо сообщать будущим специалистам в области данных. За прибыльным базовым окладом и званием «Самая сексуальная работа XXI века» молодые специалисты не видят реальной сути профессии.
Что почитать
Что такое Data Mining? (англ.) — хорошее обсуждение на Quora с различными определениями анализа данных.
Что такое Data Wrangling? (англ.) — краткая информация о том, что из себя представляет data wrangling.
«Работа санитара» — главный барьер на пути к инсайтам (англ.) — интересная статья, в которой подробно рассматриваются важность различных методов анализа данных в области науки о данных.
Визуализация данных
Визуализация данных может показаться чуть более понятной, чем другие темы. Тем не менее, в ней скрыто больше, чем кажется на первый взгляд. Давайте начнем с определения.
Визуализация данных — это представление данных или результатов в виде каких-либо изображений или диаграмм.
Распространено заблуждение, что привлекательный вид — наиболее важная часть визуализации. Это очень важно, но это не главная цель. Цель же в том, чтобы представить информацию, извлеченную из данных, наиболее доступным для восприятия способом. Согласно NeoMam Studios, цветные изображения на 80% увеличивают готовность читателя воспринимать информацию.
Распространенные типы визуализации
Посмотрим на некоторые часто используемые типы визуализации. Помните, что это далеко не полный список. Скорее это просто некоторые из наиболее распространенных двумерных визуализаций, которые мне встречались. Итак, пожалуйста:
Многомерные: это графики и диаграммы, оперирующие несколькими переменными; самая распространенная форма визуализации.
Примеры: круговые диаграммы, гистограммы и диаграммы рассеяния.
Временные: используют время в качестве базовой линии для эффективного сообщения данных. Любая из них может быть мощным инструментом для представления изменений в течение определенного периода времени.
Примеры: временные ряды, диаграммы Ганта и дуговые диаграммы.
Геопространственный: как можно предположить, геопространственные визуализации касаются местоположения. Они обычно используются для передачи информации о конкретной области или регионе.
Примеры: карты распределения точек, карты пропорций символов и контурные карты.
Читать ещё: «Как визуализировать данные: типы графиков»
Ключевые моменты
Есть несколько ключевых моментов, которые относятся ко всем наиболее часто используемым типам визуализации данных. Ниже вы найдете список тех, что я считаю наиболее значимыми.
Информация: она должна быть точной и последовательной. Конечный результат не имеет значения, если данные неверны.
История: визуализация должна иметь смысл, отношение к проекту или обществу. Зачем делать визуализацию, если никто не захочет её видеть?
Польза: независимо от того, насколько сложна информация, с которой вы работаете, ваша задача — сделать ее краткой и понятной. Важно, чтобы данными могли пользоваться даже люди без технического бекграунда. На работе это особенно актуально.
Привлекательность: наконец, визуализация должна быть в целом привлекательной. Она должна нравится и привлекать внимание. Для этого нужно принимать во внимание такие вещи, как баланс, цвет, согласованность, размер и многое другое.
Значимость в Data Science
Навыки визуализации чрезвычайно полезны для специалистов в области данных, независимо от сферы. Возможность эффективно представлять данные в виде изображений, а не слов делает ваше сообщение более понятным и дает больше шансов произвести впечатление своей работой.
Что почитать
Из чего складывается хорошая визуализация данных (англ.) — отличная диаграмма Венна, объясняющая компоненты превосходной визуализации данных. Мы затрагивали некоторые из них выше, но я все же очень рекомендую посмотреть статью.
Duke, введение в визуализацию (англ.): пройдитесь по всем типам визуализации данных на примере библиотек Университета Дьюка.
Обсуждение визуализация данных на Quora (англ.): несколько хороших вопросов о визуализации данных для дополнительного чтения.
Заключение
Вероятно, вы уже поняли, что наука о данных — это сложная область, состоящая из множества уникальных подтем, понимание которых — большой, но правильный шаг для начинающего специалиста.
Мнение автора и редакции может не совпадать. Хотите написать колонку для «Нетологии»? Читайте наши условия публикации.
Полный текст статьи читайте на Нетология