Ejercicio de RFE sobre validación cruzada

Autor: | Última modificación: 22 de diciembre de 2022 | Tiempo de Lectura: 2 minutos
Temas en este post: ,

¿Sabías que se puede aplicar RFE sobre validación cruzada? En este artículo veremos cómo funciona el Recursive Features Elimination en un ejercicio de validación cruzada. Vamos a implementar el algoritmo de selección de características RFE sobre validación cruzada, para que así, automáticamente, podamos abordar una selección de características.

RFE sobre validación cruzada: ejercicio

#RFE sobre validación cruzada
from sklearn.model selection import StratifiedKFold
from sklearn.feature selection import RFECV

SVC = SVC (kernel- linear) #sólo funciona con Kernel Lineal

rfecv = RFECV (estimator = svc, step = 1, cv = 5, scoring = 'accuracy')
rfecv.fit (X_train, y_train)

plt.figure ()
plt.xlabel ("# variables")
plt.ylabel ("5 - fold ACC")
plt.plot (range (1, len (rfecv.grid_scores_) + 1), rfecv.grid_scores_, ' -o ')
plt.show ()

print ('Variables seleccionadas: ', [f for f in features [rfecv.support_]])
print ('Acc (TEST): %0.2f% rfecv.score (x_test, y_test))
#No devuelve std, no podemos pintar barras error
RFE sobre validación cruzada

¿Qué es lo que nos dice esta gráfica? Pues que el mejor número de variables es 4. Imaginemos que, en vez de 4, el resultado nos hubiera arrojado 8, ¿lo habríamos cogido? Probablemente no, porque vemos que la curva se estabiliza a partir de 4, lo cual indica que no habría mucha varianza a partir de este número y probablemente lo único que ganaríamos sería un subidón en los costos de entrenamiento.

Aunque no le hemos dicho qué variables debe coger, por defecto cogerá las 4 primeras, que están ordenadas ya por relevancia.

rfecv.n_features_

4

A continuación, lo que haremos será crear un RFE con un svc y con un n_features_to_select.

#RFE sobre validación cruzada
from sklearn, feature_selection import RFE

nfeaturesOptimo = rfecv.n_features
rfe = RFE (estimator = svc, step = 1, n_features_to_select = nfeaturesOptimo).fit (X_train, y_train)
print ('Variables seleccionadas: ', [f for f in features [rfe.support_]])

print ('Acc (TEST): %0.2f'% rfe.score (X_test, y_test))

Variables seleccionadas: [‘Pregnancies’, ‘Glucose’, ‘BMI’, ‘DiabetesPedigreeFunction’]

Acc (TEST): 0.76

Lo que nos aparece, después de hacer una selección de características que no es aleatoria, con las 4 variables que se han seleccionado, lo que obtenemos es un accuracy de 0.76.

¿Qué sigue?

Si quieres seguir aprendiendo sobre el mundo del Big Data, una de las disciplinas mejor pagadas en la actualidad, te recomendamos el Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp, una formación intensiva en la que adquirirás todas las herramientas teóricas y prácticas que te permitirán dar un paso más allá en tu vida profesional en pocos meses. ¡No esperes más, sigue tu camino hacia el éxito y solicita información ahora!

👉 Descubre más del Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp ¡Descarga el temario!

👉 Prueba el Bootcamp Gratis por una Semana ¡Empieza ahora mismo!

👉 Conoce nuestros otros Bootcamps en Programación y Tecnología

[email protected]

¿Trabajo? Aprende a programar y consíguelo.

¡No te pierdas la próxima edición del Aprende a Programar desde Cero Full Stack Jr. Bootcamp!

 

Prepárate en 4 meses, aprende las últimas tecnologías y consigue trabajo desde ya. 

 

Solo en España hay más de 120.400 puestos tech sin cubrir, y con un sueldo 11.000€ por encima de la media nacional. ¡Es tu momento!

 

🗓️ Próxima edición: 13 de febrero

 

Reserva tu plaza descubre las becas disponibles.