Universidad de SonoraReconocimiento
de Patrones
Una competencia de Kaggle · En equipos de 1 a 3 personas · 30 % de la calificación

Proyecto integrador

Participar en serio en una competencia de aprendizaje automático, documentarlo en un repositorio abierto y defenderlo en persona.

En el proyecto tu equipo entra a una competencia de Kaggle y trata de hacerlo lo mejor posible. Lo difícil de una competencia no es entrenar un modelo, sino saber si de verdad es mejor que el anterior sin sobreajustar el leaderboard. Por eso, además del lugar en la tabla, se califica cómo trabajaron: cómo validaron, qué probaron, qué funcionó, qué no y por qué.

Las competencias

Escoge una de estas cuatro competencias. Son de aprendizaje automático clásico (no de modelos de lenguaje), son difíciles y usan lo que vemos en el curso.

CompetenciaDatosMétricaUnidadesPor qué
RSNA Knee Abnormality DetectionResonancias magnéticas de rodillaAUC ROC promedio de 12 hallazgos3, 6Clasificación multietiqueta de imágenes médicas con redes convolucionales y transferencia. Es una competencia de código: la libreta corre en Kaggle con GPU, sin internet y en menos de 9 horas.
ROGII: Wellbore Geology PredictionRegistros de pozos horizontales (rayos gamma y trayectoria)RMSE1, 5, 7Predecir, pie por pie, la posición geológica de un pozo a partir de su señal de rayos gamma y la de un pozo de referencia. Pide pensar con cuidado en la validación (por pozo) y en atributos de señales.
Predicting Soil Grain Size Distributions from ImagesFotos de muestras de sueloDistancia de Wasserstein (EMD) entre curvas3, 6Predecir la curva granulométrica de un suelo a partir de fotos de celular. Hay solo 24 muestras para entrenar y la prueba usa otras cámaras: aquí la validación y el sobreajuste son el problema.
Enveda CASMI 2026: Molecule ID from Mass SpectraEspectros de masasMRR@253, 5, 6Identificar una molécula a partir de su espectro: para cada espectro se propone una lista ordenada de 25 candidatas. Sigue abierta hasta el 14 de diciembre de 2026. Es una competencia de código (la libreta corre en Kaggle, sin internet, en menos de 9 horas).

El lugar en la tabla. Enveda sigue abierta: tu lugar es el de tu equipo en la tabla pública el día de la entrega. Las otras tres ya cerraron, pero aceptan envíos tardíos (late submissions), que reciben su puntuación pública y privada aunque no aparecen en la tabla. En ese caso tu lugar es el lugar equivalente: el que tendrías en la tabla privada final con tu puntuación privada. La tabla se descarga desde la pestaña Leaderboard.

Entrega

CuándoQué se sube a Teams
Entrega30 de noviembre de 2026Liga al repositorio público en GitHub, captura de tu mejor envío con su puntuación y captura de la tabla donde se vea tu lugar (o el lugar equivalente).
Defensa oralDespués de la entregaNada. Se agenda una cita por equipo.

Se califica el repositorio tal como está el 30 de noviembre de 2026 (el último commit antes de las 23:59).

Reglas

  • Cuenta de Kaggle. El README dice el usuario de Kaggle de cada integrante, para poder verificar los envíos.
  • Las reglas de Kaggle se respetan. Si la competencia no permite publicar los datos, el repositorio trae un script que los descarga con la API de Kaggle en lugar de los datos.
  • Repositorio abierto en GitHub, con licencia abierta (MIT o similar). Cada integrante sube sus propios commits.
  • Código propio. Puedes leer y aprender de las libretas y discusiones públicas de la competencia, pero si usas una idea o un fragmento de código de alguien, lo citas con su liga. Copiar una libreta pública y enviarla no es un proyecto.
  • Uso de IA declarado en el README: para qué se usó y en qué partes.

Qué debe tener el repositorio

proyecto/
├── README.md            # el reporte del proyecto (ver abajo)
├── pyproject.toml       # entorno con uv (o requirements.txt con versiones)
├── datos/descargar.py   # descarga los datos con la API de Kaggle
├── libretas/
│   ├── 01-exploracion.ipynb
│   ├── 02-validacion-y-linea-base.ipynb
│   ├── 03-modelos.ipynb
│   └── 04-envio-final.ipynb
├── src/                 # funciones reutilizables (atributos, validación, modelos)
├── experimentos.csv     # bitácora: un renglón por experimento
└── leaderboard/         # capturas de la tabla y de tus envíos

El README.md es el reporte. Debe contestar, en este orden:

  1. El problema. Qué se predice, con qué datos, con qué métrica y por qué esa métrica tiene sentido para ese problema.
  2. Los datos. Qué encontraron en la exploración que cambió lo que hicieron: distribuciones, faltantes, desbalance, estructura temporal o por grupos, diferencias entre entrenamiento y prueba.
  3. La validación. Cómo separaron los datos para validar, por qué esa partición imita a la de la competencia, y una tabla que compare la puntuación en validación con la del leaderboard público en varios envíos. Si no se parecen, qué creen que pasa.
  4. La línea base y la ruta de mejora. El modelo más simple razonable y cada mejora importante después, con su puntuación en validación. Incluye lo que no funcionó.
  5. El modelo final. Qué es, sus hiperparámetros y cómo se eligieron, y cuánto tarda en entrenar.
  6. El resultado. Puntuación del envío final (pública y privada, si la hay), lugar en la tabla o lugar equivalente, número de equipos y las capturas correspondientes.
  7. Qué harían con más tiempo.
  8. Equipo y uso de IA. Qué hizo cada integrante y para qué usaron asistentes de IA.
  9. Cómo reproducirlo. Los comandos, en orden, para pasar de un repositorio recién clonado al archivo submission.csv.

Cómo se califica

El proyecto vale 100 puntos: 60 por el repositorio, 15 por el resultado en la competencia y 25 por la defensa oral.

Repositorio (60 puntos)

CriterioPuntosCompletoParcialInsuficiente
Validación15La partición imita a la de la competencia, sin fugas; la tabla de validación contra leaderboard está y se discute.Validación razonable pero sin justificar o sin comparar con el leaderboard.Se elige el modelo mirando el leaderboard o hay fuga de información.
Ruta de modelado15Línea base, mejoras medidas una por una, bitácora completa con lo que no funcionó, búsqueda de hiperparámetros con validación.Varios modelos sin bitácora o sin línea base.Un solo modelo sin comparación.
Exploración10Gráficas que responden preguntas concretas y conclusiones que se usan después en los atributos o la validación.Exploración sin conclusiones.Exploración mínima.
Reproducibilidad10Se sigue el README y se obtiene el envío final sin tocar nada; entorno con versiones y semillas fijas.Corre con arreglos menores.No corre.
Reporte10El README contesta los nueve puntos de forma clara y honesta.Faltan puntos o es confuso.Sin reporte.

Resultado en la competencia (15 puntos)

Se cuenta por tu lugar (o lugar equivalente) como porcentaje del total de equipos de la tabla:

LugarPuntos
10 % superior15
25 % superior12
50 % superior9
Mejor que una línea base trivial (por ejemplo, predecir el promedio)6
Al menos un envío válido3

Defensa oral (25 puntos, individual)

Cada integrante contesta preguntas sobre cualquier parte del repositorio, no solo la que hizo: qué hace una función, por qué se eligió una validación, qué pasaría si se cambia algo, cómo se interpreta una gráfica.

Si no puedes explicar lo que está en tu repositorio, asumiré que lo hizo una IA generativa y que no lo estudiaste ni intentaste entenderlo, y el proyecto completo vale cero para ti. Lo mismo aplica a la parte oral del examen intermedio. Ver Evaluación.