Изменения

Перейти к: навигация, поиск

Линейная регрессия

1066 байт убрано, 18:17, 19 марта 2019
Нет описания правки
==== Дано ====
* <tex> f_1(x), \dots ,f_n(x) </tex> - числовые признаки
* модель многомерной линейной регрессии: <br> <tex> f(x,\alpha) = \sum\limits_{j=1}^n \alpha_j f_j(x) </tex>, <br> где <tex> a \in R^n </tex>
* обучающая выборка: множество из пар <tex>(x_i, y_i)_{i=1 \dots n}</tex>
* <tex> x_i </tex> - объекты из множества <tex> X = R^n </tex>* <tex> y_i </tex> - объекты из множества <tex> X = R </tex>
==== Матричные обозначения ====
, где
* <tex> F </tex> - матрица объектов-признаков, где строки соответствуют объектам а столбцы - признакам* <tex> y </tex> - вектор ответов, или целевой вектор* <tex> \alpha </tex> - вектор коэффициентов
==== Постановка задачи ====
<tex> F^T F \alpha = F^T y </tex>,
где <tex> F^T F - n \times n </tex> матрица
Мы получили систему уравнений, откуда можем выразить искомый вектор <tex> \alpha </tex>.
<tex> \alpha^* = (F^T F)^{-1} F^T y = F^+ y </tex>, <br> где <tex> F^+ </tex> — псевдо-обратная матрица.
Значение функционала: <tex> Q(\alpha^*) = ||P_F y - y||^2 </tex>, <br> где <tex> P_F = F F^+ = F (F^T F)^{-1} F^T </tex> - ''проекционная матрица''
==== Проблемы ====
Если же столбцы матрицы <tex> F </tex> почти линейно-зависимы, то у нас возникнет масса вычислительных проблем с обращением этой матрицы.
=== Сингулярное Решение МНК через сингулярное разложение ===
Воспользуемся понятием [https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5_%D1%80%D0%B0%D0%B7%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5/ [ Сингулярное разложение | сингулярного разложения ]], которое позволяет произвольную прямоугольную матрицу представить в виде произведения трех матриц:
<tex> F = V D U^T </tex>.
 
Основные свойства сингулярного разложения:
 
* <tex> l \times n </tex>-матрица <tex> V = (v_1, \dots, v_n) </tex> ортогональна, <tex> V^T V = I_n </tex>, <br> столбцы <tex> v_j </tex> — собственные векторы матрицы <tex> F F^T </tex>;
* <tex> n \times n </tex>-матрица <tex> U = (u_1, \dots, u_n) </tex> ортогональна, <tex> U^T U = I_n </tex>, <br> столбцы <tex> u_j </tex> — собственные векторы матриц <tex> F^T F </tex>;
* <tex> n \times n </tex>-матрица <tex> D </tex> диагональна, <tex> D = diag(\sqrt{\lambda_1}, \dots, \sqrt{\lambda_n}) </tex>, <br> <tex> \lambda_j \geq 0 </tex> — собственные значения матриц <tex> F^T F </tex> и <tex> F F^T </tex>, <br> <tex> \sqrt{ \lambda_j } </tex> — сингулярные числа матрицы <tex> F </tex>.
 
=== Решение МНК через сингулярное разложение ===
Найдем псевдо-обратную матрицу: <br> <tex> F^+ = (U D V^T V D U^T)^{-1} U D V^T = U D^{-1} V^T = \sum\limits_{j=1}^n \frac{ 1 }{ \sqrt{ \lambda_j } } u_j v_j^T </tex>.
* [[Логистическая регрессия]]
* [[Обзор библиотек для машинного обучения на Python]]
* [[Переобучение]]
==Источники информации==
Анонимный участник

Навигация