Перейти к содержимому

Более сложное приближение, но та же проекция

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

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

В школе у нас была классическая формула прямой:

y=kx+by = kx +b

Где k - коэффициент наклона прямой, а b - смещение

Но интерпретировать эту прямую можно как зависимость y от x (собственно, это определение функции)

Если у нас есть какой-то набор точек на плоскости, то y = kx + b - попытка приблизить зависимость данных прямой

На фото представлено несколько точек

Попробуем воспользоваться методом наименьших квадратов и приблизить зависимость координаты y от x у этих точек методом наименьших квадратов

Возьмём в качестве векторов столбцов измерения x и просто единичный вектор (это для подбора так же свободного члена b)

В данном случае у нас размерность пространства равна 7 (так как точек 7), а размерность подпространства, на которое мы будем проецировать равна 2 (так как два выбранных вектора - это как раз базис подпространства)

Получив ответ мы получим коэффициенты k и b для прямой

На фото видна данная прямая:

В целом, эта прямая достаточно неплохо приближает данные

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

y=k1x1+k2x2++knxn+by = k_1x_1 + k_2x_2 + \dots+k_nx_n + b

Но прямая далеко не всегда является оптимальным вариантом приближения данных

Самый простой способ расширить варианты кривых, которыми мы можем приближать - полиномы (многочлены)

В нашем примере достаточно добавить вторую степерь:

y=k1x+k2x2+by = k_1x + k_2x^2 + b

Но это уже нелинейно

Как же оставить наше геометрическое решение через проекцию в линейном пространстве?

Нужно всего лишь добавить как ещё один столбец (базовый вектор подпространства) вектор из степеней

То есть, если у нас были измерения какого-то параметра (1, 2, 5, 6), то кроме него так же стоит добавить в качестве вектора (1, 4, 25, 36)

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

Если проделать данную операцию с нашим примером выйдет то, что на фото:

Видно, что приближение получилось более точным, а значит задача решена лучше

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

Как пример, на фото те же точки, но приближенные многочленом 10-й степени

Вроде кажется, что полином идеально проходит через все точки

Но главная задача нашего приближения - предсказательная сила

Сделать так, чтобы мы по входным данным могли получить приближённые выходные

И если задачу воспринимать так, то 10-я степень сработала хуже, чем вторая

Очень вряд ли именно такая зависимость у данных, слишком непонятные переходы между точками

Данный эффект называется **переобучение,**когда модель становится настолько подогнана к конкретным экспериментальным данным, что перестаёт отражать реальные зависимости

Поэтому, всегда нужно задумываться, какую степень регрессии выбирать