Обновить

Статистика под капотом LinearRegression: почему мы минимизируем именно квадрат ошибки?

Уровень сложностиСложный
Время на прочтение3 мин
Охват и читатели16K
Всего голосов 21: ↑21 и ↓0+26
Комментарии13

Комментарии 13

А argmax функции совпадает с argmax-ом логарифма этой функции, потому что логарифм - монотонное преобразование.

x -> 2*ln(x) тоже монотонное преобразование. Но если применить его, то надо минимизировать не сумму квадратов, а сумму 4 степени отклонений.

>почему мы минимизируем именно квадрат ошибки

чтобы подогнать среднее, если же вместо среднего хотим получать как можно близкое к медиане - надо оптимизировать mae

Квадрат хорош тем, что это гладкая функция, а сумма квадратов имеет единственный, он же глобальный, минимум с гладкой окрестностью.

Сумма модулей имеет глобальный минимум с негладкой окрестностью, что может замедлять сходимость. Но модуль менее чувствителен к выбросам данных.

Что если ввести функцию, сочетающую лучшие свойства обеих? Например, sqrt(x^2 + a).

Что если ввести функцию, сочетающую лучшие свойства обеих? Например, sqrt(x^2 + a).

Есть функция потерь Хубера. В предложенном исполнении нужно добавить пару деталей, и тогда оно станет ее псевдо-версией.

"Мы хотим найти w_0 и w_1, которые максимизируют эту штуку \ell(\mathbf{w})"

А что стало с остальными компонентами вектора, у которых номер больше 1? Печалька

Ничего не стало. Предположение о независимости признаков позволяет нам независимо оптимизировать каждый сомножитель.

Они становятся зависимыми после получения данных.

Там получается система уравнений, её нужно решить и посмотреть

P.s. я сначала согласился, мол, с точки зрения симметрии они ж должеы быть независимы, а потом осознал глубину ошибки))

В приближении, называемом линейной регрессией, они по определению независимые.

Позвольте объяснить, слово "по определению" здесь не катит. Есть модель того как появляются данные - это и есть "Дано", из чего мы и исходим. Далее идёт оптимизация MLE в ходе которой, они очевидно, зависят друг от друга.

Возьмите третий член и найдите производные по w0 и w1. Приравняйте к нулю. Получите зависимость w0 от w1.

Помню эту задачку, только в учебнике она наоборот была. Нужно было найти точную формулу расчёта мат ожидания параметров, если даны x1,...xn и t1...tn.

Поскольку максимальный член -квадратичен, это имеет точное решение через Лапласа.

Если берём неправильный праер, равный 1, то E[teta|data] совпадает с teta argmax - это формула линейной регрессии. Но в чуть более общем случае нужно немного поковыряться с Гессианом, ТС слишком легко отделался...

Посоветуйте, пожалуйста, литературу по решению задач оптимизации на неполных данных. В сети много работ, в которых предлагают заполнять отсутствующие значения путём Expectation Maximisation (методом максимального правдоподобия), а какой алгоритм для этого лучше выбрать ?

SVD+LP. Но смотря, что оптимизировать надо.

Я делал такое для пространства линейных функций в задаче расчета усредненной стоимости доставки для корзины товаров, возможные разбиения которой могут доставляться различными способами, которые может выбрать пользователь. Решал через метод наименьших квадратов, для этого строил систему уравнений частных первых производных. Эта система неполна в том смысле, что количество неизвестных больше, чем количество линейных уравнений. Ее решение искал с помощью псевдоинверсии на базе SVD.

Получается решение, которое зависит от вектора свободных параметров некоторой размерности n (геометрически решение лежит на дне долины на поверхности квадратов разниц). Далее для уточнения этих случайных параметров решал задачу линейного программирования на фиксированной выбранной целевой функции (например, алгебраическая сумма стоимости всех выбранных комбинаций доставок должна быть минимальной, но можно придумать и другую линейную функцию) при заданных граничных условиях. Здесь был выбран симплекс-метод, хоть, он и экспоненциальный, но граничные условия были такими простыми (например, стоимость сумм доставок разбиения корзины больше либо равно 0), что получающийся многогранник в n-мерном пространстве был очень ограничен по количеству ребер, по которым надо пробежаться при поиске решения.

Решение сделано на java, однопоточная калькуляция для корзины укладывалась в 50ms для 99.95 персентили, были использованы библиотеки ejml для SVD и apache commons math для ЛП

Но вот парадокс: даже многие «прожженные» инженеры не всегда до конца понимают ее истинную работу под капотом.

Прожжённые инженеры прогуливали пары по матстатистике, или сейчас в прожжённые инженеры уже берут всех подряд?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации