Машинное обучение и глубокое обучение — это две отрасли искусственного интеллекта, которые используют алгоритмы для автоматизации определенных задач аналогично тому, как это делают люди. Часто эти методы широко используются для разработки автоматизированных алгоритмов. Эти алгоритмы обучаются на основе данных для выполнения различных задач (таких как классификация, регрессия, кластеризация, ассоциативное решение и т. д.).

Следовательно, как разработчику ML, нам необходимо позаботиться о следующих задачах:

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

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

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

Но что, если бы я сказал, что эту работу можно автоматизировать и существует всего одна строка кода, способная выполнить всю эту работу? Это звучит так здорово и завораживающе!! , верно? Что ж, тогда вы попали по адресу.

Я чувствую, что сейчас самое время познакомить вас с AutoLogging-ML, модулем на основе Python, разработанным мной (да, вы правильно поняли!!). Эта библиотека автоматически обучает различные алгоритмы машинного обучения и генерирует таблицу, отображающую результаты моделей в наборах обучения и проверки. Этот модуль поддерживает задачи классификации и регрессии. В модуле присутствует пять различных функций.

  • Тренируйтесь и записывайтесь для классификации
  • Тренируйтесь и регистрируйте регрессию
  • Постройте метрические графики для классификации
  • Постройте графики показателей для регрессии
  • Постройте матрицу путаницы

Для классификации поездов и журналов все классификаторы обучаются на наборах данных, а результаты (точность, точность, полнота, F1) записываются в фрейм данных, который отображается пользователю. Эта функция применяет около 12 различных алгоритмов классификации, как указано ниже: - 'svm-linear' 'svm-rbf' 'svm-poly' 'knn' 'наивный Байес' 'дерево решений' 'случайный лес' 'adaboost' 'повышение градиента' 'xgboost' 'логистическая регрессия' 'классификатор упаковки'.

Для функции «Получить матрицу путаницы» матрицы путаницы для всех алгоритмов классификации в указанном наборе (обучение/проверка)

Для функции «Показать графики показателей» строится гистограмма для сравнительного анализа алгоритмов классификации по указанной метрике и по указанному подмножеству.

Для регрессии обучения и регистрации все регрессоры обучаются на наборах данных, а результаты (mae, mse, msle, медианная ошибка, карта, максимальная ошибка) записываются в кадр данных, который отображается пользователю. Эта функция применяет около 11 различных алгоритмов регрессии, как указано ниже: - «линейная регрессия» «sgd-регрессия» «гребневая регрессия» «эластичная сеть» «регрессия дерева решений» «регрессия случайного леса» «регрессия adaboost» «регрессия градиентного повышения» «xgboost» регрессия' 'регрессия упаковки' 'регрессия с усилением градиента'.

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

Данные были стандартизированы, а целевая переменная была отделена от входных объектов. Данные были разделены на наборы обучения и проверки с использованием функции разделения тестов поездов sklearn. Теперь набор данных можно использовать для модуля.

Модуль установлен и из модуля вызывается библиотека. Затем из импортированной библиотеки была вызвана функция train and log для классификации. Это выполнение заняло всего 1 секунду!! В течение этой секунды выполняется обучение 11 алгоритмов ML, а результаты сохраняются в кадре данных. На изображении ниже показан кадр данных для обученных алгоритмов.

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

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

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

СПАСИБО,

САЙРАМ АДИТЬЯ

Ссылка на документациюhttps://pypi.org/project/AutoLogging-ML/

Ссылка на блокнотhttps://www.kaggle.com/code/vuppalaadithyasairam/autologger-ml-library-usage-for-classification