Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Regularización de lazo

Este ejemplo muestra cómo identifica y descarta los predictores innecesarios.Lazo

Genere 200 muestras de datos artificiales de cinco dimensiones X a partir de distribuciones exponenciales con varios medios.

rng(3,'twister') % For reproducibility X = zeros(200,5); for ii = 1:5     X(:,ii) = exprnd(ii,200,1); end

Generar datos de respuesta = * +, donde sólo tiene dos componentes distintos de cero, y el ruido es normal con la desviación estándar 0,1.YXrepsreps

r = [0;2;0;-3;0]; Y = X*r + randn(200,1)*.1;

Ajuste una secuencia de modelos con validación cruzada y trace el resultado.Lazo

[b,fitinfo] = lasso(X,Y,'CV',10); lassoPlot(b,fitinfo,'PlotType','Lambda','XScale','log');

La gráfica muestra los coeficientes distintos de cero en la regresión para varios valores del parámetro de regularización.Lambda Los valores más grandes de aparecen en el lado izquierdo del gráfico, lo que significa más regularización, lo que resulta en menos coeficientes de regresión distintos de cero.Lambda

Las líneas verticales discontinuas representan el valor con un error medio cuadrado mínimo (a la derecha) y el valor con un error medio cuadrado mínimo más una desviación estándar.LambdaLambda Este último valor es una configuración recomendada para.Lambda Estas líneas aparecen solo cuando se realiza la validación cruzada. Validación cruzada estableciendo el argumento de par nombre-valor.'CV' Este ejemplo utiliza la validación cruzada de 10 veces.

La parte superior de la gráfica muestra los grados de libertad (DF), es decir, el número de coeficientes distintos de cero en la regresión, como una función de lambda. A la izquierda, el gran valor de lambda hace que todo menos un coeficiente sea 0. A la derecha, los cinco coeficientes son distintos de cero, aunque la gráfica muestra sólo dos claramente. Los otros tres coeficientes son tan pequeños que no puede distinguirlos visualmente de 0.

Para valores pequeños de lambda (hacia la derecha en la gráfica), los valores de coeficiente están cerca de la estimación de mínimos cuadrados.

Encuentre el valor del error medio cuadrado de validación cruzada mínimo más una desviación estándar.Lambda Examine el MSE y los coeficientes del ajuste en eso.Lambda

lam = fitinfo.Index1SE; fitinfo.MSE(lam)
ans = 0.1398 
b(:,lam)
ans = 5×1

         0
    1.8855
         0
   -2.9367
         0

hizo un buen trabajo encontrando el vector de coeficiente.Lazor

Para comparar, busque la estimación de mínimos cuadrados de.r

rhat = X\Y
rhat = 5×1

   -0.0038
    1.9952
    0.0014
   -2.9993
    0.0031

La estimación tiene un error cuadrado ligeramente más medio que el error cuadrado medio de.b(:,lam)rhat

res = X*rhat - Y;     % Calculate residuals MSEmin = res'*res/200 % b(:,lam) value is 0.1398
MSEmin = 0.0088 

Pero solo tiene dos componentes distintos de cero y, por lo tanto, puede proporcionar mejores estimaciones predictivas sobre nuevos datos.b(:,lam)