Частичная автоматизация выбора данных, визуализации данных и построения моделей машинного обучения с использованием Python
Недавно один из моих учителей предложил мне задокументировать процедуру проекта, над которым мы с друзьями работаем. Эта статья резюмирует то же самое, что и официальный отчет.
АБСТРАКТНЫЙ
Машинное обучение и наука о данных стали модными словечками за последние несколько лет, и вполне естественно проявлять любопытство и погружаться в эти концепции в качестве учащихся. Мы отправились в путь как группа исследователей, и в ходе нашего путешествия мы обнаружили, что получить набор навыков довольно сложно. Кроме того, широкий спектр машинного обучения и обработки данных требует тщательного программирования и многочасовых усилий для получения ценных результатов. Сколько времени мы могли бы сэкономить, автоматизировав некоторые из этих задач? Сколько стресса, путаницы и разочарования можно избежать, если мы избежим проблем, вызванных синтаксическими ошибками? Чтобы найти ответ на них и, возможно, предложить решение, мы решили придумать наш проект по частичной автоматизации процесса обработки данных и построения моделей машинного обучения.
ВВЕДЕНИЕ
В нашем проекте под названием ML On Click мы попытались внедрить идею, описанную в аннотации. В этой статье вводятся понятия, используемые в:
- Частичная автоматизация отбора данных
Его визуализация как в методах полного перебора, так и в методах тонкой настройки - Рекомендации по моделям машинного обучения на основе простых пороговых условий
- Предварительные загружаемые модели машинного обучения
Помимо этого, некоторые существующие методы выполнения этих требований также были упомянуты в рамках нашего исследования, после чего следует обсуждение того, чем это решение отличается от других.
В этом документе предлагается процедура, которой следует следовать для автоматизации из этих задач на широко используемом и известном языке — Python — и устанавливает определенные границы и ограничения, чтобы объяснить, как этот подход может быть улучшен в будущем.
ИССЛЕДОВАНИЯ И ДОКУМЕНТАЦИЯ
СУЩЕСТВУЮЩИЕ МЕТОДЫ
Обсуждаемая здесь постановка проблемы была в определенной степени решена крупными технологическими фирмами, такими как Microsoft, Google и Amazon; однако за это приходится платить. Это понятно, поскольку качество обработки, настройки и масштабируемости, предлагаемые этими программными решениями, достойны похвалы и надежности.
Большинство этих решений доступны на облачной платформе, и их можно легко использовать для крупномасштабных задач и автоматизации.
НАШ ПРЕДЛАГАЕМЫЙ МЕТОД
Мы разрабатываем решение, позволяющее сократить время, затрачиваемое на ввод повторяющегося кода, прохождение процесса оценки качества данных путем измерения количества непригодных для использования точек данных и визуализации точек данных для получения общего представления о наборе данных.
Мы делаем это, выполнив следующие шаги:
- Загрузите набор данных в соответствующем формате файла во временную память приложения
o Подходящие форматы файлов включают «.csv» и «.txt»
o Размер файла около 200 МБ может быть обработан до сих пор - Отображение первых 10 строк данных в табличном формате
o Это позволяет пользователю понять набор данных и распознать, какие значения содержатся в нем. - Запустите проверку набора данных, чтобы подсчитать «пустые» или «не числовые» или отсутствующие значения
o Если количество отсутствующих значений в столбце таблицы превышает одну треть размера столбца, пометьте столбец как «Не рекомендуется»
o Если данные в столбце не всегда относятся к одному и тому же типу, пометьте столбец как «Не рекомендуется»
o Если существует строка с 50% или более отсутствующими значениями столбца, пометить строку для удаления
o Если набор данных содержит более 30% отсутствующих значений ячеек, уведомить пользователя о низком качестве данных
o Если набор данных проходит все вышеупомянутые тесты, отобразить список «Рекомендуемых» столбцов пользователю - Попросить пользователя выбрать целевую переменную для машинного обучения
o Из списка всех столбцов, даже если это не рекомендуется.
o Для моделей предикторов и классификаторов необходимо выбрать одну целевую переменную. - Попросите пользователя выбрать независимую(ые) переменную(и)
o Должна быть выбрана хотя бы одна. Допускается множественный выбор и изменение моделей, применимых к выбранным данным. - В зависимости от выбора переменных проведите визуализацию выбранных данных методом грубой силы
o Этому способствует библиотека Python Seaborn и использование той же функции PairPlot для получения подробного графика рассеяния или распределения всех выбранных данных. точки
o Используя эту визуализацию, пользователь может распознавать закономерности отношений в данных, находить выбросы и тенденции и решать, какая модель лучше всего подходит для этого набора данных
o Одним из ограничений является то, что никакие автоматические действия не могут быть выполнены. взятых на визуализированных данных еще. После обнаружения выброса пользователь должен проанализировать причину аномалии и очистить данные вручную. - Как только пользователь решит, какую модель использовать, обработайте выбранные данные с помощью алгоритма
Можно ввести некоторые средства автоматизации для настройки гиперпараметров:
i. Сетка Поиск наилучшего значения «α» и степени полинома в полиномиальной регрессии
ii. Устранение обратных признаков на основе теста χ2 на размерность и параметрическое сокращение в логистической регрессии путем оценки p-значений - Если какой-либо из процессов дает сбой, уведомите об этом пользователя, но продолжайте обучение модели машинного обучения без сбойной функции.
- После обучения модели протестируйте модель на тестовых данных
o Если точность модели превышает 70 %, сделайте ее доступной для загрузки пользователю в виде файла .pkl с помощью библиотеки Python Pickle.< br /> o Если точность модели ниже 70 %, не позволяйте пользователю загружать данные, так как это может привести к ложным прогнозам или аномалиям при использовании
o Показать визуализацию производительности модели
- При использовании модели классификации отобразите аннотированную тепловую карту матрицы путаницы с использованием библиотеки Seaborn вместе с библиотекой SciKit Learn. br /> — при использовании полиномиальной модели отобразите график распределения, демонстрирующий, насколько близки/далеки прогнозы от фактического распределения.
ОБСУЖДЕНИЕ
Теперь мы понимаем процедуру частичной автоматизации процесса машинного обучения. Это решение, предложенное нами в нашем проекте, позволяет пользователю избежать написания сотен строк кода для повторяющихся задач, таких как работа над одними и теми же моделями. Это время можно использовать для анализа результатов визуализаций, предоставляемых этим приложением, а затем для понимания любых наблюдаемых аномалий.
Загружаемые модели машинного обучения можно интегрировать в среды Python с помощью самой библиотеки Pickle. отключение файла и использование его для прогнозирования данных без необходимости повторного обучения модели!
Точная настройка определенных гиперпараметров без необходимости настройки всей среды и кода для нее позволяет пользователю получить более производительную модель без переделывать основы.
ЗАКЛЮЧЕНИЕ
Этим проектом, документом и процедурной документацией мы хотим отметить наши шаги по поддержке компьютерного сообщества, внося свой вклад в него. Программное обеспечение с открытым исходным кодом — это то, что объединяет сообщество, предоставляя ценные ресурсы бесплатно, и наши усилия по воплощению в жизнь такого приложения ознаменуют наше стремление к росту как компьютерных ученых и инженеров. В этом проекте еще многое предстоит сделать, и начинающий разработчик сталкивается с такими сложными задачами на этапе обучения.
Мы надеемся, что это поможет нам и окружающим нас людям.
ИСПОЛЬЗУЕМЫЕ ТЕХНОЛОГИИ И ИНСТРУМЕНТЫ
- питон
- Streamlit — API, модуль и облачный сервис
- Матплотлиб
- Сиборн
- Панды
- NumPy
- SciKit Узнайте
- Статистические модели — API и модуль
- Совместная работа Google
- GitHub — контроль версий и развертывание
- Код Visual Studio — редактор
Спасибо!
Спасибо за терпеливое чтение!
Больше подобных статей ищите на моей странице в Medium, здесь!
Если вы хотите связаться, найдите меня в моих соцсетях, здесь!