sklearn.feature_selection.SelectFromModel

class sklearn.feature_selection.SelectFromModel

Metatransformador para seleccionar características basadas en ponderaciones de importancia.

Nuevo en la versión 0.17.

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

Parámetros
estimatorobjeto

El estimador base a partir del cual se construye el transformador. Puede ser tanto un estimador ajustado (si prefit es True) como un estimador no ajustado. El estimador debe tener un atributo feature_importances_ o coef_ después del ajuste.

thresholdstring o float, default=None

El valor del umbral que se utilizará para la selección de características. Las características cuya importancia es mayor o igual se mantienen mientras que las otras se descartan. Si es «median» (o «mean»), el valor del threshold es la mediana (o la media) de la importancia de las características. También puede utilizarse un factor de escala (por ejemplo, «1,25*mean»). Si es None y si el estimador tiene una penalización de parámetro establecida en l1, ya sea explícita o implícitamente (por ejemplo, Lasso), el umbral utilizado es 1e-5. En caso contrario, se utiliza «mean» por defecto.

prefitbooleano, default=False

Si se espera que se pase un modelo de preajuste al constructor directamente o no. Si es True, transform debe ser llamado directamente y SelectFromModel no puede ser utilizado con cross_val_score, GridSearchCV y utilidades similares que clonan el estimador. Si no, entrena el modelo usando fit y luego transform para hacer la selección de características.

norm_orderentero no nulo, inf, -inf, default=1

Orden de la norma utilizada para filtrar los vectores de coeficientes por debajo del threshold en el caso de que el atributo coef_ del estimador sea de dimensión 2.

max_featuresint, default=None

El número máximo de características a seleccionar. Para seleccionar sólo en base a max_features, establezca threshold=-np.inf.

Nuevo en la versión 0.20.

importance_getterstr o invocable, default=”auto”

Si es “auto”, utiliza la importancia de la característica ya sea a través de un atributo coef_ o del atributo 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 Pipeline con su último paso llamado clf.

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

El estimador base a partir del cual se construye el transformador. Se almacena sólo cuando se pasa un estimador no ajustado a SelectFromModel, es decir, cuando prefit es False.

threshold_float

El valor del umbral utilizado para la selección de características.

Ver también

RFE

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

RFECV

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

SequentialFeatureSelector

Selección de características basada en la validación cruzada secuencial. No se basa enponderaciones de importancia.

Notas

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

Ejemplos

>>> from sklearn.feature_selection import SelectFromModel
>>> from sklearn.linear_model import LogisticRegression
>>> X = [[ 0.87, -1.34,  0.31 ],
...      [-2.79, -0.02, -0.85 ],
...      [-1.34, -0.48, -2.55 ],
...      [ 1.92,  1.48,  0.65 ]]
>>> y = [0, 1, 0, 1]
>>> selector = SelectFromModel(estimator=LogisticRegression()).fit(X, y)
>>> selector.estimator_.coef_
array([[-0.3252302 ,  0.83462377,  0.49750423]])
>>> selector.threshold_
0.55245...
>>> selector.get_support()
array([False,  True, False])
>>> selector.transform(X)
array([[-1.34],
       [-0.02],
       [-0.48],
       [ 1.48]])

Métodos

fit

Ajusta el metatransformador SelectFromModel.

fit_transform

Ajustar a los datos y luego transformarlos.

get_params

Obtener los parámetros de este estimador.

get_support

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

inverse_transform

Revertir la operación de transformación

partial_fit

Ajuste el metatransformador SelectFromModel sólo una vez.

set_params

Establecer los parámetros de este estimador.

transform

Reduce X a las características seleccionadas.

fit()

Ajusta el metatransformador SelectFromModel.

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

Las muestras de entrada de entrenamiento.

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

Los valores objetivo (enteros que corresponden a clases en clasificación, números reales en regresión).

**fit_paramsOtros parámetros específicos del estimador
Devuelve
selfobjeto
fit_transform()

Ajustar 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()

Obtener 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()

Revertir 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.

partial_fit()

Ajuste el metatransformador SelectFromModel sólo una vez.

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

Las muestras de entrada de entrenamiento.

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

Los valores objetivo (enteros que corresponden a clases en clasificación, números reales en regresión).

**fit_paramsOtros parámetros específicos del estimador
Devuelve
selfobjeto
set_params()

Establecer los parámetros de este estimador.

El método funciona tanto en estimadores simples como en 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 sólo con las características seleccionadas.

Ejemplos usando sklearn.feature_selection.SelectFromModel