Усовершенствования классических методов, разработка новых или усовершенствование методов предварительной обработки — один из множества разнообразных инструментов, расширяющих доступные инструменты машинного обучения.
Благодаря этим достижениям количество доступных вариантов для любой задачи увеличивается с каждым годом. По мере увеличения количества вариантов становится все труднее выбрать подходящий метод для конкретного набора данных. Ниже описывается быстрый и простой метод отбора наиболее эффективного алгоритма без какой-либо настройки.

Некоторые факты о вине

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

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

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

Создание рабочего процесса

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

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

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

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

При наличии всех компонентов производительность классификатора будет рассчитываться как roc AUC по набору тестовых данных. Кроме того, шаг уменьшения размерности будет необязательным.

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

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

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