Unidad 5 - Taller 11: ¿quién se nos va?
Taller práctico evaluable · Semana 11 · 06278-ECO
1 Instrucciones generales
Cómo funciona este taller
- Es individual y evaluable, y se desarrolla en el tiempo restante de la clase (⏱️ diseñado para ≈ 55 minutos).
- Se resuelve sin la guía del profesor: todo lo que necesitas está en este documento, en la práctica y en la teoría. El flujo es el mismo torneo de la práctica — con otra empresa, otra pregunta y una trampa que deberás nombrar.
- El entregable es tu script:
apellido_nombre_taller11.R. Los análisis van como comentarios (##) en la sección que corresponda. - ⚠️ Regla de oro doble: (1) el script corre completo con Source, sin errores (un script roto pierde el punto de la sección donde se rompe); (2) toda cifra citada sale de código presente en el script.
- 🌱 Semillas: usa
set.seed(11)en la línea inmediatamente anterior a cada paso aleatorio (partición, árbol sin frenos, bosque), como en la práctica. Así tus cifras son reproducibles al calificar. - 📤 Entrega: sube el
.Ra Intu antes de terminar la clase.
El dato (guárdalo en data/ de tu proyecto): clientes_conectatel.csv — 350 clientes de ConectaTel con cinco características y la etiqueta fuga (Si / No).
Distribuye tu tiempo: Punto 0 ≈ 5 min · Punto 1 ≈ 8 min · Punto 2 ≈ 15 min · Punto 3 ≈ 15 min · Punto 4 ≈ 12 min.
2 El encargo de la VP de clientes
🌐 ConectaTel es un proveedor regional de internet. El año pasado perdió a cerca del 30% de sus clientes y su VP de clientes te contrata con este briefing: “Recuperar a un cliente perdido nos cuesta alrededor de 18 meses de su factura en marketing. En cambio, una llamada de retención — con descuento incluido — cuesta casi nada. Necesito que el modelo me diga a quién llamar antes de que se vaya. Prefiero mil veces llamar a alguien que no pensaba irse, que enterarme tarde de uno que sí.”
Dos cosas de ese párrafo son instrucciones técnicas disfrazadas — tenlas presentes en cada punto: cuál es la clase positiva que importa (los que se van: fuga = "Si") y cuál error es barato y cuál caro para esta empresa.
3 Punto 0 — Proyecto y radiografía (0.5 puntos)
Crea apellido_nombre_taller11.R con encabezado, carga la base por ruta relativa, convierte fuga a factor y haz la radiografía.
## ============================================
## Taller 11 — ConectaTel: ¿quién se nos va?
## Nombre: ______________ Código: ___________
## Fecha: ______________
## Qué hace: entrena y compara clasificadores de
## fuga de clientes y recomienda a quién llamar
## ============================================
## Librerías / Libraries
pacman::p_load(dplyr, rpart, rpart.plot, randomForest)
## Cargar datos / Load data
## fuga como factor / target as factor
## Radiografía: dim, str, table del target## Punto 0c — responde como comentario:
## ¿Cuál es la clase MINORITARIA y qué porcentaje de la base representa?
## ¿Por qué esa clase, y no la mayoritaria, es la que le importa a la VP?4 Punto 1 — La partición y la vara tramposa (1.0 punto)
- Parte 80/20 con
set.seed(11)y verifica la distribución defugaen train y test. - Calcula la accuracy del baseline (predecir siempre la clase mayoritaria).
- La pregunta que descubre la trampa — respóndela como comentario con una cifra calculada: de los clientes del test que sí se fugan, ¿cuántos detecta el baseline? ¿Qué opinaría la VP de un “modelo” con esa accuracy tan decente?
## Punto 1a — partición y verificación
## Punto 1b — baseline
## Punto 1c — comentario (la cifra clave aquí no es la accuracy…)5 Punto 2 — El memorizador, la poda y la lectura (1.25 puntos)
- Entrena el árbol sin frenos (
cp = 0.0001, minsplit = 2, minbucket = 1, con suset.seed(11)en la línea anterior). Reporta con código: número de hojas, accuracy en train y accuracy en test. Comenta la brecha en una frase — aquí sí vas a ver al memorizador pagar caro. - Poda con la regla 1-SE de la práctica (tabla
cptable: tope = mínimo dexerror+ suxstd; el primer árbol que quepa bajo el tope). Reporta elcpelegido y las hojas del árbol podado, y grafícalo conrpart.plot(). - Evalúa el árbol podado en test con positivo = “Si”: matriz de confusión, accuracy, precisión y recall (guarda
tp,fn,fp,tncomo en la práctica). - El comentario que vale oro: la accuracy del árbol podado quedó prácticamente igual a la del baseline. ¿Significa que el árbol es inútil? Argumenta con la métrica correcta y sus cifras.
## Punto 2a — el memorizador (hojas, train, test) + comentario brecha
## Punto 2b — poda 1-SE (cp elegido, hojas) + rpart.plot
## Punto 2c — matriz y métricas del podado (positivo = "Si")
## Punto 2d — comentario: ¿inútil o no? ¿con cuál métrica se defiende?6 Punto 3 — El bosque y la lista de llamadas (1.25 puntos)
- Entrena un Random Forest de 500 árboles (su
set.seed(11)antes). Evalúa en test: matriz, accuracy, precisión y recall de"Si". ¿Le gana al árbol podado? ¿En qué métrica mejora más? - Imprime la importancia de variables. ¿Cuáles son las dos que mandan y cuál resultó casi decorativa?
- El umbral de retención. La VP dijo que sobre-alertar es barato: calcula las probabilidades de fuga (
type = "prob"), aplica un umbral de 0.3 y reporta la nueva matriz, el recall y la precisión de"Si". - Comentario (3-4 líneas): comparando el bosque a umbral estándar contra el de umbral 0.3 — ¿cuántos fugados más captura la lista de llamadas y cuántas falsas alarmas extra cuesta? Con los costos del briefing, ¿recomiendas el umbral 0.3?
## Punto 3a — random forest + métricas
## Punto 3b — importancia de variables + lectura
## Punto 3c — umbral 0.3: matriz, recall, precisión
## Punto 3d — comentario: ¿vale la pena la lista larga?7 Punto 4 — El memorando a la VP (1.0 punto)
Cierra el script con el memorando, como comentario y en lenguaje de negocio:
## ============================================
## MEMORANDO PARA LA VP DE CLIENTES
## ============================================
## a) El perfil del cliente que se va (3-4 líneas): descríbelo usando
## lo que dicen el árbol podado y la importancia del bosque —
## ¿quién es, qué hace antes de irse? Nada de "nodos": háblale de
## clientes.
##
## b) La recomendación (3-4 líneas): qué modelo despliegas, con qué
## umbral, y qué resultados esperar — cita al menos TRES cifras
## tuyas (p. ej. de cada N llamadas, cuántas fugas reales; qué %
## de las fugas captura; qué costo tiene la lista larga).
##
## c) Un riesgo honesto (2 líneas): ¿qué puede hacer que este modelo
## falle el próximo año, o qué limitación tienen estas métricas?
## (pista: ¿cuántos fugados hay en tu test?)8 Rúbrica de evaluación
| Punto | Qué se evalúa | Puntos |
|---|---|---|
| 0. Proyecto y radiografía | Script con encabezado; carga por ruta relativa; fuga como factor; radiografía y respuesta 0c |
0.5 |
| 1. Partición y vara | Partición con semilla y verificación (a: 0.3); baseline con código (b: 0.3); la trampa nombrada con cifra: el baseline no detecta ni un fugado (c: 0.4) | 1.0 |
| 2. Memorizador y poda | Sin frenos + brecha train/test comentada (a: 0.35); poda 1-SE con código y gráfico (b: 0.35); métricas con positivo = “Si” (c: 0.3); el argumento accuracy vs. recall (d: 0.25) | 1.25 |
| 3. Bosque y umbral | RF + métricas y comparación (a: 0.4); importancia leída (b: 0.25); umbral 0.3 con código (c: 0.3); juicio costo-beneficio (d: 0.3) | 1.25 |
| 4. Memorando | Perfil del fugado en lenguaje de negocio; recomendación con ≥3 cifras propias; riesgo honesto | 1.0 |
| Total | 5.0 |
Recordatorios que la rúbrica aplica sin piedad
- Script que no corre completo → se pierde el punto de la sección donde se rompe.
- Cifra citada sin código que la produzca → no cuenta.
- Métricas de los Puntos 2 y 3 calculadas con la clase positiva equivocada (
"No") → el punto c correspondiente se pierde: leer qué clase importa era parte del encargo. - Los comentarios de análisis (1c, 2d, 3d y el memorando) los redactas tú.
9 Declaración de uso de IA
Cierra tu script con este bloque diligenciado:
## ============================================
## DECLARACIÓN DE USO DE IA
## Herramienta y modelo usados: _______________ (o "No usé IA")
## Para qué la usé: ____________________________________________
## Qué verifiqué por mi cuenta: ________________________________
## ============================================Nota: la IA puede ayudarte con sintaxis (política del curso desde la semana 2, con agentes desde la 8). Pero el juicio — cuál métrica manda aquí, si el umbral 0.3 conviene, qué perfil tiene el cliente que se fuga — es exactamente lo que este taller evalúa que sepas hacer tú.