sklearn.feature_selection.RFECV

class sklearn.feature_selection.RFECV

Clasificación de características con eliminación recursiva de características y selección validada cruzada del mejor número de características.

Ver entrada de glosario para cross-validation estimator.

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 a través de un atributo coef_ o de un atributo feature_importances_.

stepentero o punto flotante, default=1

Si es mayor o igual que 1, entonces 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. Ten en cuenta que la última iteración puede eliminar menos características que step para llegar a min_features_to_select.

min_features_to_selectint, default=1

El número mínimo de características a seleccionar. Este número de características siempre se puntuará, incluso si la diferencia entre el recuento original de características y min_features_to_select no es divisible por step.

Nuevo en la versión 0.20.

cvint, generador de validación cruzada o un iterable, default=None

Determina la estrategia de división de la validación cruzada. Las entradas posibles para cv son:

  • None, para usar la validación cruzada de 5-fold por defecto,

  • entero, para especificar el número de partes.

  • separador de CV,

  • Un iterable que produce divisiones (train, test) como arreglos de índices.

Para entradas enteras/None, si y es binario o multiclase, se utiliza StratifiedKFold. Si el estimador es un clasificador o si y no es binario ni multiclase, se utiliza KFold.

Consulta Manual de usuario para las diversas estrategias de validación cruzada que pueden ser utilizadas aquí.

Distinto en la versión 0.22: cv es el valor predeterminado si None cambió de 3-fold a 5-fold.

scoringstring, callable o None, default=None

Una cadena (ver la documentación de la evaluación del modelo) o un objeto / función callable puntuador (scorer) con la firma scorer(estimator, X, y).

verboseint, default=0

Controla la verbosidad de la salida.

n_jobsint o None, default=None

Número de núcleos para ejecutar en paralelo mientras se ajusta a través de partes. None significa 1 al menos en un contexto joblib.parallel_backend. -1 significa utilizar todos los procesadores. Ver Glosario para más detalles.

Nuevo en la versión 0.18.

importance_getterstr o callable, 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. Por ejemplo, dar regressor_.coef_ en el caso de TransformedTargetRegressor o named_steps.clf.feature_importances_ en el caso de Pipeline con su último paso llamado clf.

Si callable, sobrescribe el getter de importancia de características predeterminadas. 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 EstimadorInstancia del estimador

El estimador ajustado utilizado para seleccionar las características.

grid_scores_ndarray de forma (n_subsets_of_features)

Las puntuaciones de validación cruzada, de modo que grid_scores_[i] corresponde a la puntuación CV del subconjunto i-ésimo de características.

n_features_int

El número de características seleccionadas con validación cruzada.

ranking_narray de forma (n_features,)

La clasificación de las características, de modo que ranking_[i] corresponde a la posición de clasificación de la i-ésima característica. 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

RFE

Eliminación recursiva de características.

Notas

El tamaño de grid_scores_ es igual a ceil((n_features - min__features_to_select) / step) + 1, donde step es el número de características eliminadas en cada iteración.

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 informativas no conocidas a priori en el conjunto de datos Friedman #1.

>>> from sklearn.datasets import make_friedman1
>>> from sklearn.feature_selection import RFECV
>>> from sklearn.svm import SVR
>>> X, y = make_friedman1(n_samples=50, n_features=10, random_state=0)
>>> estimator = SVR(kernel="linear")
>>> selector = RFECV(estimator, step=1, cv=5)
>>> 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 afinar automáticamente el número de características seleccionadas

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 utilizando la

predict_log_proba

Predice las probabilidades 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 a una csr_matrix dispersa.

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 afinar automáticamente el número de características seleccionadas

características.

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

Vector de entrenamiento, donde n_samples es el número de muestras y n_features es el número total de características.

yarray-like de forma (n_samples,)

Valores objetivo (enteros para la clasificación, números reales para la regresión).

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

Etiquetas de grupo para las muestras utilizadas al dividir el conjunto de datos en conjunto de entrenamiento/prueba. Sólo se utiliza junto con una instancia de cv «Group» (por ejemplo, GroupKFold).

Nuevo en la versión 0.20.

fit_transform()

Ajusta a los datos y luego transformarlos.

Ajusta el transformador a X e 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
indicesbooleano, 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 un arreglo 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 utilizando 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 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 a una csr_matrix dispersa.

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]

Los 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.RFECV