Лучшие инструменты для понимания моделей машинного обучения

0
333
views
python logo

Хочешь знать больше о Python?

Подпишись на наш канал о Python в Telegram!

×

Перевод статьи Best Data Science Tools to Increase Machine Learning Model Understanding.

Photo by UX Store on Unsplash

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

  1. Интерактивные веб-приложения
  2. Анализ данных
  3. Объяснение моделей ML
  4. Отладка
  5. Оценка производительности моделей
  6. Наблюдение за экспериментами
  7. Мониторинг продакшена

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

1. Интерактивные web-приложения

Streamlit

Данная open-source технология позволяет строить специализированные web-приложения для ваших моделей. Так вы сможете представить свою модель в интерактивном и понятном виде, чтобы каждый смог легко ей воспользоваться.

Всего за несколько минут вы сможете построить и задеплоить прекрасное и мощное приложение с использованием data science.

Чтобы воспользоваться Streamlit, нужно всего лишь установить его через pip командой:

pip install streamlit

Streamlit UI попросит вашего разрешения на перезапуск приложения и отображение изменений. Это позволит вам работать итерациями: вы пишете немного кода, сохраняетесь, проверяете вид приложения, пишете ещё и так далее до получения желаемого результата.

Загляните в документацию Streamlit, чтобы более подробно узнать, как он работает.

Flask 

Один из самых популярных и легковесных фреймворков Python для построения web-приложений. Его можно использовать для разработки API для вашей модели. В основе Flask лежит набор инструментов Werkzeug WSGI и движок шаблонов Jinja2.

У Flask простая архитектура, и вы сможете легко её изучить. Данный инструмент рекомендуется использовать для создания небольших приложений. Вы сможете быстро задеплоить модель и настроить REST API.

Чтобы начать пользоваться Flask, установите виртуальное окружение и запустите команду:

pip install flask

Подробности – в документации Flask.

Shiny

Shiny – это пакет языка R для создания интерактивных web-приложений. Если вы уже знаете R, вам будет легко использовать его, чтобы построить приложение и поделиться своей работой. У этого инструмента интерактивный и интуитивно понятный дизайн.

С помощью Shiny вы можете разместить свои автономные приложения на веб-странице, встроить их в R Markdown-документы или скомбинировать с панелями инструментов. Вы также можете улучшить свои приложения на Shiny CSS-темамиhtml-виджетами и js-скриптами.

Для установки Shiny используйте команду:

install.packages("shiny")

Больше деталей о Shiny – в официальном туториале.

2. Анализ данных

DABL

DABL расшифровывается как Data Analysis Baseline Library (Базовая Библиотека Анализа Данных). Данную библиотеку можно использовать для автоматизации повторяющихся процессов, которые возникают на ранних стадиях разработки моделей: очистки данных, предобработки датасета, анализа, обработки недостающих значений, конвертации данных в другие форматы.

Это новая библиотека Python, так что её функции ограничены, но выглядит пока многообещающе.

Установка производится командой:

pip install dabl

Лучше разобраться в DABL вам поможет эта статья.

KNIME

Open-Source проект для построения моделей машинного обучения и приложений с применением анализа данных.

Так как KNIME использует принцип конвейера, в нём можно объединять различные компоненты для машинного обучения и дата-майнинга. KNIME используется в таких областях, как CRM-системы, интеллектуальный анализ текста и бизнес-анализ данных.

Он предоставляет интерактивный графический интерфейс для организации работы с помощью drag-and-drop редактора. В нём поддерживается многопоточная предобработка данных in-memory, и, к тому же, сервер KNIME поддерживает командную разработку.

Для начала работы с KNIME зайдите на страницу с документацией.

RapidMiner

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

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

Начните использовать RapidMiner, перейдя по этой ссылке.

SAS

SAS (Statistical Analysis System – система статистического анализа) используется для статистического анализа данных. Использует SAS SQL и автоматическую генерацию кода, а также легко работает с продуктами Microsoft, например с Excel.

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

Чтобы начать использовать SAS, ознакомьтесь с этим туториалом.

3. Объяснение моделей

Eli5

Eli5 – пакет Python, который будет полезен при объяснении предсказаний классификаторов. Он обеспечивает поддержку следующих пакетов и фреймворков:

  • XGBoost – объясняет предсказания моделей XGBClassifier, XGBRegressor, а также помогает определить значимость переменной в датасете.
  • CatBoost – объясняет предсказания моделей CatBoostClassifier, CatBoostRegressor, помогает определить значимость переменной в датасете.
  • Scikit-learn – объясняет значения весов и предсказаний линейных классификаторов и моделей регрессии scikit-learn, а также помогает определить значимость переменной для деревьев решений.

Узнать больше о Eli5 вы можете в документации.

SHAP

SHAP (SHapley Additive exPlanations – объяснение на базе вектора Шепли) основан на SHAP-значениях, которые показывают значимость каждого признака путём разбивания прогноза на части. Знание этих величин позволит отлично понять, что происходит в вашем датасете.

Некоторые применения SHAP-значений:

  • Модель говорит, что банку не следует предоставлять заем клиенту. Если банк обязан объяснять причины отказа, SHAP-значения могут помочь.
  • Поставщик медицинских услуг хочет определить, какие факторы влияют на риск заболевания у пациента, чтобы напрямую устранить эти факторы риска с помощью целенаправленных медицинских вмешательств.

Больше о SHAP вы узнаете из этого урока.

Dalex

Название расшифровывается как Descriptive Machine Learning Explanations (описательное объяснение машинного обучения). Это пакет R, основная цель которого – интерпретация моделей. 

Объяснение моделей ML становится всё более важной задачей. Данный пакет позволяет лучше представить, как работает ваш алгоритм и по какому принципу строятся его прогнозы.

При помощи Dalex удобно проводить сравнения моделей. Несколько преимуществ этого инструмента:

  • в нём используется уникальный и интуитивно понятный подход к интерпретации результатов;
  • он может приводить результаты предсказаний к нужному формату;
  • предоставляет средства для удобного сравнения результатов.

Чтобы узнать о Dalex побольше, зайдите на официальную страницу в GitHub.

4. Отладка

Uber Manifold

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

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

Manifold способен обрабатывать большинство моделей машинного обучения, в том числе – большую часть моделей классификации и регрессии.

Больше о Uber Manifold – на официальной странице.

5. Оценивание производительности моделей

MLPerf 

Сейчас MLPerf становится главным помощником для экспериментов в области машинного обучения, если сравнивать его с различной специализированной инфраструктурой или фреймворками. Он используется для оценки показателей аппаратного и программного обеспечения, связанного с ML.

MLPerf служит как коммерческим организациям, так и научно-исследовательским институтам для обеспечения надёжных результатов, ускорения прогресса в области ML и стимулирования инноваций для улучшения современного машинного обучения.

Подробнее о MLPerf – в этой вводной статье.

6. Наблюдение за экспериментами

Neptune

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

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

Также позволяет хранить, обновлять и анализировать большие объёмы данных.

Больше о Neptune вы узнаете на веб-сайте.

WandB 

WandB (Weights and Biases – веса и смещения) – пакет Python, позволяющий отслеживать процесс обучения в реальном времени. Без проблем взаимодействует с популярными фреймворками, такими как Pytorch, Keras, and Tensorflow. 

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

Больше информации о WandB вы найдёте в этой вводной статье.

Comet

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

Больше о Comet – в официальной документации.

MLflow 

Open-source платформа для отслеживания экспериментов по машинному обучению, а также для развёртывания моделей. Каждый элемент представляет собой определённый компонент MLflow: наблюдение, проекты и модели. 

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

MLflow обеспечивает работу в масштабах от одного человека до крупной организации, но лучше всего подходит для отдельного пользователя.

Чтобы больше узнать о MLflow, загляните в официальную документацию.

7. Мониторинг продакшена

Kubeflow

Kubeflow облегчает деплой моделей машинного обучения. Он известен как набор инструментов машинного обучения в Kubernetes и нацелен на использование его потенциала для облегчения масштабирования моделей ML.

Команда Kubeflow постоянно совершенствует его функции, стараясь сделать работу data scientist’ов как можно проще.

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

Больше о Kubeflow вы найдёте в официальной документации.

Заключение

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

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

Удачи вам!

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here