В этом примере показано, как идентифицировать и удалить избыточные предикторы из обобщенной линейной модели.
Создайте данные с 20 предикторами и ответами Пуассона, используя только три предиктора плюс константу.
rng('default') % for reproducibility X = randn(100,20); mu = exp(X(:,[5 10 15])*[.4;.2;.3] + 1); y = poissrnd(mu);
Построить перекрестно проверенную регуляризацию лассо регрессионной модели Пуассона данных.
[B,FitInfo] = lassoglm(X,y,'poisson','CV',10);
Проверьте график перекрестной проверки, чтобы увидеть эффект Lambda параметр регуляризации.
lassoPlot(B,FitInfo,'plottype','CV'); legend('show') % show legend

Зеленый круг и пунктирная линия расположены Lambda с минимальной ошибкой перекрестной проверки. Синяя окружность и пунктирная линия определяют местоположение точки с минимальной ошибкой перекрестной проверки плюс одно стандартное отклонение.
Найдите ненулевые коэффициенты модели, соответствующие двум идентифицированным точкам.
minpts = find(B(:,FitInfo.IndexMinDeviance))
minpts = 7×1
3
5
6
10
11
15
16
min1pts = find(B(:,FitInfo.Index1SE))
min1pts = 3×1
5
10
15
Коэффициенты из минимальной плюс одна стандартная точка ошибки - это именно те коэффициенты, которые используются для создания данных.
Найдите значения коэффициентов модели в минимальной плюс одна стандартная точка ошибки.
B(min1pts,FitInfo.Index1SE)
ans = 3×1
0.2903
0.0789
0.2081
Значения коэффициентов, как и ожидалось, меньше исходных [0.4,0.2,0.3]. Лассо работает с помощью «усадки», которая смещает коэффициенты предиктора к нулю.
Постоянный член находится в FitInfo.Intercept вектор.
FitInfo.Intercept(FitInfo.Index1SE)
ans = 1.0879
Константный член близок к 1, что является значением, используемым для генерации данных.