Задача регрессии (аппроксимации)

Задача регрессии (аппроксимации)#

Пусть имеем конечный набор точек \(\left\{\left(x_i, y_i\right)\right\}_{i=1}^N\), причём \(x_i \in \mathbb{R}^\ell, y_i \in \mathbb{R}\).

Хотим найти функцию \(\check{y}\), наилучшим образом аппроксимирующий данный набор точек.

Простейший пример - провести прямую по точкам (см. картинку выше).

Сразу же возникает несколько поинтов к постановке задачи:


  • …, наилучшим образом … - нужен числовой критерий «качества» аппроксимации. Им, как правило, служит функция ошибки (Loss-function).


  • … функцию \(\check{y}\), …__ - перебрать все функции невозможно (мы тут не на матане), так что придётся сузить круг поиска на некотором семействе функций.

Семейства функций (модели)#

Как мы уже поняли, перебирать все функции мы не в силах из-за ограничений компьютера. Поэтому сузим наш круг поиска на какое-то семейство функций \(\check{y}(x) = g_\mathbf{w}(x)\) (модели), зависящих от какого-то вектора числовых параметров (весов модели) \(\mathbf{w} = (\text{w}_1, \text{w}_2, ..., \text{w}_m)^\top\).

Наша цель в данном контексте - найти особенный набор параметров \(\mathbf{w}^* = (\text{w}^*_1, \text{w}^*_2, ..., \text{w}^*_m)^\top\), который даёт наилучшую функцию \(g_{\mathbf{w}^*}(x)\) в контексте восстановления зависимости точек \(\left\{\left(x_i, y_i\right)\right\}_{i=1}^N\).

Это и будет наша наилучшая аппроксимация \(\check{y}^*(x) \stackrel{\text{def}}{=} g_{\mathbf{w}^*}(x)\).

Как выбирать семейства функций? Есть два главных подхода:

  • Из теории (наука) - знаем зависимость, вопрос в константах (их и «фиттим»).

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

  • Пример с многочленами

Пусть есть \(\left\{\left(x_i, y_i\right)\right\}_{i=1}^N\) - набор точек для «фита». Поищем аппроксимирующую функцию среди многочленов второй степени:

\[ g_\mathbf{w}(x) = \text{w}_1 \cdot x^2 + \text{w}_2 \cdot x + \text{w}_3 \]

Как видим, множество числовых параметров в данном случае просто вектор:

\[ \mathbf{w} = (\text{w}_1, \text{w}_2, \text{w}_3)^\top \in \mathbb{R}^3 \]

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

Hide code cell source
from bokeh.io import output_notebook
from bokeh.resources import INLINE
output_notebook(INLINE)
Loading BokehJS ...