ELI5: данные для развертывания; Сделай сам

Как создается проект Data Science? Как начать проект? Где искать то, что мы хотим? Как продолжить работу над проектом?… Если вы не знаете, какой из этих вопросов задать, вот простое пошаговое руководство для полностью развернутого демонстрационного проекта, выполненного мной.

Первое и самое важное - это путь, по которому вы идете к своему проекту, потому что у проектов Data Science есть два пути продвижения вперед:

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

Когда это ясно в вашем уме, можно идти.

В моем случае это был первый.

Оглавление

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

Кстати, мой проект - это модель множественной линейной регрессии, которая может предсказать количество калорий, сожженных вами во время тренировки.

Все указанные ниже шаги можно выполнить, используя локальный экземпляр записной книжки Jupyter или Google Colab по вашему желанию. Я проводил всю обработку данных, EDA, обучение модели в Google Colab.

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

1. Сбор данных

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

Далее идет часть обработки данных (структурирование, очистка, обнаружение).

2. Преодоление данных

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

Здесь, когда я исследовал свой набор данных, я обнаружил некоторые недостающие значения. Просто заполнил его значением mean (). Вы можете найти некоторые выбросы или значения Nan. Просто следуйте инструкциям, указанным ниже, чтобы справиться с ними.

  • Для отсутствующих значений: их можно опустить, если они не влияют на производительность вашей модели или их нет в большом количестве; или вы можете заполнить их значением mean () или значением mode () в зависимости от того, является ли отсутствующее значение количественным или категориальным соответственно.
  • Для выбросов: вы можете либо просто опустить их, либо пойти на нормализацию, если это действительно поможет.

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

После этого идет EDA.

3. EDA (исследовательский анализ данных)

Это связано с тем, в чем заключается роль аналитика данных. Это включает в себя:

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

Ниже приведен график, показывающий, как различные функции связаны друг с другом, в виде графика корреляции.

Из графика, показанного выше, я сделал несколько выводов относительно моих данных.

  • Три крайних правых (исключая калории, поскольку это целевая переменная) характеристики, то есть Duration, Heart_Rate и Body_Temp, имеют самую высокую корреляцию с калориями. Они являются решающим фактором при прогнозировании количества сожженных калорий.

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

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

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

Далее следует выбор модели.

4. Выбор и построение модели

Этот шаг основан на различных факторах:

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

В моем случае я использовал линейную регрессию, поскольку проблема заключалась в прогнозировании количественной целевой переменной (калорий).

Scikit learn Python дает огромные возможности для применения сложных моделей, таких как линейная регрессия, деревья решений, наивные байесовские классификаторы и т. Д. Это помогло мне с моей линейной регрессией.

Прежде всего я выполнил простую линейную регрессию между продолжительностью и калориями, как показано ниже:

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

После этого я попробовал квадратичную (степень = 2) регрессию для того же, что показано ниже:

Здесь мы видим две линии: синюю для квадратичной регрессии и красную для линейной регрессии. Синяя линия лучше подходит для набора данных, чем красная линия.

После этого я сделал регрессию для (2 независимых, 1 зависимый); (3 самостоятельных, 1 зависимый); (4 независимых, 1 зависимый) и т. Д. Графики недоступны из-за большой размерной сложности визуализаций.

Окончательная модель была реализована с использованием всех 7 независимых (показанных выше в таблице набора данных) и 1 зависимого объекта.

Вся эта работа шла в Google Colab.

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

Для сохранения модели я использовал замечательный модуль Python под названием Pickle.

Я также оценил модель, используя собственный тестовый экземпляр, как показано ниже. «Loaded_model_l» - линейная модель; «Ar» - это массив, содержащий характеристики модели; ‘Arr’ - преобразованный массив; Функция .predict () - настоящий герой предсказаний; [[238.42637952]] - это прогнозируемая калорийность.

После завершения оценки модели пора сосредоточиться на интерфейсе и развертывании.

5. Интерфейс

Python предоставляет замечательный модуль, специально разработанный для данных, «Streamlit».

Легко использовать, просто следуйте его официальной странице документации, чтобы узнать о нем.

Я сам использовал то же самое для клиентской части, а также для развертывания.

Для полного кода вот ссылка на мой репозиторий GitHub:



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

После нажатия на «Развернуть это приложение» вы будете перенаправлены на другую страницу, показанную ниже. Здесь вам необходимо зарегистрировать новую учетную запись. Эта учетная запись будет связана с вашей учетной записью Github, в которой будут храниться все ваши файлы, связанные с проектом.

Здесь мы можем понять это так: Stremalit работает как интерфейс к программным файлам и коду, находящемуся в одном из ваших репозиториев GitHub, связанных с ним.

Примечание. Не забудьте добавить все необходимые файлы вашего проекта вместе с файлом requirements.txt в репозиторий GitHub.

После создания учетной записи нажмите «Запросить приглашение». Это добавит вас в очередь запросов.

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

Через 2–3 дня, когда вы получите письмо об активации учетной записи, вы можете сразу перейти и развернуть новое приложение, как показано на изображении.

После нажатия кнопки «Развернуть» развертывание приложения займет не более 3–4 минут. Ваша действующая ссылка на приложение будет видна на главной странице share.streamlit.io.

Теперь ваша очередь попробовать все самостоятельно.

Чтобы увидеть больше таких интересных и интересных проектов, подписывайтесь на меня здесь👇



Спасибо за то, что прочитали.