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

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

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

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

Выбор байесовской модели (BMS)

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

Здесь P (M | D) - апостериорная вероятность модели M с учетом данных D, P (D | M) - свидетельство для модели M, P (M) - предварительные знания о модели M, а P ( D) - нормирующий коэффициент. Когда у нас есть две конкурирующие модели, мы можем сравнить их апостериорную вероятность как,

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

Это уравнение по своей конструкции пытается оптимизировать компромисс смещения и дисперсии. Он вознаграждает низкую RMSE модели (среднеквадратичную ошибку) первым членом и штрафует сложность модели вторым членом. Более того, чем больше у нас будет данных, тем больше у нас будет свидетельств о модели. Теперь все сводится к вычислению приведенной выше формулы для каждой модели линейной регрессии и выбору модели с наименьшим BIC.

Выбор байесовской модели как метод уменьшения признаков

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

Давайте сначала загрузим данные:

Теперь создайте фрейм данных pandas из данных:

Чтобы упростить нашу задачу выбора модели, я написал код для ее выполнения, который использует sklearn для построения моделей. Код для запуска этого примера можно найти в моем репозитории GitHub (Байесовская структура).

С помощью приведенного выше кода сначала мы построим зоопарк моделей (который содержит информацию обо всех моделях):

Запуск приведенного выше фрагмента кода покажет следующий график в графическом интерфейсе matplotlib:

В качестве альтернативы мы можем напрямую выбрать лучшую модель, используя следующий код:

На консоли будет напечатан следующий вывод:

Итак, на основе нашего подхода к выбору модели мы определили, что 5 из 10 характеристик являются наиболее важным набором дескрипторов, а именно: sex, bmi, bp, s3 и s5. Как и ожидалось, наша модель предполагает, что пол, ИМТ и артериальное давление являются наиболее важными факторами, определяющими диабет у человека, что согласуется с нашим интуитивным знанием.

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