sklearn.feature_selection.RFE

class sklearn.feature_selection.RFE

Ordenación de características con eliminación recursiva de características.

Dado un estimador externo que asigna pesos a las características (por ejemplo, los coeficientes de un modelo lineal), el objetivo de la eliminación recursiva de características (RFE) es seleccionar características considerando recursivamente conjuntos cada vez más pequeños de características. En primer lugar, el estimador se entrena con el conjunto inicial de características y la importancia de cada una de ellas se obtiene a través de algún atributo específico o callable. A continuación, se eliminan las características menos importantes del conjunto actual. Este procedimiento se repite recursivamente en el conjunto podado hasta que se alcanza el número deseado de características a seleccionar.

Más información en el Manual de usuario.

Parámetros
estimator : instancia del EstimatorInstancia del estimador

Un estimador de aprendizaje supervisado con un método de fit que proporciona información sobre la importancia de las características (por ejemplo, coef_, feature_importances_).

n_features_to_selectint o float, default=None

El número de características a seleccionar. Si es None, se selecciona la mitad de las características. Si es un número entero, el parámetro es el número absoluto de características a seleccionar. Si es float entre 0 y 1, es la fracción de características a seleccionar.

Distinto en la versión 0.24: Se añaden valores float para las fracciones.

stepentero o punto flotante, default=1

Si es mayor o igual que 1, step corresponde al número (entero) de características a eliminar en cada iteración. Si está dentro de (0.0, 1.0), entonces step corresponde al porcentaje (redondeado hacia abajo) de características a eliminar en cada iteración.

verboseentero, default=0

Controla la verbosidad de la salida.

importance_gettercadena o invocable, default=”auto”

Si es “auto”, utiliza la importancia de la característica a través de los atributos coef_ o feature_importances_ del estimador.

También acepta una cadena que especifica un nombre de atributo/ruta para extraer la importancia de la característica (implementado con attrgetter). Por ejemplo, dar regressor_.coef_ en el caso de TransformedTargetRegressor o named_steps.clf.feature_importances_ en el caso de class:~sklearn.pipeline.Pipeline con su último paso llamado clf.

Si es callable, sobrescribe el getter de importancia de la característica por defecto. El invocable se pasa con el estimador ajustado y debe devolver la importancia de cada característica.

Nuevo en la versión 0.24.

Atributos
estimator_ : instancia del EstimatorInstancia del estimador

El estimador ajustado utilizado para seleccionar las características.

n_features_entero

El número de características seleccionadas.

ranking_ndarray de forma (n_features,)

La clasificación de las características, de forma que ranking_[i] corresponde a la posición de clasificación de la característica i-ésima. A las características seleccionadas (es decir, las mejores estimadas) se les asigna el rango 1.

support_ndarray de forma (n_features,)

La máscara de las características seleccionadas.

Ver también

RFECV

Eliminación recursiva de características con selección validada cruzada integrada del mejor número de características.

SelectFromModel

Selección de características basada en umbrales de pesos de importancia.

SequentialFeatureSelector

Selección de características basada en la validación cruzada secuencial. No depende de los pesos de importancia.

Notas

Permite NaN/Inf en la entrada si el estimador subyacente también lo hace.

Referencias

1

Guyon, I., Weston, J., Barnhill, S., & Vapnik, V., «Gene selection for cancer classification using support vector machines», Mach. Learn., 46(1-3), 389–422, 2002.

Ejemplos

El siguiente ejemplo muestra cómo recuperar las 5 características más informativas en el conjunto de datos Friedman #1.

>>> from sklearn.datasets import make_friedman1
>>> from sklearn.feature_selection import RFE
>>> from sklearn.svm import SVR
>>> X, y = make_friedman1(n_samples=50, n_features=10, random_state=0)
>>> estimator = SVR(kernel="linear")
>>> selector = RFE(estimator, n_features_to_select=5, step=1)
>>> selector = selector.fit(X, y)
>>> selector.support_
array([ True,  True,  True,  True,  True, False, False, False, False,
       False])
>>> selector.ranking_
array([1, 1, 1, 1, 1, 6, 4, 3, 2, 5])

Métodos

decision_function

Calcula la función de decisión de X.

fit

Ajusta el modelo RFE y luego el estimador subyacente en el

fit_transform

Ajusta a los datos y luego transformarlos.

get_params

Obtiene los parámetros de este estimador.

get_support

Obtiene una máscara, o índice entero, de las características seleccionadas

inverse_transform

Revierte la operación de transformación

predict

Reduce X a las características seleccionadas y luego predice usando la

predict_log_proba

Predice las probabilidades logarítmicas de clase para X.

predict_proba

Predice las probabilidades de clase para X.

score

Reduce X a las características seleccionadas y luego devuelve la puntuación del

set_params

Establece los parámetros de este estimador.

transform

Reduce X a las características seleccionadas.

decision_function()

Calcula la función de decisión de X.

Parámetros
X{array-like or sparse matrix} de forma (n_samples, n_features)

Las muestras de entrada. Internamente, se convertirá a dtype=np.float32 y si se proporciona una matriz dispersa se convertirá a una dispersa csr_matrix.

Devuelve
scorearreglo, forma = [n_samples, n_classes] o [n_samples]

La función de decisión de las muestras de entrada. El orden de las clases corresponde al del atributo classes_. La regresión y la clasificación binaria producen un arreglo de forma [n_samples].

fit()
Ajusta el modelo RFE y luego el estimador subyacente en el

características.

Parámetros
X{array-like, sparse matrix} de forma (n_samples, n_features)

Las muestras de entrada de entrenamiento.

yarray-like de forma (n_samples,)

Valores objetivo.

fit_transform()

Ajusta a los datos y luego transformarlos.

Ajusta el transformador a X y y con los parámetros opcionales fit_params y devuelve una versión transformada de X.

Parámetros
Xarray-like de forma (n_samples, n_features)

Muestras de entrada.

yarray-like de forma (n_samples,) o (n_samples, n_outputs), default=None

Valores objetivo (None para transformaciones no supervisadas).

**fit_paramsdict

Parámetros de ajuste adicionales.

Devuelve
X_newarreglo ndarray de forma (n_samples, n_features_new)

Arreglo transformado.

get_params()

Obtiene los parámetros de este estimador.

Parámetros
deepbooleano, default=True

Si es True, devolverá los parámetros para este estimador y los sub objetos contenidos que son estimadores.

Devuelve
paramsdict

Los nombres de los parámetros se asignan a sus valores.

get_support()

Obtiene una máscara, o índice entero, de las características seleccionadas

Parámetros
índicesbooleano, default=False

Si es True, el valor de retorno será un arreglo de enteros, en lugar de una máscara booleana.

Devuelve
supportarreglo

Un índice que selecciona las características retenidas de un vector de características. Si indices es False, se trata de un arreglo booleano de forma [# características de entrada], en la que un elemento es True si su característica correspondiente es seleccionada para ser retenida. Si indices es True, se trata de una matriz de enteros de forma [# características de salida] cuyos valores son índices en el vector de características de entrada.

inverse_transform()

Revierte la operación de transformación

Parámetros
Xarreglo de forma [n_samples, n_selected_features]

Las muestras de entrada.

Devuelve
X_rarreglo de forma [n_samples, n_original_features]

X` con columnas de ceros insertadas donde las características habrían sido eliminadas por transform.

predict()
Reduce X a las características seleccionadas y luego predice usando la

estimador subyacente.

Parámetros
Xarreglo de forma [n_samples, n_features]

Las muestras de entrada.

Devuelve
yarreglo de forma [n_samples]

Los valores objetivo predichos.

predict_log_proba()

Predice las probabilidades logarítmicas de clase para X.

Parámetros
Xarreglo de forma [n_samples, n_features]

Las muestras de entrada.

Devuelve
parreglo de forma (n_samples, n_classes)

Las probabilidades logarítmicas de clase de las muestras de entrada. El orden de las clases corresponde al del atributo classes_.

predict_proba()

Predice las probabilidades de clase para X.

Parámetros
X{array-like or sparse matrix} de forma (n_samples, n_features)

Las muestras de entrada. Internamente, se convertirá a dtype=np.float32 y si se proporciona una matriz dispersa se convertirá a una dispersa csr_matrix.

Devuelve
parreglo de forma (n_samples, n_classes)

Las probabilidades de clase de las muestras de entrada. El orden de las clases corresponde al del atributo classes_.

score()
Reduce X a las características seleccionadas y luego devuelve la puntuación del

estimador subyacente.

Parámetros
Xarreglo de forma [n_samples, n_features]

Las muestras de entrada.

yarreglo de forma [n_samples]

Valores objetivo.

set_params()

Establece los parámetros de este estimador.

El método funciona tanto con estimadores simples como con objetos anidados (como Pipeline). Estos últimos tienen parámetros de la forma ``<component>__<parameter>` para que sea posible actualizar cada componente de un objeto anidado.

Parámetros
**paramsdict

Parámetros del estimador.

Devuelve
selfinstancia del estimador

Instancia del estimador.

transform()

Reduce X a las características seleccionadas.

Parámetros
Xarreglo de forma [n_samples, n_features]

Las muestras de entrada.

Devuelve
X_rarreglo de forma [n_samples, n_selected_features]

Las muestras de entrada con sólo las características seleccionadas.

Ejemplos con sklearn.feature_selection.RFE