Алгоритмы выбора линейных регрессионных моделей (практика)
Материал из MachineLearning.
(→Реализованные алгоритмы) |
(→Случайный поиск с адаптацией (СПА) [rsa]) |
||
Строка 58: | Строка 58: | ||
=== метод группового учета аргиментов (МГУА) [gmdh] === | === метод группового учета аргиментов (МГУА) [gmdh] === | ||
=== Случайный поиск с адаптацией (СПА) [rsa] === | === Случайный поиск с адаптацией (СПА) [rsa] === | ||
+ | Алгоритм случайного поиска с адаптацией похож на генетический, но лишен операции скрещивания, зато обладает более сложной операцией мутации — признаки из хороших наборов появляются с большей вероятностью, чем из плохих. | ||
+ | '''Вход:''' | ||
+ | * <tex>$F$</tex> — набор признаков | ||
+ | * <tex>$X$</tex> — обучающая выборка | ||
+ | * <tex>$Q$</tex> — критерий качества (степень ошибки) | ||
+ | * <tex>$d$</tex> — количество шагов осле наождения оптимума | ||
+ | * <tex>$j_{max}$</tex> — максимальное число признаков в наборе | ||
+ | * <tex>$T$</tex> — количество итераций | ||
+ | * <tex>$N$</tex> — количество генерируемых наборов на каждой итерации | ||
+ | * <tex>$h$</tex> — скорость адаптации (шаг изменения вероятностей) | ||
+ | |||
+ | |||
+ | # для всех признаков равные вероятности: <tex>$p_1=\ldots=p_m=1/m$</tex> | ||
+ | # для всех сложностей наборов: <tex>$j=1\ldots,j_{max}$</tex> | ||
+ | ## для всех итераций: <tex>$t=1,\ldots,T$</tex> | ||
+ | ### генерация набора признаков согласно вероятностям: <tex>$F_t=\{F_{t1},\ldots,F_{tN}\}$</tex>, <tex>$|F_{t1}|=\ldots=|F_{tN}|=j$</tex> | ||
+ | ### лучший набор: <tex>$F_t^{min}=\arg\min_{F_{ti}\in F_t}Q(F_{ti})$</tex> | ||
+ | ### худший набор: <tex>$F_t^{max}=\arg\max_{F_{ti}\in F_t}Q(F_{ti})$</tex> | ||
+ | ### суммарное наказание: <tex>$\Delta P=0$</tex> | ||
+ | ### по всем плохим признакам: <tex>$f_i\in F_t^{max}$</tex> | ||
+ | #### <tex>$\Delta p_i=\min\{p_i,h\}$</tex> | ||
+ | #### <tex>$p_i=p_i-\Delta p_i$</tex> | ||
+ | #### <tex>$\Delta P=\Delta P+\Delta p_i$</tex> | ||
+ | ### по всем хорошим признакам: <tex>$f_i\in F_t^{min}$</tex> | ||
+ | #### <tex>$p_i=p_i+\Delta P/j$</tex> | ||
+ | ## лучший набор из просмотренных: <tex>$F_{j^*}=\arg\min_{k\le j}Q(F_k)$</tex> | ||
+ | ## если <tex>$j\ge j^*+d$</tex>, то вернуть <tex>$F_{j^*}$</tex> | ||
=== Гребневая регрессия [ridgeregr] === | === Гребневая регрессия [ridgeregr] === |
Версия 04:26, 28 января 2010
Описание библиотеки алгоритмов выбора линейных регрессионных моделей
Архитектура
Соглашения об интерфейсе функций
Для унификации способов применения методов выбора модели предусмотрен формат интерфейса функции.
На вход каждый метод принимает 3 параметра:
-
features
— матрица признакового описания объектов, в которой строки соответствуют объектам, а столбцы - признакам; -
target
- столбец значений целевого признака; -
Params
- структура с параметрами алгоритма; она может обладать следующими полями:-
Common
- структура, содержащая общие параметры алгоритмов:-
maxNFeatures
- максимальное допустимое количество отобранных информативных признаков;
-
- ИмяМетода - для каждого метода структура с его собственными параметрами; например, для метода полного перебора
esearch
параметры должны быть доступны как поля структурыParams.Esearch
.
-
На вход методам может передаваться структура параметров, содержащая не все поля (поле Params.Common
и поля, соответствующие конкретным методам), а также не все их поля (например, может быть не задано Params.Common.maxNFeatures
). Если необходимые алгоритму параметры не заданы, должны быть использованы некоторые значения "по умолчанию".
На выходе каждый метод возвращает описание набора информативных признаков и их весов в виде структуры с полями:
-
isInformative
- логический вектор-столбец, представляющий собой маску информативных признаков (выбранным информативным признакам соответствуетtrue
, остальным -false
); -
weight
- столбец с весами каждого признака; для неинформативных признаков веса должны быть нулевыми.
Шаблон шапки файла метода
function FeaturesRating = methodName(features, target, Params) % Description. % % Arguments % Input % features - matrix of features, where rows are objects, and colums are feature vectors % target - target feature vector % Params - structure with fields % Common - common params; structure with fields % maxNFeatures - maximum features number to select % MethodName - structure with params for particular method % Output % FeaturesRating - structure with rating for all features; has fields % isInformative - logical column of marks is particular feature informative (true) or not (false) % weight - weight of particular feature % % Example % TODO % % See also % TODO % % Revisions % TODO
TODO Example
Реализованные алгоритмы
Полный перебор [esearch]
Лассо Тибширани [lasso]
Least Angle Regression (LARS) [lars]
Генетический алгоритм [genetic]
метод группового учета аргиментов (МГУА) [gmdh]
Случайный поиск с адаптацией (СПА) [rsa]
Алгоритм случайного поиска с адаптацией похож на генетический, но лишен операции скрещивания, зато обладает более сложной операцией мутации — признаки из хороших наборов появляются с большей вероятностью, чем из плохих.
Вход:
- — набор признаков
- — обучающая выборка
- — критерий качества (степень ошибки)
- — количество шагов осле наождения оптимума
- — максимальное число признаков в наборе
- — количество итераций
- — количество генерируемых наборов на каждой итерации
- — скорость адаптации (шаг изменения вероятностей)
- для всех признаков равные вероятности:
- для всех сложностей наборов:
- для всех итераций:
- генерация набора признаков согласно вероятностям: ,
- лучший набор:
- худший набор:
- суммарное наказание:
- по всем плохим признакам:
- по всем хорошим признакам:
- лучший набор из просмотренных:
- если , то вернуть
- для всех итераций: