Простой, интуитивно понятный стиль построения визуализации данных, веб-приложения ML с использованием библиотеки python streamlit.

Обычно, когда мы думаем о создании и совместном использовании в Интернете панели визуализации или приложения ML на python (скажем) для наших коллег / товарищей по команде / заинтересованных сторон или в качестве нашего портфолио, мы полагаемся на старых добрых гигантов, таких как Django или Flask.

Очевидно, что использование таких фреймворков имеет много преимуществ. Но загвоздка здесь в том, достаточно ли они удобны, быстры и интуитивно понятны для разработчика с низким кодом ?? Я имею в виду, зачем нам нужен разработчик Django/Flask отдельно для небольшой команды или для быстрой демонстрации ML приложения. При рассмотрении вышеперечисленных параметров «Streamlit» превосходит их всех безоговорочно.

Что такое стримлит?

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

Преимущества Стримлит:

  • Легко учиться - почти нет кривой обучения
  • Удобный для пользователя (Для разработчиков)
  • Меньше времени на сборку
  • Сторонние интеграции для графиков
  • И многое другое…

Поскольку мы увидели преимущества Streamlit, давайте начнем с того, насколько легко с его помощью создать простое веб-приложение для визуализации данных. Заметьте, все это было сделано всего за несколько часов. Поскольку у меня нет ни предварительных знаний о Streamlit, ни хорошего опыта кодирования. Я знаю, как сложно просто настроить и изучить «Django» в системе. Итак, с точки зрения сложности я оцениваю это следующим образом: Django >> Flask >> Streamlit. Django — самый сложный, Streamlit — самый простой.

Обзор О проекте:

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

Чтобы сделать этот пост коротким, я сохранил весь код на своем GitHub. Не стесняйтесь взять его в свои руки. Взгляните на веб-приложение здесь.

Основы:

  • Установка (windows) streamlit осуществляется через обычный pip. pip install streamlit. Для других платформ, пожалуйста, проверьте страницу документа.
  • Чтобы протестировать нашу установку, запустите streamlit hello в командной строке. Он открывается в браузере по умолчанию localhost:8501. Откроется страница «Документация» с несколькими демонстрационными примерами. (Я предлагаю попробовать, так как у него есть много отличных демонстраций)

Создание приложения:

После успешной установки вы увидите изображение, подобное приведенному выше, после запуска команды. Теперь пришло время создать реальный материал и стать свидетелем волшебства Streamlit. Я использовал редактор «sublime_text» для кода. Это выбор каждого.

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

Шаг 1.Используйте библиотеку requests для извлечения данных API.

Шаг 2. Во-вторых, после преобразования URL-адреса и извлечения данных API в формат JSON, а затем в фрейм данных выполните необходимые преобразования данных. Ниже приведен код для базового преобразования данных.

Шаг 3.Теперь, когда преобразования данных выполнены, пришло время использовать настоящие streamlit функции. Например, «контейнеры», «боковые панели», «графики» для диаграмм, инструменты шрифтов, такие как «подзаголовки», «уценка», «заголовок» и т. д.

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

Позвольте мне показать вам, как просто создать контейнер. Контейнер на самом деле помогает нашему контенту быть идеально выровненным на веб-странице.

Как видно из приведенного выше фрагмента кода, streamlit был импортирован. Создан контейнер, в котором есть «заголовок» (название страницы, выделено жирным шрифтом большого размера), «подзаголовок», «заголовок», «уценка», «текст», «запись» встроенные функции для обслуживания большая часть потребностей. Здесь мы можем просмотреть наш набор данных в виде dataframe прямо на веб-странице. Поскольку строк много, не рекомендуется вместо этого просматривать весь набор данных, я использовал .head(), чтобы вывести только первые 5 строк данных.

Итак, чтобы увидеть наш контент на веб-странице во время разработки, все, что нам нужно сделать, это запустить stream run app_name.py в командной строке, находясь в той же папке, где находится приложение. Он будет открыт в localhost: 8501 браузера по умолчанию. И каждый раз, когда вы вносите изменения в код веб-приложения, вы можете выбрать run или rerun always, которые автоматически перезапускают страницу всякий раз, когда вы вносите изменения. Они присутствуют в правом верхнем углу веб-приложения.

Точно так же я создал другие контейнеры, внутри которых есть графики, сделанные с помощью «Plotly». Его интеграция также очень проста и прямолинейна. Просто нужно использовать st.plotly_chart(). Вот пример визуализации графика, построенный в контейнере.

Я также использовал встроенную функцию карты для отображения продольных и широтных данных на карте.

Я также использовал боковую панель, чтобы приветствовать пользователя на странице. st.sidebar.header('*Hey, Hello there!!!*')

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

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

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

  • Во-первых, создайте файл requirements.txt, используя pipreqs.
  • Загрузите приложение вместе сrequirements.txt на Github.
  • Нажмите кнопку «Новое приложение» справа от страницы развертывания с подсветкой.
  • Вставьте ссылку на репозиторий Github, где находится код приложения.
  • Нажмите «Развернуть». УУУУУ, вот и все. Всего за несколько минут приложение развернуто.

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

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

Спасибо!!!

для дальнейших ссылок по этой теме: