МЛР

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
(См. также)
(Перенаправление на Многомерная линейная регрессия)
 
(7 промежуточных версий не показаны.)
Строка 1: Строка 1:
-
{{Задание|Касперский Иван|Константин Воронцов|{{дата|6|1|2009}}, а сейчас уже {{дата}}}}
+
#REDIRECT [[Многомерная линейная регрессия]]
-
Многомерная линейная регрессия — это [[линейная регрессия]] в n-мерном пространстве.
+
-
== Многомерная линейная регрессия ==
+
-
Имеется множество объектов <tex>X = \mathbb{R} ^n</tex> и множество ответов <tex>Y = \mathbb{R}</tex>. Также имеется набор <tex>n</tex> вещественнозначных признаков <tex>f_j(x), \ j=1, \ \ldots , \ n</tex>. Введём матричные обозначения: матрицу информации <tex>F</tex>, целевой вектор <tex>y</tex>, вектор параметров <tex>\alpha</tex> и диагональную матрицу весов:
+
-
:<tex>F=\(f_1\ \dots\ f_n\)\;,\ \ f_i=\(f_i(x_1)<br>\ \vdots<br>f_i(x_l)\)\;, \ \ y=\(y_1<br>\ \vdots<br>y_l\)\;, \ \ \ \alpha=\(\alpha_1<br>\ \vdots<br>\alpha_n\)\ ,\ \ W=diag(\sqrt{\lambda _1},\ \ldots,\ \sqrt{\lambda _l})</tex>
+
-
 
+
-
Алгоритм:
+
-
:<tex>a(x)\ =\ \sum_{j=1}^n\alpha_jf_j(x)\ =\ F\alpha</tex>.
+
-
 
+
-
Оценим качество его работы на выборке <tex>X^l = (x_i,\ y_i)_{i=1}^l \in X*Y</tex> [[Метод наименьших квадратов| методом наименьших квадратов]]:
+
-
:<tex>Q(\alpha, X^l)\ =\ \sum_{i=1}^lw_i(a(x_i) - y_i)^2 \rightarrow \min_{\alpha \in \mathbb{R}^n}</tex>, или, в матричных обозначениях,<br />
+
-
:<tex>Q(\alpha)\ =\ \parallel W(F\alpha\ -\ y)\parallel^2 \rightarrow \min_{\alpha \in \mathbb{R}^n}</tex>.
+
-
 
+
-
Задача с произвольной матрицей весов легко приводится к единичной матрице весов заменой <tex>F' = WF\ ,\ y' = Wy\ </tex>:
+
-
:<tex>Q(\alpha)\ =\ \parallel F'\alpha\ -\ y'\parallel^2\ =\ (F'\alpha\ -\ y')^\top(F'\alpha\ -\ y')</tex>.
+
-
 
+
-
Таким образом, в дальнейшем будем рассматривать только задачу с единичными весами.
+
-
 
+
-
Найдём минимум <tex>Q(\alpha)</tex> по ''α'':
+
-
:<tex>\frac{\partial Q (\alpha)}{\partial \alpha} = 2 F^T (F\alpha - y) = 0\ \Rightarrow\ (F^TF)\alpha = F^Ty</tex>.<br />
+
-
Если <tex>rank(F^TF) = n</tex>, то можно обращать матрицу <tex>F^TF\ \text{:}\ \alpha^* = (F^TF)^{-1}F^Ty = F^+y</tex>, где введено обозначение <tex>F^+ = (F^TF)^{-1}F^T</tex>.
+
-
 
+
-
 
+
-
В таком случае функционал качества записывается в более удобной форме:<br />
+
-
:<tex>Q(\alpha^*) = \parallel F(F^TF)^{-1}F^Ty - y \parallel ^2 = \parallel P_{_F}y - y \parallel^2</tex>, где <tex>P_F</tex> &mdash; проекционная матрица:<br />
+
-
<tex>P_{_F} y</tex> — вектор, являющийся проекцией <tex>y</tex> на <tex>\mathfrak{L}(f_1,\ \dots,\ f_n)</tex>.<br />
+
-
{{бледно|<small>как нарисовать значок проекционной матрицы, чтобы его можно было отличить от того, на что матрица умножается?!</small>}}
+
-
 
+
-
Теперь рассмотрим [[сингулярное разложение]] матрицы F:<br />
+
-
:<tex>F\ =\ VDU^T</tex>.
+
-
В таких обозначениях:<br />
+
-
:<tex>F^+\ =\ (F^TF)^{-1}F^T\ =\ (UDV^TVDU^T)^{-1}UDV^T\ =\ (UDDU^T)^{-1}UDV^T\ =\ U^{-T}D^{-2}U^{-1}UDV^T\ =\ U^{-T}D^{-2}DV^T</tex>, а так как <tex>U^{-1}\ =\ U^T</tex>, то <tex>F^+\ =\ UD^{-1}V^T\ =\ \sum_{j=1}^{n}{ \frac{1}{\sqrt{\lambda _j}}u_j v_j^T }</tex> в силу диагональности матрицы ''D''.
+
-
 
+
-
А решение метода наименьших квадратов запишется в следующем виде:<br />
+
-
:<tex>\alpha ^*\ =\ F^+y\ =\ \sum_{j=1}^{n} \frac1{\sqrt{\alpha _j}} u_j(v_j^T,\ y);</tex><br />
+
-
А так как <tex>\parallel \alpha \parallel^2 \ =\ \alpha ^T \alpha</tex>, то <br />
+
-
:<tex>\parallel \alpha ^*\parallel^2 \ =\ \parallel UD^{-1}V^Ty \parallel^2 \ =\ y^TVD^{-T}U^TUD^{-1}V^Ty\ =\ y^TVD^{-2}V^Ty\ =\ \parallel D^{-1}V^Ty \parallel^2\ =\ \sum_{j=1}^{n} \frac1{\alpha _j} (v_j^T,\ y)^2.</tex>
+
-
 
+
-
==Проблемы==
+
-
===Мультиколлинеарность===
+
-
Основной проблемой многомерной линейной регресии является вырожденность, или, в более общем случае, [[мультиколлинеарность]] матрицы F<sup>T</sup>F, которую приходится обращать. Подобные проблемы возникают, когда среди признаков f<sub>j</sub>(x) есть почти линейно зависимые.<br />
+
-
Мультиколлинеарность матрицы определяется её ''числом обусловленности'':
+
-
:<tex>\mu (F^TF)\ =\ \parallel F^TF \parallel * \parallel (F^TF)^{-1} \parallel \ =\ \frac{\lambda _{max}}{\lambda _{min}}</tex>, где λ &mdash; собственные значения матрицы F<sup>T</sup>F.
+
-
 
+
-
Чем больше число обусловленности, тем ближе матрица F<sup>T</sup>F к вырожденной и тем неустойчивее обратная к ней матрица. Плохая обусловленность матрицы: λ<sub>min</sub> << λ<sub>max</sub>. Матрицу принято считать плохо обусловленной, если её число обусловленности превышает 10<sup>3</sup>...10<sup>6</sup>.
+
-
 
+
-
Последствия:<br />
+
-
# Разброс значений α<sub>j</sub>. Появляются большие положительные и большие отрицательные коэффициенты α<sub>j</sub>. По абсолютной величине коэффициента становится невозможно судить о степени важности признака f<sub>j</sub> . Коэффициенты утрачивают интерпретируемость.
+
-
# Неустойчивость решения α* при (кажущейся) устойчивости Fα*. Малые изменения данных, например, шум или добавление нового объекта, могут сильно изменить вектор коэффициентов.
+
-
# Отсюда следует опасность переобучения, так как снижается обобщающая способность алгоритма.
+
-
 
+
-
Для борьбы с мультиколлинеарностью применяются существуют методы:
+
-
# ''[[Регуляризация]]''. Накладываются дополнительные ограничения на норму вектора коэффициентов α. Примером могут служить [[гребневая регрессия]] или [[Лассо Тибширани|L<sub>1</sub>-регуляризация]])
+
-
# ''Преобразование признаков''. Исходные n признаков с помощью некоторых преобразований переводятся в меньшее число m новых признаков. В частности, линейные преобразования приводят к [[метод главных компонент|методу главных компонент]].
+
-
 
+
-
===Разный масштаб признаков===
+
-
Другой важной проблемой многомерной линейной регрессии является разнородность признаков. Если машстабы измерений признаков существенно (на несколько порядков) различаются, то появляется опасноcть, что будут учитываться только "крупномасштабные" признаки. Чтобы этого избежать, делается ''стандартизация'' матрицы F:<br />
+
-
:<tex>f_{ij}\ =\ (f_{ij} - \overline{f_j})/{\sigma _j},\ j=1...n,\ i=1...l</tex>,<br />
+
-
где <tex>\overline{f_j}=\frac1l \sum_{i=1}^{l}f_{ij}</tex> &mdash; выборочное среднее, а <tex>\sigma _j^2=\frac1l \sum_{i=1}^{l}(f_{ij}\ -\ \overline{f_j})^2</tex> &mdash; выборочная дисперсия. При этом после стандартизации исходных данных то же самое преобразование необходимо будет применять ко всем объектам, подаваемым на вход алгоритма α*(x) = f(x, α*). Также следует отметить, что ковариационная матрица F<sup>T</sup>F после стандартизации становится корреляционной матрицей.
+
-
 
+
-
==См. также==
+
-
[[Регрессия]]<br />
+
-
[[Метод главных компонент]]<br />
+
-
[[Гребневая регрессия]]<br />
+
-
[[Сингулярное разложение]]
+

Текущая версия

  1. REDIRECT Многомерная линейная регрессия
Личные инструменты