¿Cómo hacer Ensemble Learning con Python?

La técnica de Ensemble Learning está basada en juntar varias técnicas de Machine Learning, para intentar aumentar la precisión. Es decir, en vez de realizar una predicción o clasificación, basándose en una sola técnica, lo que hace es emplear los resultados de varias técnicas para llegar a un resultado final. También se puede emplear en redes neuronales.  A continuación un código en Python con un ejemplo y más información de esta técnica.

botón

Código en Python.

El siguiente ejemplo, predice la talla de zapatos de un niño, con Ensemble Learning en base a un entrenamiento pasado, con otros niños.


botón
import pandas as pd
from sklearn.ensemble import VotingRegressor
from sklearn.tree import DecisionTreeRegressor
from sklearn.linear_model import LinearRegression
from sklearn.neighbors import KNeighborsRegressor
# Carga el archivo CSV como un DataFrame de Pandas
data = pd.read_csv(‘niños.csv’)
# Divide el DataFrame en características y etiquetas
X = data[[‘peso’, ‘sexo’, ‘altura’]]
y = data[‘talla’]
# Crea una lista de modelos
models = [
    (‘decision_tree’, DecisionTreeRegressor()),
    (‘linear_regression’, LinearRegression()),
    (‘k_neighbors’, KNeighborsRegressor(n_neighbors=5))
]
# Crea un modelo de ensamble con los modelos anteriores
model = VotingRegressor(models)
# Entrena el modelo con los datos
model.fit(X, y)
# Hace una predicción con el modelo
peso = 50
sexo = 0 # 1 representa chico
altura = 158
talla_predicha = model.predict([[peso, sexo, altura]])
print(f’Para un peso de {peso} kg, una altura de {altura} cm y un sexo masculino, se predice una talla de {talla_predicha[0]}’)

¿Qué ventajas tiene el Ensemble Learning?

  • Reducir el sobreajuste: si uno de los modelos tiene sobreajuste, no afectará tanto, que si se estuviera utilizando solo ese método, con ese error.
  • Mejorar la precisión: es el principal objetivo de ese algoritmo, al utilizar el conjunto de resultados como un punto a favor.
  • Más estabilidad/robusto: si uno de los algoritmos falla, el resto puede equilibrar el resultado final.

¿Qué desventajas tiene el Ensemble Learning?

  • Mayor gasto de recursos y tiempo: al tener que entrenar más modelos, se gasta más tiempo y recursos económicos para ello.
  • Puede crear sobreajuste: a pesar de que uno de los objetivos principales, es solucionar este error. Si hay una relación muy grande entre los diferentes modelos, también puede aparecer este problema.
  • Más código y complejidad: es más complejo de programar, más líneas de código y requiere de mayores conocimientos/personal cualificado.

Casos y ejemplos reales de este algoritmo.

  • Pronosticar el tiempo: es una técnica muy empleada en el sector de la meteorología.
  • Predicciones financieras: para mejorar el trading algorítmico y obtener mayores beneficios.
  • Detectar contenido publicitario: para la clasificación de correos electrónicos o mensajes, en especial, filtrar el correo basura.

Vídeo:

Javier Finance
Sígueme:
Últimas entradas de Javier Finance (ver todo)

Deja un comentario