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

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

АБСТРАКТНЫЙ

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

ВВЕДЕНИЕ

В нашем проекте под названием ML On Click мы попытались внедрить идею, описанную в аннотации. В этой статье вводятся понятия, используемые в:

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

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

ИССЛЕДОВАНИЯ И ДОКУМЕНТАЦИЯ

СУЩЕСТВУЮЩИЕ МЕТОДЫ

Обсуждаемая здесь постановка проблемы была в определенной степени решена крупными технологическими фирмами, такими как Microsoft, Google и Amazon; однако за это приходится платить. Это понятно, поскольку качество обработки, настройки и масштабируемости, предлагаемые этими программными решениями, достойны похвалы и надежности.
Большинство этих решений доступны на облачной платформе, и их можно легко использовать для крупномасштабных задач и автоматизации.

НАШ ПРЕДЛАГАЕМЫЙ МЕТОД

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

  1. Загрузите набор данных в соответствующем формате файла во временную память приложения
    o Подходящие форматы файлов включают «.csv» и «.txt»
    o Размер файла около 200 МБ может быть обработан до сих пор
  2. Отображение первых 10 строк данных в табличном формате
    o Это позволяет пользователю понять набор данных и распознать, какие значения содержатся в нем.
  3. Запустите проверку набора данных, чтобы подсчитать «пустые» или «не числовые» или отсутствующие значения
    o Если количество отсутствующих значений в столбце таблицы превышает одну треть размера столбца, пометьте столбец как «Не рекомендуется»
    o Если данные в столбце не всегда относятся к одному и тому же типу, пометьте столбец как «Не рекомендуется»
    o Если существует строка с 50% или более отсутствующими значениями столбца, пометить строку для удаления
    o Если набор данных содержит более 30% отсутствующих значений ячеек, уведомить пользователя о низком качестве данных
    o Если набор данных проходит все вышеупомянутые тесты, отобразить список «Рекомендуемых» столбцов пользователю
  4. Попросить пользователя выбрать целевую переменную для машинного обучения
    o Из списка всех столбцов, даже если это не рекомендуется.
    o Для моделей предикторов и классификаторов необходимо выбрать одну целевую переменную.
  5. Попросите пользователя выбрать независимую(ые) переменную(и)
    o Должна быть выбрана хотя бы одна. Допускается множественный выбор и изменение моделей, применимых к выбранным данным.
  6. В зависимости от выбора переменных проведите визуализацию выбранных данных методом грубой силы
    o Этому способствует библиотека Python Seaborn и использование той же функции PairPlot для получения подробного графика рассеяния или распределения всех выбранных данных. точки
    o Используя эту визуализацию, пользователь может распознавать закономерности отношений в данных, находить выбросы и тенденции и решать, какая модель лучше всего подходит для этого набора данных
    o Одним из ограничений является то, что никакие автоматические действия не могут быть выполнены. взятых на визуализированных данных еще. После обнаружения выброса пользователь должен проанализировать причину аномалии и очистить данные вручную.
  7. Как только пользователь решит, какую модель использовать, обработайте выбранные данные с помощью алгоритма
    Можно ввести некоторые средства автоматизации для настройки гиперпараметров:
    i. Сетка Поиск наилучшего значения «α» и степени полинома в полиномиальной регрессии
    ii. Устранение обратных признаков на основе теста χ2 на размерность и параметрическое сокращение в логистической регрессии путем оценки p-значений
  8. Если какой-либо из процессов дает сбой, уведомите об этом пользователя, но продолжайте обучение модели машинного обучения без сбойной функции.
  9. После обучения модели протестируйте модель на тестовых данных
    o Если точность модели превышает 70 %, сделайте ее доступной для загрузки пользователю в виде файла .pkl с помощью библиотеки Python Pickle.< br /> o Если точность модели ниже 70 %, не позволяйте пользователю загружать данные, так как это может привести к ложным прогнозам или аномалиям при использовании
    o Показать визуализацию производительности модели
    - При использовании модели классификации отобразите аннотированную тепловую карту матрицы путаницы с использованием библиотеки Seaborn вместе с библиотекой SciKit Learn. br /> — при использовании полиномиальной модели отобразите график распределения, демонстрирующий, насколько близки/далеки прогнозы от фактического распределения.

ОБСУЖДЕНИЕ

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

ЗАКЛЮЧЕНИЕ

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

ИСПОЛЬЗУЕМЫЕ ТЕХНОЛОГИИ И ИНСТРУМЕНТЫ

  1. питон
  2. Streamlit — API, модуль и облачный сервис
  3. Матплотлиб
  4. Сиборн
  5. Панды
  6. NumPy
  7. SciKit Узнайте
  8. Статистические модели — API и модуль
  9. Совместная работа Google
  10. GitHub — контроль версий и развертывание
  11. Код Visual Studio — редактор

Спасибо!

Спасибо за терпеливое чтение!

Больше подобных статей ищите на моей странице в Medium, здесь!

Если вы хотите связаться, найдите меня в моих соцсетях, здесь!