Введение в многомерные сплайны адаптивной регрессии


Когда связь между набором переменных-предикторов и переменной ответа является линейной, мы часто можем использовать линейную регрессию , которая предполагает, что связь между данной переменной-предиктором и переменной ответа принимает форму:

Y = β 0 + β 1 X + ε

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

Одним из способов учета нелинейной связи между предиктором и переменной отклика является использование полиномиальной регрессии , которая принимает форму:

Y = β 0 + β 1 X + β 2 X 2 + … + β h

В этом уравнении h называется «степенью» многочлена. Когда мы увеличиваем значение h , модель становится более гибкой и способна адаптироваться к нелинейным данным.

Однако полиномиальная регрессия имеет некоторые недостатки:

1. Полиномиальная регрессия может легко переобучить набор данных, если степень h выбрана слишком большой. На практике h редко превышает 3 или 4, поскольку после этого значения он просто соответствует шуму обучающего набора и плохо обобщает невидимые данные.

2. Полиномиальная регрессия налагает глобальную функцию на весь набор данных, которая не всегда точна.

Альтернативой полиномиальной регрессии являются сплайны многомерной адаптивной регрессии .

Основная идея

Сплайны многомерной адаптивной регрессии работают следующим образом:

1. Разделите набор данных на k частей.

Сначала мы разделяем набор данных на k различных элементов. Точки, по которым мы разделяем набор данных, называются узлами .

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

Как только мы определим первый узел, мы повторяем процесс, чтобы найти дополнительные узлы. Вы можете найти столько узлов, сколько считаете целесообразным для начала.

2. Подобрать функцию регрессии к каждой части, чтобы сформировать шарнирную функцию.

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

Например, шарнирная функция для модели с одним узлом может быть такой:

  • y = β 0 + β 1 (4,3 – x), если x < 4,3
  • y = β 0 + β 1 (x – 4,3), если x > 4,3

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

Шарнирная функция с двумя узлами может быть следующей:

  • y = β 0 + β 1 (4,3 – x), если x < 4,3
  • y = β 0 + β 1 (x – 4,3), если x > 4,3 и x < 6,7
  • y = β 0 + β 1 (6,7 – x), если x > 6,7

При этом было определено, что выбор 4,3 и 6,7 в качестве пороговых значений позволяет максимально снизить ошибку среди всех возможных пороговых значений. Затем мы подгоняем одну модель регрессии к значениям ниже 4,3, другую модель регрессии к значениям от 4,3 до 6,7 и еще одну модель регрессии к значениям выше 4,3.

3. Выберите k на основе k-кратной перекрестной проверки.

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

Модель с наименьшим тестом MSE выбирается как модель, которая лучше всего обобщает новые данные.

Преимущества и недостатки

Сплайны многомерной адаптивной регрессии имеют следующие преимущества и недостатки:

Преимущества :

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

Недостатки:

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

Как подогнать модели MARS в R & Python

В следующих руководствах представлены пошаговые примеры того, как подогнать сплайны многомерной адаптивной регрессии (MARS) в R и Python:

Сплайны многомерной адаптивной регрессии в R
Сплайны многомерной адаптивной регрессии в Python

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *