sklearn.feature_selection.SequentialFeatureSelector

class sklearn.feature_selection.SequentialFeatureSelector

Transformador que realiza la Selección Secuencial de Características.

Este Selector de Características Secuencial añade (selección hacia delante) o elimina (selección hacia atrás) características para formar un subconjunto de características de forma codiciosa. En cada etapa, este estimador elige la mejor característica para añadir o eliminar basándose en la puntuación de validación cruzada de un estimador.

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

Nuevo en la versión 0.24.

Parámetros
estimatorinstancia del estimador

Un estimador sin ajustar.

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.

direction: {“forward”, “backward”}, default=”forward”

Si se realiza una selección hacia delante o hacia atrás.

scoringstr, callable, list/tuple o dict, default=None

Una sola cadena (ver El parámetro scoring: definir las reglas de evaluación del modelo) o una llamada (ver Definir tu estrategia de puntuación a partir de funciones métricas) para evaluar las predicciones en el conjunto de prueba.

Ten en cuenta que cuando se utilizan puntuadores personalizados, cada puntuador debe devolver un único valor. Las funciones métricas que devuelven una lista/matriz de valores pueden incluirse en múltiples calificadores que devuelven un valor cada uno.

Si es None, se utiliza el método de puntuación del estimador.

cventero, 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 utilizar la validación cruzada de 5-fold por defecto,

  • entero, para especificar el número de pliegues en un (Stratified)KFold,

  • separador de CV,

  • Un iterable que produce divisiones (entrenamiento, prueba) como arreglos de índices.

Para entradas integer/None, si el estimador es un clasificador e y es binario o multiclase, se utiliza StratifiedKFold. En todos los demás casos, se utiliza KFold.

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

n_jobsint, default=None

Número de trabajos a ejecutar en paralelo. Cuando se evalúa una nueva característica para añadir o eliminar, el procedimiento de validación cruzada es paralelo sobre los pliegues. None significa 1 a menos que en un contexto joblib.parallel_backend. -1 significa que se utilizan todos los procesadores. Ver Glosario para más detalles.

Atributos
n_features_to_select_int

El número de características seleccionadas.

support_ndarray de forma (n_features,), dtype=bool

La máscara de las características seleccionadas.

Ver también

RFE

Eliminación recursiva de características basada en pesos de importancia.

RFECV

Eliminación recursiva de características basada en pesos de importancia, con selección automática del número de características.

SelectFromModel

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

Ejemplos

>>> from sklearn.feature_selection import SequentialFeatureSelector
>>> from sklearn.neighbors import KNeighborsClassifier
>>> from sklearn.datasets import load_iris
>>> X, y = load_iris(return_X_y=True)
>>> knn = KNeighborsClassifier(n_neighbors=3)
>>> sfs = SequentialFeatureSelector(knn, n_features_to_select=3)
>>> sfs.fit(X, y)
SequentialFeatureSelector(estimator=KNeighborsClassifier(n_neighbors=3),
                          n_features_to_select=3)
>>> sfs.get_support()
array([ True, False,  True,  True])
>>> sfs.transform(X).shape
(150, 3)

Métodos

fit

Aprende las características a seleccionar.

fit_transform

Ajusta a los datos y luego los transforma.

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

set_params

Establece los parámetros de este estimador.

transform

Reduce X a las características seleccionadas.

fit()

Aprende las características a seleccionar.

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

Vectores de entrenamiento.

yarray-like de forma (n_samples,)

Valores objetivo.

Devuelve
selfobjeto
fit_transform()

Ajusta a los datos y luego los transforma.

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.

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 usando sklearn.feature_selection.SequentialFeatureSelector