Python Data Science Program
📓 Abrir notebook en GitHub

Clase 083 — Voting classifiers: hard y soft

Parte: 1 — Machine Learning Clásico · Fuente: Géron, cap. 7. ⏱️ Duración estimada: 45 min.

🎯 Objetivo

Combinar varios modelos heterogéneos en un ensemble por votación y entender cuándo conviene hard voting (voto por mayoría) versus soft voting (promedio de probabilidades), apoyándonos en el principio de wisdom of the crowd.

📚 Resultados de aprendizaje

Al finalizar la clase, el estudiante podrá:

🗺️ Temas

📖 Definiciones y características

📂 Dataset / recursos

🧪 Ejercicios

  1. Cargar make_moons y partir en train/test (80/20, random_state=42). Entrenar por separado LogisticRegression, RandomForestClassifier y SVC(probability=True). Reportar accuracy de cada uno.
  2. Armar un VotingClassifier con esos tres modelos y voting="hard". Comparar accuracy contra cada modelo base.
  3. Repetir con voting="soft" (recordá SVC(probability=True)). ¿Mejora? ¿Por qué?
  4. Probar weights=[1, 2, 1] favoreciendo al Random Forest. ¿Cómo cambia la performance? Justificar.
  5. Reemplazar uno de los modelos por una copia casi idéntica de otro (ej.: dos regresiones logísticas con C muy parecido). Observar y explicar por qué el ensemble deja de ganar.

📝 Homework verificable

Entregar un script voting.py que:

  1. Cargue make_moons(n_samples=500, noise=0.30, random_state=42).
  2. Entrene tres modelos base distintos y un VotingClassifier en modo hard y otro en modo soft.
  3. Imprima la accuracy en test de los cinco (3 base + 2 ensembles).

Criterio de aceptación: el VotingClassifier en modo soft debe alcanzar accuracy ≥ que el mejor modelo base individual sobre el test split. Si no lo logra, justificar en un comentario qué modelo está rompiendo la diversidad o la calibración.

⚠️ Errores comunes

❓ Preguntas frecuentes

🔗 Referencias

📥 Material descargable

➡️ Siguiente clase

Clase 084 — Bagging y pasting