|
|
(22 промежуточные версии не показаны) |
Строка 1: |
Строка 1: |
- | {{Задание|Касперский Иван|Константин Воронцов|{{дата|6|1|2009}}, а сейчас {{дата}}}}
| + | #REDIRECT [[Многомерная линейная регрессия]] |
- | == Многомерная линейная регрессия ==
| + | |
- | Имеется множество объектов <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\)\ .</tex>
| + | |
- | | + | |
- | Алгоритм:
| + | |
- | :<tex>a(x) = \sum_{j=1}^n\alpha_jf_j(x)</tex>.
| + | |
- | | + | |
- | Оценим качество его работы на выборке <tex>X^l = (x_i,\ y_i)_{i=1}^l \in X*Y</tex> [[Метод наименьших квадратов| методом наименьших квадратов]]:
| + | |
- | :<tex>Q(\alpha, X^l) = \sum_{i=1}^l(a(x_i) - y_i)^2 \rightarrow \min_{\alpha \in \mathbb{R}^n}</tex>, или, в матричных обозначениях,<br />
| + | |
- | :<tex>Q(\alpha)\ =\ \parallel (F\alpha\ -\ y)\parallel^2 \rightarrow \min_{\alpha \in \mathbb{R}^n}</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> — проекционная матрица:<br />
| + | |
- | <tex>P_{_F} y</tex> — вектор, являющийся проекцией <tex>y</tex> на <tex>\mathfrak{L}(f_1,\ \dots,\ f_n)</tex>.<br />
| + | |
- | {{бледно|<small>как нарисовать значок проекционной матрицы, чтобы его можно было отличить от того, на что матрица умножается?!</small>}}
| + | |
- | | + | |
- | == Сингулярное разложение ==
| + | |
- | Пусть <tex>F_{l \mathrm{*} n}:\ rank(F) = n;\ l \ge n</tex>, тогда F представима в виде <tex>F = VDU^T</tex>, где:
| + | |
- | # <tex>D = diag(\sqrt{\lambda _1},\ \dots,\ \sqrt{\lambda _n}),\ \lambda _j</tex> — собственные значения матрицы <tex>F^TF,\ \lambda _j \ >\ 0, j=1,\ \dots,\ n</tex>.<ref>Или, что то же самое, ненулевые собственные значения матрицы <tex>FF^T</tex>.</ref>
| + | |
- | # <tex>V = (v_1,\ \ldots,\ v_n),\ v_i</tex> — собственные вектора <tex>FF^T</tex>, причём <tex>V^TV = I_n</tex>.
| + | |
- | # <tex>U = (u_1,\ \ldots,\ u_n),\ u_i</tex> — собственные вектора <tex>F^TF</tex>, причём <tex>U^TU = I_n</tex>.
| + | |
- | | + | |
- | <references/>
| + | |