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.

Selección de características

Introducción a la selección de características

reduce la dimensionalidad de los datos seleccionando solo un subconjunto de entidades medidas (variables predictoras) para crear un modelo.La selección de características Los criterios de selección suelen implicar la minimización de una medida específica de error predictivo para los modelos aptos para diferentes subconjuntos. Los algoritmos buscan un subconjunto de predictores que modelen de forma óptima las respuestas medidas, sujetas a restricciones como las características requeridas o excluidas y el tamaño del subconjunto.

La selección de características es preferible a la transformación de entidades cuando las unidades originales y el significado de las entidades son importantes y el objetivo de modelado es identificar un subconjunto influyente. Cuando las entidades categóricas están presentes y las transformaciones numéricas no son apropiadas, la selección de entidades se convierte en el medio principal de reducción de dimensiones.

Selección secuencial de características

Un método común de selección de características es .selección secuencial de características Este método tiene dos componentes:

  • Una función objetiva, llamada el Criterio, que el método busca minimizar sobre todos los subconjuntos de características factibles. Los criterios comunes son el error cuadrado medio (para los modelos de regresión) y la tasa de clasificación errónea (para los modelos de clasificación).

  • Un algoritmo de búsqueda secuencial, que agrega o quita entidades de un subconjunto de candidatos mientras evalúa el criterio. Puesto que una comparación exhaustiva del valor del criterio en todos los 2n los subconjuntos de un conjunto de datos de entidad suelen ser inviables (según el tamaño y el coste de las llamadas objetivas), las búsquedas secuenciales se mueven en una sola dirección, siempre creciendo o siempre reduciendo el conjunto de candidatos.nn

El método tiene dos variantes:

  • (), en el que las entidades se agregan secuencialmente a un conjunto candidato vacío hasta que la adición de otras características no disminuye el criterio.Selección de avance secuencialSfs

  • (), en el que las entidades se eliminan secuencialmente de un conjunto de candidatos completo hasta que la eliminación de otras características aumente el criterio.La selección hacia atrás secuencialSbs

La regresión stepwise es una técnica de selección de características secuencial diseñada específicamente para el ajuste de mínimos cuadrados. Las funciones y hacer uso de optimizaciones que sólo son posibles con los criterios de mínimos cuadrados.stepwisestepwisefit A diferencia de la selección de características secuenciales generalizadas, la regresión escalonada puede eliminar las entidades que se han agregado o agregar características que se han quitado.

La función lleva a cabo la selección secuencial de características.Statistics and Machine Learning Toolbox™sequentialfs Los argumentos de entrada incluyen Datos predictores, datos de respuesta y un identificador de función para un archivo que implementa la función de criterio. Las entradas opcionales le permiten especificar SFS o SBS, características requeridas o excluidas, y el tamaño del subconjunto de características. La función llama y evalúa el criterio en diferentes conjuntos de candidatos.cvpartitioncrossval

Seleccione subconjunto de características con potencia predictiva comparativa

Considere un conjunto de datos con 100 observaciones de 10 predictores. Genere los datos aleatorios a partir de un modelo logístico, con una distribución binomial de respuestas en cada conjunto de valores para los predictores. Algunos coeficientes se establecen en cero para que no todos los predictores afecten a la respuesta.

rng(456) % Set the seed for reproducibility n = 100; m = 10; X = rand(n,m); b = [1 0 0 2 .5 0 0 0.1 0 1]; Xb = X*b'; p = 1./(1+exp(-Xb)); N = 50; y = binornd(N,p);

Ajuste un modelo logístico a los datos utilizando.fitglm

Y = [y N*ones(size(y))]; model0 = fitglm(X,Y,'Distribution','binomial')
model0 =  Generalized linear regression model:     logit(y) ~ 1 + x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x10     Distribution = Binomial  Estimated Coefficients:                    Estimate       SE        tStat        pValue                      _________    _______    ________    __________      (Intercept)      0.22474    0.30043     0.74806       0.45443     x1               0.68782    0.17207      3.9973     6.408e-05     x2                0.2003    0.18087      1.1074       0.26811     x3             -0.055328    0.18871    -0.29319       0.76937     x4                2.2576     0.1813      12.452    1.3566e-35     x5               0.54603    0.16836      3.2432     0.0011821     x6              0.069701    0.17738     0.39294       0.69437     x7              -0.22562    0.16957     -1.3306       0.18334     x8              -0.19712    0.17317     -1.1383       0.25498     x9              -0.20373    0.16796      -1.213       0.22514     x10              0.99741    0.17247      5.7832    7.3296e-09   100 observations, 89 error degrees of freedom Dispersion: 1 Chi^2-statistic vs. constant model: 222, p-value = 4.92e-42 

Muestre la desviación del ajuste.

dev0 = model0.Deviance
dev0 = 101.5648 

Este modelo es el modelo completo, con todas las características y un término constante inicial. La selección secuencial de entidades busca un subconjunto de las entidades en el modelo completo con potencia de predicción comparativa.

Antes de realizar la selección de características, debe especificar un criterio para seleccionar las operaciones. En este caso, el criterio es la desviación del ajuste (una generalización de la suma residual de los cuadrados). La función (mostrada al final de este ejemplo) llama y devuelve la desviación del ajuste.critfunfitglm

Si utiliza el archivo de secuencia de comandos en vivo para este ejemplo, la función ya está incluida al final del archivo.critfun De lo contrario, debe crear esta función al final del archivo. m o agregarla como un archivo en la ruta de acceso de MATLAB.

Realice la selección de características. llama a la función de criterio mediante un identificador de función.sequentialfs

maxdev = chi2inv(.95,1);      opt = statset('display','iter',...               'TolFun',maxdev,...               'TolTypeFun','abs');  inmodel = sequentialfs(@critfun,X,Y,...                        'cv','none',...                        'nullmodel',true,...                        'options',opt,...                        'direction','forward');
Start forward sequential feature selection: Initial columns included:  none Columns that can not be included:  none Step 1, used initial columns, criterion value 323.173 Step 2, added column 4, criterion value 184.794 Step 3, added column 10, criterion value 139.176 Step 4, added column 1, criterion value 119.222 Step 5, added column 5, criterion value 107.281 Final columns included:  1 4 5 10  

La pantalla iterativa muestra una disminución en el valor del criterio, ya que cada nueva entidad se agrega al modelo. El resultado final es un modelo reducido con sólo cuatro de las diez entidades originales: columnas, y de, como se indica en el vector lógico devuelto por.14510Xinmodelsequentialfs

La desviación del modelo reducido es mayor que la desviación del modelo completo. Sin embargo, la adición de cualquier otra característica única no disminuiría el valor del criterio en más de la tolerancia absoluta, establecida en la estructura de opciones.maxdev La adición de una entidad sin efecto reduce la desviación por una cantidad que tiene una distribución de Chi-cuadrado con un grado de libertad. Al agregar una característica significativa, se produce un cambio mayor en la desviación. Al establecer en, instruye para continuar agregando características siempre que el cambio en la desviación es más que el cambio esperado por azar.maxdevchi2inv(.95,1)sequentialfs

Cree el modelo reducido con un término constante inicial.

model = fitglm(X(:,inmodel),Y,'Distribution','binomial')
model =  Generalized linear regression model:     logit(y) ~ 1 + x1 + x2 + x3 + x4     Distribution = Binomial  Estimated Coefficients:                     Estimate       SE         tStat        pValue                      __________    _______    _________    __________      (Intercept)    -0.0052025    0.16772    -0.031018       0.97525     x1                0.73814    0.16316       4.5241    6.0666e-06     x2                 2.2139    0.17402       12.722    4.4369e-37     x3                0.54073     0.1568       3.4485    0.00056361     x4                 1.0694    0.15916       6.7191    1.8288e-11   100 observations, 95 error degrees of freedom Dispersion: 1 Chi^2-statistic vs. constant model: 216, p-value = 1.44e-45 

Este código crea la función.critfun

function dev = critfun(X,Y) model = fitglm(X,Y,'Distribution','binomial'); dev = model.Deviance; end

Consulte también