В документе «Точное вычисление текущей дисперсии» по адресу http://www.johndcook.com/standard_deviation.html показано, как вычислить среднее значение, дисперсию и стандартные отклонения.
Существуют ли алгоритмы, в которых параметры модели линейной или логистической регрессии можно аналогичным образом «динамически» обновлять при предоставлении каждой новой записи обучения?
Ответы:
Линейные коэффициенты регрессии : и .y=ax+b a=cov(x,y)/var(x) b=mean(y)−a⋅mean(x)
Так что все, что вам действительно нужно, это инкрементный метод для вычисления . Из этого значения и дисперсии и среднего значения и можно вычислить параметры и . Как вы увидите в приведенном ниже псевдокоде, инкрементальное вычисление очень похоже на инкрементальное вычисление . Это не должно быть сюрпризом, потому что .cov(x,y) x y x a b cov(x,y) var(x) v a r (x)=cov(x,x)
Вот псевдокод, который вы, вероятно, ищете:
Я нашел этот вопрос во время поиска эквивалентного алгоритма, постепенно многовариантную регрессию как так чтоR=(X′X)−1X′Y XR=Y+ϵ
источник
Для ваших двух конкретных примеров:
Линейная регрессия В статье Александра Стреля и Майкла Литтмана «Линейная регрессия в режиме онлайн и ее применение к обучению на основе моделей» описывается алгоритм «Линейная регрессия KWIK» (см. Алгоритм 1), который обеспечивает приближение к решению линейной регрессии с использованием инкрементных обновлений. , Обратите внимание, что это не регуляризовано (т. Е. Это не регрессия Риджа). Я почти уверен, что метод Strehl & Littman не может распространяться на этот параметр.
Логистическая регрессия
Эта тема проливает свет на этот вопрос. Цитирование:
Однако существуют и другие онлайн (или инкрементные) методы регрессии, которые вы, возможно, захотите посмотреть, например, Локально-взвешенная регрессия проекции (LWPR).
источник
Как общий принцип:
0) вы ведете достаточную статистику и текущие оценки ML
1) при получении новых данных обновите достаточную статистику и оценки
2) Если у вас нет достаточной статистики, вам нужно использовать все данные.
3) Как правило, у вас нет закрытых решений; используйте предыдущие MLE в качестве отправной точки, используйте некоторый удобный метод оптимизации, чтобы найти новый оптимум оттуда. Возможно, вам придется немного поэкспериментировать, чтобы найти, какие подходы лучше всего подходят для ваших конкретных типов проблем.
Если ваша проблема имеет особую структуру, вы, вероятно, можете ее использовать.
Пара потенциальных ссылок, которые могут иметь или не иметь какое-то значение:
McMahan, HB и M. Streeter (2012), «
Открытая проблема: лучшие границы для онлайн-логистической регрессии» ,
JMLR: материалы семинаров и конференций , том 23, 44.1–44.3
Пенни, У.Д. и С.Дж. Робертс (1999),
Динамическая логистическая регрессия ,
Труды IJCNN '99
источник
В добавление к ответу tdc, нет известных методов для вычисления точных оценок коэффициентов в любой момент времени с постоянным временем на одну итерацию. Однако есть несколько альтернатив, которые являются разумными и интересными.
Первая модель, на которую стоит обратить внимание - это онлайн-обучение . В этой настройке мир сначала объявляет значение x, ваш алгоритм предсказывает значение для y, мир объявляет истинное значение y ', и ваш алгоритм терпит убытки l (y, y'). Для этого параметра известно, что простые алгоритмы (градиентный спуск и экспоненциальный градиент, среди прочих) достигают сублинейного сожаления. Это означает, что, как вы видите больше примеров, количество дополнительных ошибок, которые ваш алгоритм делает (по сравнению с наилучшим из возможных линейных предикторов), не увеличивается с количеством примеров. Это работает даже в состязательных настройках. Есть хорошая статья, объясняющая одну популярную стратегию, чтобы доказать эти границы сожаления. Лекционные записи Шая Шалева-Шварца также полезны.
Существует расширение настройки онлайн-обучения, называемое настройкой бандита, где вашему алгоритму присваивается только число, представляющее, насколько оно ошибочно (и нет указателя на правильный ответ). Впечатляет, что многие результаты онлайн-обучения переносятся на эту настройку, за исключением того, что здесь вынуждают исследовать и эксплуатировать, что приводит к всевозможным интересным задачам.
источник
Другие ответы указывают на мир машинного обучения, и это, безусловно, одно место, где эта проблема была решена.
Тем не менее, другой подход, который может лучше соответствовать вашим потребностям, - это использование QR-факторизации с низкими обновлениями. Подходы к решению этой задачи и ее использованию для решения задач наименьших квадратов приведены в:
Обновление QR-факторизации и проблемы наименьших квадратов Хаммерлинга и Лукаса.
источник
источник
Это добавить к ответу @chmike.
Похоже, что этот метод аналогичен онлайн-алгоритму BP Welford для стандартного отклонения, который также вычисляет среднее значение. Джон Кук дает хорошее объяснение здесь . Тони Финч в 2009 году предлагает метод экспоненциального скользящего среднего и стандартного отклонения:
Вглядываясь в ранее опубликованный ответ и расширяя его, чтобы включить экспоненциальное окно перемещения:
В вышеприведенном «коде» для параметра selectedAlpha может быть установлено значение 0, и в этом случае код будет работать без экспоненциального взвешивания. Может быть предложено установить значение требуемой Альфа 1 / требуемый размер окна, как предложено Modified_moving_average для размера движущегося окна.
Дополнительный вопрос: об альтернативных расчетах выше, какие комментарии лучше с точки зрения точности?
Ссылки:
chmike (2013) https://stats.stackexchange.com/a/79845/70282
Кук, Джон (й) вычисление работает точно дисперсии http://www.johndcook.com/blog/standard_deviation/
Финч, Тони. (2009) Инкрементальный расчет средневзвешенного значения и дисперсии. https://fanf2.user.srcf.net/hermes/doc/antiforgery/stats.pdf
Wikipedia. (nd) онлайн-алгоритм Уэлфорда https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Online_algorithm
источник