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
Estimator
Instancia 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), entoncesstep
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_
ofeature_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, darregressor_.coef_
en el caso deTransformedTargetRegressor
onamed_steps.clf.feature_importances_
en el caso de class:~sklearn.pipeline.Pipeline
con su último paso llamadoclf
.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.
- estimator : instancia del
- Atributos
- estimator_ : instancia del
Estimator
Instancia 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.
- estimator_ : instancia del
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
Calcula la función de decisión de
X
.Ajusta el modelo RFE y luego el estimador subyacente en el
Ajusta a los datos y luego transformarlos.
Obtiene los parámetros de este estimador.
Obtiene una máscara, o índice entero, de las características seleccionadas
Revierte la operación de transformación
Reduce X a las características seleccionadas y luego predice usando la
Predice las probabilidades logarítmicas de clase para X.
Predice las probabilidades de clase para X.
Reduce X a las características seleccionadas y luego devuelve la puntuación del
Establece los parámetros de este estimador.
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 dispersacsr_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
yy
con los parámetros opcionalesfit_params
y devuelve una versión transformada deX
.- 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. Siindices
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 dispersacsr_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.