Linear Algebra
https://betterexplained.com/articles/linear-algebra-guide/
https://www.youtube.com/watch?v=kjBOesZCoqc&list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab
https://graphicallinearalgebra.net/
http://parrt.cs.usfca.edu/doc/matrix-calculus/index.html
https://news.ycombinator.com/item?id=16267178
https://graphicallinearalgebra.net/
http://www2.imm.dtu.dk/pubdb/views/edoc_download.php/3274/pdf/imm3274.pdf
http://www.cs.nyu.edu/~roweis/notes/matrixid.pdf
https://news.ycombinator.com/item?id=14726223
https://news.ycombinator.com/item?id=14129306
https://www.youtube.com/watch?v=lkx2BJcnyxk&list=PLGAnmvB9m7zOBVCZBUUmSinFV0wEir2Vw&index=1
https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab
https://www.youtube.com/channel/UCtHp0WNe3OaSXAr1C_Oi0AQ/videos
http://setosa.io/ev/eigenvectors-and-eigenvalues/
https://habrahabr.ru/post/256275/
http://immersivemath.com/ila/index.html
http://blog.hackerearth.com/prerequisites-linear-algebra-machine-learning
http://blog.hackerearth.com/simple-tutorial-svm-parameter-tuning-python-r
Linear regression
https://habrahabr.ru/post/205428/
https://safwanahmad.github.io/2018/01/21/Linear-Regression-A-Tale-of-a-Transform.html
https://pythonspot.com/en/linear-regression/
https://habrahabr.ru/post/278513/
https://habrahabr.ru/post/279117/ with Python code
https://habrahabr.ru/post/195146/
https://habrahabr.ru/post/233059/
https://habrahabr.ru/company/ods/blog/322076/ пример линейной регрессии
https://habrahabr.ru/company/ods/blog/323890/
https://habrahabr.ru/post/173049/
GLM generic linear models
Classes
https://www.udemy.com/data-science-linear-regression-in-python/
https://www.coursera.org/learn/regression-models
https://habrahabr.ru/users/roman_kh/topics/
пусть есть несколько независимых случайных величин X1, X2, ..., Xn (предикторов) и зависящая от них величина Y (предполагается, что все необходимые преобразования предикторов уже сделаны). Более того, мы предполагаем, что зависимость линейная, а ошибки рапределены нормально, то есть
где I — единичная квадратная матрица размера n x n.
у нас есть данные, состоящие из k наблюдений величин Y и Xi и мы хотим оценить коэффициенты. Стандартным методом для нахождения оценок коэффициентов является метод наименьших квадратов. И аналитическое решение, которое можно получить, применив этот метод, выглядит так:
где b с крышкой — оценка вектора коэффициентов, y — вектор значений зависимой величины, а X — матрица размера k x n+1 (n — количество предикторов, k — количество наблюдений), у которой первый столбец состоит из единиц, второй — значения первого предиктора, третий — второго и так далее, а строки соответствуют имеющимся наблюдениям.
Регуляризация
Сложный функционал содержит регуляризацию, которая обычно представлена в виде дополнительного регуляризационного слагаемого: min ℒ(b) + λ ℱ(b), где ℒ(b) — функция потерь, ℱ(b) — регуляризационная функция, λ — параметр, задающий степень влияния регуляризации.
Регуляризация предназначена для регулирования сложности модели и ее целью является упрощение модели. Это, в частности, помогает бороться с переобучением и позволяет увеличить обобщающую способность модели.
Типичные примеры регуляризационных функций:
1. L1 = ∑ |b|
Известная как LASSO-регуляризация (Least Absolute Shrinkage and Selection Operator), и, как несложно догадаться из названия, она позволяет снижать размерность коэффициентов, обращая некоторые из них в нули. И это весьма удобно, когда исходные данные сильно коррелированы.
2. L2 = ∑ |b|2
Иногда ее называют ridge-регуляризацией, и она позволяет минимизировать значения коэффициентов модели, а заодно сделать ее робастной к незначительным изменениям исходных данных. А еще она хорошо дифференцируется, а значит модель можно рассчитать аналитически.
3. LEN = α L1 + (1 — α) L2
Совмещая LASSO и ridge, получаем ElasticNet, которая объединяет два мира со всеми их плюсами и минусами.
4. LN = ∑ E [A(b, Ž)] — A(b,X), где А — log partition функция
Введя новую переменную вида Ž = X + ℥, где ℥ — случайная величина, мы фактически добавляем в исходные данные случайный шум, что очевидным образом помогает бороться с переобучением.
Для самой простой линейной регрессии введение аддитивного шума идентично L2-регуляризации, но для других моделей аддитивный шум может давать очень интересный результат. Например, в логистической регресии он по сути штрафует за предсказания близкие к 1/2 (проще говоря, поощряет категоричность предсказаний и наказывает за неопределенность).
5. Dropout
Еще один хитрый подход, активно применяемый в нейронных сетях. Введем новую переменную вида Ž = X * ℥, где ℥ — вектор Бернуллевских случайных величин длиной d. Проще говоря, мы случайным образом выбираем некоторое подмножество факторов Х и строим модель по ним, а потом выбираем такую модель, которая меньше всех зависит от этой случайности.
Для самой простой линейной регрессии dropout снова аналогичен L2-регуляризации. А вот, например, в логистической регрессии он позволяет учитывает влияние редких, но весьма характерных факторов (проще говоря, для некоторых очень маленьких Xij он будет подбирать большие коэффициенты bj, тем самым повышая их влияние на результат.
Этим, конечно, доступные виды регуляризации не ограничиваются. Хотя для линейных моделей редко требуется что-то большее.