Может ли кто-нибудь указать мне направление онлайнового (рекурсивного) алгоритма регуляризации Тихонова (регуляризованных наименьших квадратов)?
В автономном режиме я вычисляю используя мой исходный набор данных, где находится с помощью n-кратной перекрестной проверки. Новое значение можно предсказать для данного используя .
В режиме онлайн я постоянно рисую новые точки данных. Как я могу обновить когда я рисую новые дополнительные образцы данных, не выполняя полный пересчет всего набора данных (оригинал + новый)?
Ответы:
ПустьM−1n=(XXT+λI)−1 , тогда
Согласно формуле Вудбери мы имеем
Как результат,
Полякское усреднение показывает, что вы можете использовать для аппроксимации с диапазонами от до . Вы можете попробовать в вашем случае выбрать лучший для вашей рекурсии.M - 1 nηn=n−α α0,51αM−1n1+xTnM−1nxn α 0.5 1 α
Я думаю, что это также работает, если вы применяете алгоритм пакетного градиента:
источник
До сих пор никто не обращал внимания на то, что обычно не имеет смысла сохранять параметр регуляризации постоянным при добавлении точек данных. Причина этого в том, что , как правило, будет расти линейно с количеством точек данных, тогда как член регуляризации не будет. ‖ X β - y ‖ 2 ‖ λ β ‖ 2λ ∥Xβ−y∥2 ∥λβ∥2
источник
Возможно, что-то вроде стохастического градиентного спуска могло бы сработать здесь. Вычислите используя приведенное выше уравнение для начального набора данных, которое будет вашей начальной оценкой. Для каждой новой точки данных вы можете выполнить один шаг градиентного спуска, чтобы обновить оценку параметров.β^
источник
В линейной регрессии одной из возможностей является непосредственное обновление QR-разложения , как описано здесь . Я предполагаю, что, если вы не хотите переоценивать после добавления каждого нового элемента данных, нечто очень похожее можно сделать с регрессией гребня.λX λ
источник
Вот альтернативный (и менее сложный) подход по сравнению с использованием формулы Вудбери. Обратите внимание, что и могут быть записаны как суммы . Так как мы вычисляем вещи онлайн и не хотим, чтобы сумма взорвалась, мы можем альтернативно использовать средства ( и ).XTX XTy XTX/n XTy/n
Если вы напишите и как:X y
мы можем записать онлайн-обновления для и (рассчитанные до строки) как:XTX/n XTy/n t
Ваша онлайн оценка становитсяβ
Обратите внимание, что это также помогает интерпретировать оставаясь постоянным, когда вы добавляете наблюдения!λ
С помощью этой процедуры https://github.com/joshday/OnlineStats.jl вычисляет онлайн-оценки линейной / ребристой регрессии.
источник