Я считаю, что лучший показатель качества работы в будущем - это качество предыдущей работы. Многие менеджеры по обработке и анализу данных также разделяют это мнение. Не все уже работали над наукой о данных, но КАЖДЫЙ может составить проекты по науке о данных, чтобы продемонстрировать качество своей работы. Если вы создадите отличные проекты и продемонстрируете их на своем github и в резюме, вы резко увеличите свои шансы на получение работы.

Проекты хороши по нескольким причинам:

  • Они показывают, что вы начинаете самостоятельно и готовы решать большие проблемы.
  • Они демонстрируют, что вы можете применять методы науки о данных к реальным проблемам, с которыми вы сталкиваетесь каждый день.
  • Они позволяют вам «показать», что вы понимаете концепцию, а не «рассказать»
  • У вас есть полный контроль над темой ваших проектов, поэтому вы можете обслуживать их, чтобы проиллюстрировать определенные наборы навыков.
  • Обучение на основе проектов - один из самых быстрых способов действительно приобрести навыки работы с данными и изучить новые инструменты.
  • * Если они надежны и значимы, они могут быть такими же хорошими или лучше, чем опыт работы

* подробнее об этом в заключении

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

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

Как выбрать тему проекта?

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

Я считаю, что вам следует работать над проектами, которые попадают в одну из следующих категорий (или обе):

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

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

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

Каковы компоненты проекта по науке о данных?

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

Шаг 1. Планирование и обоснование проекта. Это то, что приводит все в движение. Вы не всегда знаете, что найдете, но вам следует попытаться ответить на вопрос или решить проблему с помощью своего анализа. У вас есть конкретный вопрос, который вы хотите решить, прежде чем переходить к шагу 2.

(например, можно ли предсказать счет в НБА с достаточной точностью, чтобы создать преимущество для ставок)

Шаг 2. Сбор данных. Есть множество отличных мест для поиска данных в Интернете (kaggle, google, reddit и т. д.). Вы можете выбрать набор данных в одном из этих мест или найти данные самостоятельно. Я обнаружил, что он выделяет кандидатов, если они извлекают данные из API, очищают их или используют другой более уникальный способ их сбора. Наличие данных, к которым другие не имеют доступа, увеличивает вашу уникальность и «вау».

(например, использовал python для сбора данных из справочника по баскетболу)

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

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

Шаг 4. Исследование данных. В этой части анализа важно показать, что вы понимаете специфику своих данных. Вы хотите погрузиться в распределение каждой функции, а также оценить, как функции связаны друг с другом. Чтобы показать эти взаимосвязи, вы должны использовать визуальные элементы, такие как ящичные диаграммы, гистограммы, графики корреляции и т. Д. Этот процесс помогает проинформировать вас о том, какие переменные будут иметь отношение к общему вопросу, на который вы пытаетесь ответить.

(например, гистограммы очков, набранных за игру, количество сделанных бросков и т. д.)

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

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

Этап 6. Разработка функций. Эта часть вашего анализа чрезвычайно важна (поэтому она имеет отдельный этап). однако обычно это следует делать параллельно с этапом анализа данных. Разработка функций бывает двух видов: (1) создание новых функций, которые могут улучшить качество прогнозов, или (2) изменение характера данных, чтобы они больше подходили для анализа.

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

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

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

(например, использование PCA для набора данных со многими коррелированными переменными, чтобы мы могли использовать линейную модель для прогнозирования сезонных точек)

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

(например, сравнение случайного леса, регрессии лассо и регрессии SVM для прогнозирования оценок NBA)

Шаг 8: внедрение модели в производство (необязательно). Если я увижу кого-то, кто воплотил свою модель в жизнь с помощью веб-страницы или API, я всегда впечатляюсь. Это показывает, что им комфортно использовать более продвинутые методы программирования или пакеты. Я неравнодушен к python, поэтому обычно использую для этого flask, но я видел, как другие используют R Shiny.

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

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

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

Если вам нужны дополнительные советы по отделению ваших проектов по науке о данных от пакета, ознакомьтесь с: Сделайте запоминающиеся проекты по науке о данных.

4 проекта, которые вам стоит сделать

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

Проект 1: прогнозирование непрерывного результата (регрессия). Для начала вы должны создать вопрос с числовым результатом. Затем вы должны сравнить, как различные модели линейной и нелинейной регрессии отвечают на этот вопрос (OLS, лассо, svm, дерево решений, случайный лес и т. Д.). Вы должны быть в состоянии объяснить преимущества и недостатки используемых вами методов. Вам также следует подумать об их объединении (ансамбле), чтобы увидеть, какие результаты вы получите.

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

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

Проект 4: используйте продвинутую технику (нейронную сеть, XG Boosted Tree и т. д.). Вы можете использовать передовые методы в любом из предыдущих проектов, но я считаю, что у вас должен быть один проект, который специально акцентирует внимание на них. Не все специалисты по обработке данных используют глубокое обучение, но вы должны быть знакомы с тем, как работают эти концепции и как они применяются.

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

Последние мысли*

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