Понимание базовых функций, сплайнов, функций сглаживания, а также

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

И я серьезно об этом

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

Давайте сначала начнем с уравнения линейной регрессии:

y = ax₁+ bx₂ + cx₃+ …+ zxₙ+ C

Теперь GAM выглядят примерно так

g(y) = w₁*F₁(x₁) + w₂*F₂(x₂) + w₃*F₃(x₃) …wₙ*Fₙ(xₙ) + C

Примечание. Как вы, должно быть, заметили, прогнозируется g(y), а не само y. Почему? давайте обсудим это в конце.

где w₁, w₂ … wₙ — веса

Что такое Fₙ?

Таким образом, это в основном набор функций, которые моделируют каждую переменную функции в целевую переменную отдельно, называемую функциями сглаживания. Позже все эти функции суммируются для предсказания g(y).

Хорошо, понял. Но каково математическое представление этого Fₙ?

Fₙ может принимать разные представления с учетом разных переменных признаков. Для одной характеристической переменной это может быть полиномиальное уравнение, для другой — радиальная базисная функция (РБФ)

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

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

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

Предположим, у нас есть fₓ = 5 + 2x²

Теперь, чтобы представить эту сложную нелинейную функцию, мы можем иметь следующий набор базисных функций: f₁(x)= 1, f₂(x)=x, f₃(x)= x²

Следовательно, fₓ = 5*f₁(x) + 0*f₂(x) + 2*f₃(x)

Может быть несколько типов базовых функций, таких как RBF (помните гиперпараметр ядра в SVM, сплайнах и т. д.).

Сплайны

Согласно Википедии, тип базисной функции. Сплайны — это функции, определяемые кусочно полиномами.

Кусочные полиномы? эааа

Таким образом, кусочные многочлены — это в основном многочлены, имеющие разные представления для разных интервалов используемых переменных. Требуется пример:

m*x+a → x<5

m*x+ n*x² → 5<x<10

p*x³ → x>10

В зависимости от различных интервалов X полиномиальное представление изменяется. Такой многочлен называется кусочным многочленом.

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

Степень 0: базисные функции = f(x) = 1

Степень 1: базисные функции = f(x)=1, f(x)=x

Степень 2: базисные функции = f(x)=1, f(x)=x, f(x)=x²

и так далее

Сплайны регрессии

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

Сделайте глубокий вдох и прочитайте последние 3 определения еще раз, чтобы не пропустить

Следовательно,

Fₙ(xₙ) = Σ wb(x)

Где

Fₙ = n-я функция сглаживания для n-го объекта (помните приведенное выше уравнение для GAM?)

bₖ = k-я базисная функция в случае регрессионного сплайна (поскольку регрессионный сплайн состоит из нескольких базисных функций)

Σₖ = сумма от k = 0 → общие базисные функции, используемые для представления взаимосвязи между переменной функции и целевой переменной.

Итак, наконец, уравнение GAM может выглядеть примерно так (в случае, если используются только сплайны регрессии)

g(y) = Σₖ wₖbₖ(x₁) + Σₘ wₘbₘ(x₂) + Σₙ wₙbₙ(xₙ) … + C

Где k, m и n — степени разных сплайнов, используемых для разных функций.

Прежде чем закончить, мы все еще остаемся с

Что такое г()? в уравнении GAM в начале

Почему мы предсказываем g(y) вместо самого y?

Объяснение берет свое начало в обобщенных линейных моделях (GLM). Поскольку связь между переменными признаков и целевыми переменными не является линейной, линейное уравнение, которое мы используем для линейной регрессии, требует некоторых модификаций для сопоставления целевых переменных с признаками. Иногда у нас могут быть нелинейные отношения, иногда нам может понадобиться обуздать цель в каком-то конкретном диапазоне и т. д. В этом случае вместо

y = ax₁+ bx₂ + cx₃+ …+ zxₙ+ C

Мы идем за

g(y) = ax₁+ bx₂ + cx₃+ …+ zxₙ+ C

Где g(y) называется функцией связи, которая удерживает целевую переменную в линейной связи с переменными признаков. Если вы заметили, название «Обобщенный» означает, что GAM могут обслуживать различные сценарии проблем регрессии, которые не соответствуют основным предположениям линейной регрессии, включая линейную регрессию. Это g() может быть любой функцией!!

Например, даже уравнение линейной регрессии можно смоделировать как GAM, где

  • Функция связи — это функция тождества.
  • Fₙ — функция тождества.

Следовательно,

g(y) = w₁*F₁(x₁) + w₂*F₂(x₂) + w₃*F₃(x₃) …wₙ*Fₙ(xₙ) + C

становится,

y = w₁x₁ + w₂x₂ + w₃x₃ …wₙxₙ

то есть уравнение линейной регрессии, если g(x)=x и Fₙ(x)=x.

У нас есть эта классная библиотека под названием pygam, предназначенная специально для реализации GAM, которая также имеет достаточную документацию для начала работы.

Хватит на сегодня математики, пора подводить итоги!!