Todo lo que necesitas saber sobre los métodos wrapper

| Última modificación: 16 de abril de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

Los métodos wrapper utilizan un algoritmo de machine learning como caja negra para evaluar las prestaciones de distintos conjuntos de características. Es decir, estos funcionan como subconjuntos reducidos de las variables de entrada, buscando mejores resultados.

Necesitan:

  • Un algoritmo de ML.
  • Un criterio de relevancia.
  • Un procedimiento de búsqueda de todos los posible subconjuntos de características (normalmente métodos heurísticos).

Utilizan diferentes procedimientos de búsqueda, como:

  • Fuerza bruta.
  • Aleatorios: algoritmos genéticos, simulating annealing.
  • Estrategias greedy: selección hacia delante o hacia atrás.

Fuerza bruta

Tenemos una serie de características en un dataset de venta de casas:

  • Lot size.
  • Single Family.
  • Year built.
  • Last sold price.
  • Last sale price/sqft.
  • Finished sqft.
  • Unfinished sqft.
  • Finished basement sqft.
  • Floors.
  • Flooring types.
  • Parking type.
  • Parking amount.
  • Cooling.
  • Heating.
  • Exterior materials.
  • Roof type Structure style.
  • Dishwasher.
  • Garbage disposal.
  • Microwave.
  • Range/Oven.
  • Refrigerator.
  • Washer.
  • Dryer.
  • Laundry location.
  • Heating type.
  • Jetted Tub.
  • Deck.
  • Fenced Yard.
  • Lawn.
  • Garden.
  • Sprinkler System.

¿Qué es lo que pasa con estas características en la fuerza bruta, uno de los métodos wrapper?

métodos wrapper

En esta gráfica vemos el error en entrenamiento. El eje Y es el error de entrenamiento y el eje X es el número de características que usamos. Entonces, empezamos sin ninguna característica, solo con ruido; al intentar predecir el precio de la casa con ruido, tenemos un error que está marcado con la bolita rosa.

Luego, empezamos con una característica, que en este caso es dormitorios:

Ya vemos que, incluso con solo una característica, el error baja. ¿Qué hacemos después? Probamos con otra característica y vemos que baja más:

Luego probamos con otra:

Y así, sucesivamente, vamos probando hasta tenerlas todas:

Entonces, tenemos todos los posibles errores con cada una de las características.

Lo que hacemos después es probar con todas las combinaciones de dos características: bedrooms con bathrooms, bedrooms con metros cuadrados, etc.

Resulta que en este dataset la mejor combinación de características es bedrooms con bathrooms.

Este proceso lo iteramos con todas las características y sus posibles combinaciones y, al final, lo que obtenemos es esto:

¿Qué hemos conseguido con esto? Lo que buscábamos era encontrar cuándo el error se estabiliza, a pesar de seguir añadiendo características.

Habrá personas que, por ejemplo, decidan cortar el error en 4, porque ya más o menos en ese número vamos viendo que se estabiliza el error; habrá otras que corten en 5 o 6, eso ya depende mucho de lo que queramos conseguir con nuestro ejercicio y estos métodos wrapper y cuál es el resultado que deseamos obtener.

Este es, por tanto, uno de los métodos wrapper, aunque no se usa mucho porque a nivel computacional la fuerza bruta sale demasiado costosa.

Selección hacia adelante

Una de las alternativas para el anterior procedimiento es la selección hacia adelante. En sus primeros pasos, funciona igual que la fuerza bruta, pero aquí la diferencia es que, cuando llegamos a combinar dos características, escogemos la mejor de la primera fase de una sola característica (cosa que en la fuerza bruta no es necesario hacer) y la juntamos con otra característica cualquiera.

En este caso, fijamos metros cuadrados, que ha sido la mejor de la primera fase, y la combinamos con las demás características.

Así, sucesivamente, iremos iterando y añadiendo características:

El error nunca va a aumentar y las soluciones, cuando ya tenemos todas las características listas, convergen:

A modo de resumen

Para finalizar, veamos una síntesis de todo lo que hemos mencionado acerca de los métodos wrapper:

  • Complejidad
    • Fuerza bruta: O (2D)
      • Si D = 20 → 220 ≈ 1e6 posibilidades
    • Complejidad selección hacia adelante: O (2D)
  • Puntos a favor de los métodos wrapper (puntos OK): algoritmo de machine learning como caja negra, solución universal y sencilla.
  • Puntos en contra de los métodos wrapper (puntos KO): para cada subconjunto se tiene que crear un nuevo modelo (entrenamiento/validación).
    • k – fold CV (hay que hacerlo correctamente, en caso contrario no sirve de nada).

El Big Data es una de las disciplinas más demandadas de la actualidad. Si quieres seguir aprendiendo, tenemos para ti el Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp, una formación intensiva en la que podrás adquirir la fundamentación teórica y práctica para incursionar en un mercado laboral lleno de oportunidades magníficas. Tendrás a los mejores profesionales enseñándote y acompañándote en tu proceso educativo y en tu camino hacia el éxito. ¡No esperes más para cambiar tu vida y solicita información ahora!

Sandra Navarro

Business Intelligence & Big Data Advisor & Coordinadora del Bootcamp en Data Science, Big Data & Machine Learning.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Big Data, IA & Machine Learning

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado