Узнайте о различных ресурсах, которые выделят ваш следующий портфельный проект из толпы.

Вступление

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

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

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

В этой статье я поделюсь с вами следующим:

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

Итак, расслабьтесь, расслабьтесь и наслаждайтесь статьей!

Шаг 1. Придумывайте отличные идеи для портфолио.

Это, пожалуй, самая сложная часть портфельного проекта, потому что иногда у вас могут быть все навыки для выполнения проекта, но вы не знаете, где и как их применить!

Совет 1. Вдохновение

Один из подходов - черпать вдохновение из других проектов, над которыми работали люди. Вот несколько отличных примеров:

  • Стэнфордские проекты ML Class: на самом деле это работа класса машинного обучения в Стэнфорде. Он состоит из проекта, а отчеты и плакаты можно увидеть в Интернете. Это один из моих любимых проектов, так как некоторые из представленных здесь проектов великолепны, и они также любезно предоставили код Github.
  • Рецепты, созданные искусственным интеллектом: этот проект, созданный Дереком Джиа, является действительно хорошим примером того, как вы можете объединить две вещи, которые вам нравятся, в действительно вдохновляющий проект.
  • Ленивый прогноз: этот проект является очень хорошим примером того, что не все проекты портфолио нужно развертывать через Flask или преобразовывать в образ Docker. Здесь автор создал пакет PyPi, который помогает новичкам выбрать лучшую модель для проекта.
  • SnapStudy: не только отличная идея, но и отличное имя! Этот проект позволяет пользователю делать снимки своих заметок и автоматически генерирует карточки, чтобы помочь им запомнить! Как это круто!
  • Stock Trading Bot: это также действительно хороший пример проекта сквозного обучения с подкреплением. Содержит очень четкие инструкции и информацию о проекте, это отличный пример того, как можно применить свои знания по обучению с подкреплением в реальном мире.

Совет 2: мозговой штурм и решение жизненных проблем

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

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

  1. Могу ли я использовать НЛП для написания за меня сочинений?
  2. Могу ли я создать классификатор спама для писем с учителем?
  3. Могу ли я создать приложение, которое порекомендует мне, какой фильм Netflix мне следует посмотреть? Или какой Spotify мне следует послушать?
  4. Могу ли я создать приложение, которое порекомендует мне рецепты на основе того, что мне нравится?
  5. Могу ли я создать приложение НЛП, которое может читать мой почерк?
  6. Могу ли я создать бота для обучения с подкреплением, чтобы торговать за меня акциями?

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

Шаг 2. Откройте наборы данных для своего портфельного проекта.

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

Без лишних слов, вот список бесплатных открытых наборов данных:

  1. FiveThirtyEight
  2. Новости BuzzFeed
  3. Сократа
  4. Потрясающие данные
  5. Публичные наборы данных Google
  6. Квандл
  7. Data.gov
  8. Академические торренты
  9. Data.world
  10. Публичные наборы данных AWS
  11. R / Datasets
  12. Данные во множественном числе
  13. Наборы данных Википедии
  14. Данные МВФ
  15. Данные Всемирного банка
  16. Наборы данных НАСА
  17. Портал открытых данных ЦЕРН
  18. Хранилище данных Глобальной обсерватории здравоохранения

Это список, который я составил на основе моего личного опыта использования этих ресурсов. Я рекомендую вам проверить некоторые из них и увидеть, что популярно, а что нет. Так что теперь вы определенно не можете оправдываться: «Я не могу найти хорошие данные!»

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

  1. Как были созданы эти наборы данных?
  2. Откуда берутся данные?
  3. Какие типы данных присутствуют в данных?
  4. Есть ли недостающие значения? Если да, то это MCAR, MAR или MNAR?
  5. Имеют ли данные категориальные значения?

Шаг 3: Как подойти к портфельному проекту

Когда я начинал создавать проекты портфолио, я обычно пропускал все EDA и предварительную обработку и просто запускал модель XGBoost (да, действительно, как глупо). Однако я знал, что мне нужно следовать четкой структуре моих проектов. А потом я встретил CRISPDM.

Межотраслевой стандартный процесс интеллектуального анализа данных

Межотраслевой стандартный процесс интеллектуального анализа данных (CRISPDM) - это модель процесса, которая описывает 6 шагов, описывающих жизненный цикл Data Science. По сути, он помогает вам планировать, организовывать, структурировать и реализовывать ваши проекты.

Большой. Но что на самом деле включают в себя эти шаги? Хороший вопрос. Итак, давайте обсудим именно это!

Шаги, связанные с CRISPDM

1. Деловое понимание / определение целей

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

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

2. Понимание данных

Итак, теперь, когда вы поняли, чего пытаетесь достичь, вы приступаете к анализу. Шаги можно разбить на следующие задачи:

Сбор данных: вы начинаете со сбора данных. Вы можете использовать REST API, службы хранилищ данных или другие методы для сбора и объединения ваших данных в полезный набор данных.

Описание данных: вы начинаете с выполнения EDA, изучения базовой структуры данных, понимания данных и понимания типа данных, с которыми вы работаете.

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

Оценка данных: вы начинаете оценивать качество данных. Вы задаете такие вопросы, как:

  • Данные чистые?
  • Есть ли недостающие значения?
  • Мне нужно будет отказаться от каких-либо функций?
  • Как мне нужно будет предварительно обработать мои данные?
  • Потребуется ли масштабирование функций?

3. Подготовка данных

На этом этапе вы подготавливаете окончательные данные для использования в модели. Этапы следующие:

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

4. Моделирование

Наверное, самая приятная и ожидаемая часть проекта. Этот этап разделен на 4 части:

  1. Выберите методы моделирования: определите, какие алгоритмы попробовать (например, регрессия, нейронная сеть). Это можно сделать, попробовав несколько базовых подходов и оценив их все одновременно.
  2. Создание дизайна теста. В ожидании вашего подхода к моделированию вам может потребоваться разделить данные на наборы для обучения, тестирования и проверки. Вы можете решить использовать перекрестную проверку, чтобы лучше понять, как ваша модель будет обобщаться на новые данные. Убедитесь, что не оценивали ваши данные на тестовом наборе!
  3. Построить модель: как бы гламурно это ни звучало, это может быть просто выполнение нескольких строк кода, например «reg = LinearRegression (). fit (X, y)». Это также может включать объединение группы моделей вместе, известное как ансамбль.
  4. Оценка модели. Как правило, несколько моделей конкурируют друг с другом, и специалист по анализу данных должен интерпретировать результаты модели на основе знаний предметной области, предварительно определенных критериев успеха и дизайна теста.
  5. Настроить модель. После того, как вы выбрали идеальную модель, вы можете настроить параметры модели, чтобы добиться оптимального соответствия вашим данным.

5. Оценка

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

  • Оцените модели. Вы можете использовать различные показатели в зависимости от проблемы домена, чтобы исследовать и определить, какая модель работает лучше всего. Вы должны выбрать модель, которая наилучшим образом соответствует цели проекта.
  • Обзор проекта: это важный шаг. Вы оглядываетесь на цикл и видите, не могли бы вы сделать что-нибудь лучше. Вы сделали тщательный EDA? Были ли выбраны лучшие функции? Обобщите свои выводы и при необходимости скорректируйте проект.
  • Определите следующие шаги: исходя из производительности модели и того, насколько хорошо она соответствует цели проекта, вы можете решить продолжить развертывание или вернуться через цикл и посмотреть, сможете ли вы может одобрить определенные аспекты проекта.

Развертывание

Извините, что лопнул ваш пузырь, но модель не очень полезна для людей внутри вашего Jupyter Notebook! У вас должен быть план развертывания модели. Для этого необходимо выполнить следующие шаги:

  • Разработка плана. Составьте четкий и краткий план того, как вы собираетесь развернуть модель.
  1. Планирование мониторинга и обслуживания. Разработайте подробный план мониторинга и обслуживания, чтобы избежать проблем на этапе эксплуатации (или послепроектной фазы) модели.
  2. Составьте окончательный отчет. Команда проекта документирует краткое изложение проекта, которое может включать окончательное представление результатов интеллектуального анализа данных.
  3. Обзор проекта. Проведите ретроспективу проекта, чтобы узнать, что прошло хорошо, что можно было бы улучшить и как улучшить в будущем.

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

2 ключевых актива, которые нужно использовать, чтобы максимально использовать свой проект

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

  1. Отладка
  2. Уменьшение ошибок

Ключевой актив 1: ведение журнала

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

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

Ключевой актив 2: Настройка конвейера CI / CD

Это также очень недооцененная и малоиспользуемая стратегия. Я не могу уделить достаточно внимания важности разработки через тестирование и бесчисленным преимуществам, которыми она обладает. Создание надежного конвейера CI / CD может помочь в достижении следующих целей:

  1. Выявляйте ошибки на раннем этапе до того, как они поступят в производство
  2. Откат к предыдущему коду, если у вас есть существенная ошибка
  3. Отслеживайте свой код на всех этапах разработки
  4. Разделите различные аспекты проекта на отдельные рабочие области, чтобы все этапы процесса отслеживались и оценивались отдельно.

Лично мне нравится использовать Travis CI и Git при настройке конвейера CI / CD. Однако не стесняйтесь использовать любой инструмент CI или CD, который вам может понадобиться.

Заключение

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

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