Описание окрестности точки наибольшего правдоподобия моделей (пример)
Материал из MachineLearning.
(→Шаг 2: удаление признаков) |
(→Вычислительный эксперимент) |
||
Строка 180: | Строка 180: | ||
evid_ = -abs (getEvid( xRegression,yRegression,weightM,alphaM,beta )) | evid_ = -abs (getEvid( xRegression,yRegression,weightM,alphaM,beta )) | ||
+ | </source> | ||
+ | |||
+ | |||
+ | '''На одном графике выведем зависимость численного значения критериев (ocь Y) от количества признаков (ось X)''' | ||
+ | |||
+ | [[Изображение:evid_1.eps|thumb|left]] | ||
+ | |||
+ | |||
+ | <source lang="matlab"> | ||
+ | hold on; | ||
+ | plot(1:size(AIC,1),AIC,'LineWidth',2,'Color','b') | ||
+ | plot(1:size(AIC,1),BIC,'LineWidth',2,'Color','r') | ||
+ | plot(1:size(AIC,1),1000*Gam,'LineWidth',2,'Color','g') | ||
+ | plot(1:size(AIC,1),-evid','LineWidth',2,'Color','m') | ||
+ | hold off; | ||
</source> | </source> | ||
Версия 19:47, 22 декабря 2010
Содержание |
Постановка задачи
Пусть задана выборка из m пар.
- множество из m объектов,
, где n - количество признаков, а
- соответствующая зависимая переменная.
- вектор значений j-ого признака, а
- вектор целевого признака.
Пусть - множество индексов объектов,
- множество индексов признаков.
- подмножество активных признаков.
Множество
задаёт регрессионную модель
, а
- сложность модели.
Рассмотрим следующую линейную модель регрессии, описывающую связь между свободными и зависимой переменными
где - вектор параметров регрессии, а случайная аддитивная переменная
регрессионной модели имеет нормальное распределение
.
Распределение зависимой переменной будет иметь следующий вид:
где - сумма квадратов невязок
. Согласно оценки точки наибольшего правдоподобия, данное распределение задаёт критерий качества модели, равный сумме квадратов регрессионных остатков.
где - некоторое множество индексов. Этот критерий используется при выборе модели в дальнейшем.
Мультиколлинеарность отслеживается с помощью фактора инфляции дисперсии (VIF), связанного с корреляцей данного признака с другими:
Коэффициент детерминации j-ого признака относительно остальных вычисляется следующим образом:
где - среднее значение вектроа
Требуется найти такую модель оптимальной структуры признаков , которая доставляет наименьшее значение функционалу качества (2).
Порождение свободных переменных
Множества измеряемых признаков бывает недостаточно для построения модели удовлетворительного качества. Требуется расширить множество признаков с помощью функциональных преобразований.
Предлагается следующий способ порождения новых признаков:
Пусть задано множество свободных переменных и конечное множество порождающих функций
.
Обозначим , где индекс
.
Рассмотрим декартово произведение , где элементу
ставится в соответствие суперпозиция
, однозначно определяемая индексами
.
В качестве модели, описывающей отношение между зависимой переменной и свободными переменными
, используется полином Колмогорова-Габора:
где и
.
- множество индексов, размерности N.
Алгоритм
Рассмотрим алгоритм, состоящий из двух шагов.
На первом шаге мы будем добавлять признаки один за другим к нашей модели согласно критерию качества модели (2).
На втором шаге мы будем удалять признаки по одному из нашей модели согласно тому же критерию качества (2).
Пусть на -ом шагу алгоритма имеется множество признаков
, которое определяет матрицу
:
.
На нулевом шаге . Опишем
-ый шаг алгоритма.
Шаг 1: добавление признаков
Добавляем такой признак к активному набору
,
который доставляет минимум функционалу (2).
Если выполнено условие:
то идём к шагу 2, иначе - повторяем шаг 1.
d - заданная константа.
Шаг 2: удаление признаков
Удаляем такой признак из активного набора
,
который имеет наибольший фактора инфляции дисперсии, то есть доставляет максимум функционалу (3).
Если выполнено условие:
то идём к шагу 1, иначе - повторяем шаг 2.
d - заданная константа.
Критерий останова
Алгоритм заканчивает работу, если правдоподобие перестаёт увеличиваться.
Тогда мы нашли оптимальный набор признаков.
Вычислительный эксперимент
Порождение новых признаков:
G = [Z, Z.^2, tan(Z), exp(Z)]; %множество порождающих функиций m на V*U X = [ones(m,1), G]; %множество признаков m на N N = size(X,1) for i = 1 : U*V for j = 1 : U*V if i >= j X = [X, G(:,i).*G(:,j)]; N = N + 1; end end end
Вычисление функционала качества (2):
[w, sse_] = lsqlin(X_mask,target,[],[]); if sse_ < sse_best% & sse_ < sse_last sse_best = sse_; index_best = ind(i); changed = 1; end
Вычисление правдоподобия:
xRegression=X_; yRegression=target; [n,m] = size(xRegression); activeSet = 1:m; % количество активных признаков [weightM,alphaM,beta,weightH,alphaMH,betaH,gammaH] = ... getLinParam(xRegression,yRegression,activeSet); evid_ = -abs (getEvid( xRegression,yRegression,weightM,alphaM,beta ))
На одном графике выведем зависимость численного значения критериев (ocь Y) от количества признаков (ось X)
hold on; plot(1:size(AIC,1),AIC,'LineWidth',2,'Color','b') plot(1:size(AIC,1),BIC,'LineWidth',2,'Color','r') plot(1:size(AIC,1),1000*Gam,'LineWidth',2,'Color','g') plot(1:size(AIC,1),-evid','LineWidth',2,'Color','m') hold off;
Литература
- Стрижов В.В Методы выбора регрессионных моделей. — ВЦ РАН, 2010.
- Стрижов В.В Методы индуктивного порождения регрессионных моделей. — ВЦ РАН, 2008.
- Vadim Strijov, Katya Krymova, Gerhard Wilhelm Weber Evidence Optimization for Consequently Generated Models. — Computing Center of the Russian Academy of Science, Moscow, Russia, 2010.