Orthogonal matching pursuit
Orthogonal Matching Pursuit (OMP) - комбинация отбора признаков и линейной регрессии, в которой строится максимально точная линейная модель с числом признаков, равным K.
Алгоритм применяется, когда число признаков слишком велико, и требуется построить компактную модель, зависящую лишь от небольшого их числа. Это полезно для повышения интерпретируемости модели, повышения скорости её работы и уменьшения переобучения.
Будем использовать следующие обозначения:
-
- множество всех признаков,
-
- разность множеств (множество элементов , не содержащиеся в ),
-
- число элементов множества .
Алгоритм итеративный, в котором на каждой итерации расширяется число используемых признаков на единицу, а вектор ошибок текущей итерации на всех объектах выборки обозначим через .
Тогда алгоритм OMP работает следующим образом:
Начальное множество признаков - пустое множество, а начальная модель - тождественный ноль:
Поскольку начальная модель - тождественный ноль, то ошибки вначале совпадают с верными ответами:
пока :
выбрать признак , у которого максимальная ковариация с ошибками текущей модели .
добавить этот признак в число отобранных:
обучить линейную регрессию предсказывать , используя только отобранные признаки из
обновить вектор ошибками обновлённой модели
Таким образом, алгоритм OMP жадным образом (greedy search) добавляет максимально скоррелированные признаки с откликом по одному, пока не наберёт необходимое количество. В число признаков должна входить константа 1, чтобы модель могла выучить смещение.
Можно досрочно прерывать алгоритм, как только средние потери модели становятся ниже заданного порога. В этом случае достаточное число признаков может быть и меньше .
Для построения модели с минимальным числом признаков также можно использовать лассо-регрессию с гиперпараметром , подбираемым таким образом, чтобы настроенная модель зависела только от признаков.