Con los libros de 10-01 y los cursos de 10-02 tienes contenido para años. Lo que ningún material aporta es lo que más acelera el aprendizaje: otras personas. Alguien que ya se topó con tu error de scikit-learn y lo resolvió; alguien que revisa tu cuaderno y te señala una fuga de datos que no veías; alguien que comparte un artículo que cambia tu forma de plantear un problema; alguien a quien tú, dentro de unos meses, ayudarás. Esta lección explica por qué participar en comunidades, cómo preguntar bien (la habilidad más rentable de un junior, con un ejemplo redactado de pregunta mala frente a buena), qué comunidades existen y para qué sirve cada una (preguntas y respuestas, competición y datos, código abierto, agregadores, chats, boletines y blogs, eventos, comunidades en español), qué normas de convivencia y seguridad hay que respetar (nunca compartir datos de clientes ni claves: enlaza con el RGPD de 02-03), cómo contribuir aunque seas principiante, y termina con una tabla resumen y con cómo NovaMarket usaría las comunidades sin exponer nada.
Como en todo el módulo: solo citamos comunidades reales y consolidadas, por nombre; las plataformas cambian de reglas, de actividad y hasta de existencia, así que comprueba su estado antes de dedicarles tiempo.
Contenido
- Por qué participar: aprender, desatascarse, red profesional y actualidad
- Cómo preguntar bien: el ejemplo mínimo reproducible
- Comunidades de preguntas y respuestas
- Plataformas de competición y datos
- Código abierto: GitHub y Hugging Face Hub
- Agregadores, discusión, chats y foros de proyectos
- Boletines y blogs de referencia
- Eventos: meetups, PyData y conferencias académicas
- Comunidades en español
- Netiqueta, seguridad y cómo contribuir
- Tabla resumen y aterrizaje en NovaMarket
- Errores Comunes y Consejos
- Ejercicios
- Conclusión
- Por qué participar: aprender, desatascarse, red profesional y actualidad
Cuatro razones, de la más inmediata a la más duradera:
- Desatascarse. Un error de instalación, una excepción críptica de PyTorch, un pipeline que da AUC 0,99 sospechoso (fuga de datos, seguro): alguien lo ha visto antes. Buscar bien y, si no aparece, preguntar bien, ahorra días.
- Aprender de cómo lo hacen otros. Leer los cuadernos mejor valorados de una competición, las respuestas aceptadas en un foro o las discusiones de un issue enseña criterio: qué se considera buena práctica y por qué.
- Red profesional. Los meetups y las contribuciones abiertas son la manera más natural de que te conozcan por lo que haces, no por tu currículum. Muchas primeras oportunidades salen de ahí.
- Mantenerse al día sin agobiarse. Un boletín semanal bien elegido y una comunidad activa filtran el ruido mejor que cualquier búsqueda.
Y una razón más, en sentido contrario: enseñar es la mejor forma de aprender. Responder una pregunta sencilla te obliga a entender de verdad.
- Cómo preguntar bien: el ejemplo mínimo reproducible
Casi todas las comunidades de preguntas y respuestas comparten unas normas que Stack Overflow resume en su guía "How to ask". La idea central es el ejemplo mínimo reproducible (MRE por sus siglas en inglés): el menor fragmento de código, con los datos mínimos, que reproduce el problema en la máquina de otra persona.
Elementos de una buena pregunta:
- Título concreto con la librería y el síntoma ("
ValueErrorenPipeline.fitde scikit-learn conOneHotEncodery columnas nuevas en test"). - Qué intentas conseguir, en una o dos frases, sin la historia completa.
- Código mínimo que se pueda ejecutar tal cual: importaciones, datos de juguete generados en el propio código (nunca tus datos reales), las líneas que fallan.
- El error completo (la traza entera, no solo la última línea) o el resultado obtenido frente al esperado.
- Versiones (Python, librería, sistema) y qué has probado ya y qué pasó.
- Antes de publicar: busca (probablemente está respondida), reduce el ejemplo hasta que quitar una línea más haga desaparecer el error, y relee como si fueras el que responde.
Ejemplo: la misma duda, mal y bien formulada
Pregunta mala:
Título: "scikit-learn no funciona, ayuda urgente"
Hola, tengo un modelo de fraude para mi empresa y cuando lo ejecuto con los datos de este mes me da un error de que las columnas no coinciden. Adjunto el CSV de pedidos (2 MB). ¿Alguien sabe qué pasa? Lo necesito para mañana.
Problemas: título vacío, sin código, sin error completo, sin versiones, y adjunta datos reales de la empresa (posible incumplimiento del RGPD y de la política interna). Nadie puede ayudar y además genera un riesgo.
Pregunta buena:
Título: "
ValueError: columns are missingal llamar apredictcon unColumnTransformerajustado, tras eliminar una columna del DataFrame de entrada (scikit-learn 1.4)"Tengo un
PipelineconColumnTransformer+LogisticRegressionentrenado con las columnas["importe", "pais", "n_pedidos_previos"]. En inferencia, el DataFrame nuevo ya no incluyen_pedidos_previosypredictfalla. Quiero saber si hay una forma recomendada de tolerar columnas ausentes (rellenándolas) sin reentrenar, o si lo correcto es garantizar el esquema antes.Ejemplo mínimo reproducible:
import pandas as pd from sklearn.compose import ColumnTransformer from sklearn.preprocessing import OneHotEncoder, StandardScaler from sklearn.linear_model import LogisticRegression from sklearn.pipeline import Pipeline X = pd.DataFrame({"importe": [10.0, 200.0, 35.0, 500.0], "pais": ["ES", "FR", "ES", "PT"], "n_pedidos_previos": [3, 0, 12, 1]}) y = [0, 1, 0, 1] pre = ColumnTransformer([("num", StandardScaler(), ["importe", "n_pedidos_previos"]), ("cat", OneHotEncoder(handle_unknown="ignore"), ["pais"])]) modelo = Pipeline([("pre", pre), ("clf", LogisticRegression())]).fit(X, y) X_nuevo = X.drop(columns=["n_pedidos_previos"]) modelo.predict(X_nuevo) # ValueError: columns are missing: {'n_pedidos_previos'}Traza completa: (pegada íntegra).
Versiones: Python 3.11, scikit-learn 1.4, pandas 2.2, Linux.
He probado
X_nuevo["n_pedidos_previos"] = 0antes depredicty funciona, pero me preocupa que un cero altere elStandardScaler; también he mirado la documentación deColumnTransformery no veo una opción para columnas ausentes. ¿Cuál es la práctica recomendada?
Observa: título con síntoma y contexto, objetivo claro, datos de juguete generados en el código (no hay ningún cliente real), error, versiones, lo que se probó y una pregunta concreta. Es el tipo de pregunta que se responde en minutos y que, además, ayuda a los siguientes que busquen ese error.
- Comunidades de preguntas y respuestas
| Comunidad | Para qué | Nivel | Cómo empezar |
|---|---|---|---|
| Stack Overflow (stackoverflow.com) | Errores concretos de código: Python, pandas, scikit-learn, PyTorch, entornos | Todos | Busca antes; lee "How to ask"; tu primera pregunta debe llevar un MRE. Empieza respondiendo preguntas de pandas fáciles para coger soltura. |
| Cross Validated (stats.stackexchange.com) | Dudas de estadística y ML conceptual: qué métrica, por qué sobreajusta, cómo interpretar un intervalo | Intermedio | Es más exigente en rigor; formula la pregunta con el modelo y los datos descritos, no con código. |
| Data Science Stack Exchange (datascience.stackexchange.com) | Preguntas de práctica de ciencia de datos entre el código y la teoría (ingeniería de características, elección de modelo) | Introductorio-intermedio | Buen sitio para las dudas de "¿cómo se suele hacer esto?" que en Stack Overflow serían demasiado abiertas. |
Regla práctica: si el problema es "este código falla", Stack Overflow; si es "no sé si esto está bien planteado", Cross Validated o Data Science SE.
- Plataformas de competición y datos
Kaggle (kaggle.com) es a la vez plataforma de competiciones, repositorio de conjuntos de datos, entorno de cuadernos gratuito con GPU limitada (comprueba las condiciones actuales), micro-cursos (10-02) y foros: cada competición y cada dataset tiene su discusión, donde los participantes explican enfoques, errores y trucos. Cómo aprovecharlo como junior:
- Empieza por Titanic o House Prices (10-02) y, sobre todo, lee los cuadernos con más votos y las discusiones: es una clase magistral gratuita de ingeniería de características y validación.
- Publica tu propio cuaderno, aunque sea modesto, con explicación clara; los comentarios que recibas valen más que la puntuación.
- Los datasets públicos sirven para practicar los casos de NovaMarket con datos "de verdad" (ventas minoristas, reseñas, series temporales) sin usar datos internos.
- Ojo con el reflejo de "optimizar la tabla": en el trabajo real la métrica es la del negocio (08-01), no la de una tabla pública.
- Código abierto: GitHub y Hugging Face Hub
GitHub no es solo donde guardas tu repositorio novamarket_ia/ (07-04); es la mayor comunidad técnica:
- Issues de scikit-learn, pandas, PyTorch: cuando algo parece un bug, busca primero en los issues abiertos y cerrados; muchas veces está explicado y con solución provisional.
- Discussions (en los repositorios que las activan) para preguntas de uso, más informales que un issue.
- Contribuir: no hace falta empezar por código. Corregir una errata de documentación, añadir un ejemplo, mejorar un mensaje de error o reportar un bug con MRE son contribuciones reales y valoradas. Los proyectos grandes etiquetan tareas para principiantes (busca etiquetas del estilo "good first issue"). Lee siempre la guía de contribución del proyecto (
CONTRIBUTING.md).
Hugging Face Hub (huggingface.co) es el "GitHub de los modelos": modelos, datasets y demostraciones (Spaces) compartidos, cada uno con su model card (la misma idea de 08-01, y de hecho su plantilla se inspira en el artículo de Mitchell et al. de 10-01). Sus foros (discuss.huggingface.co) y las discusiones de cada modelo son el lugar para preguntas sobre transformers, ajuste fino y despliegue. Para NovaMarket es donde Marta buscaría un modelo preentrenado en español para las reseñas y leería su model card antes de usarlo.
- Agregadores, discusión, chats y foros de proyectos
- Reddit: r/MachineLearning (investigación, discusión de artículos, anuncios; nivel alto, útil para leer, no para preguntas básicas) y r/learnmachinelearning (preguntas de principiantes, recursos, proyectos; buen sitio para pedir orientación de itinerario). Existen también comunidades por herramienta (Python, datos).
- Hacker News (news.ycombinator.com): agregador tecnológico general con mucha IA; interesante por los comentarios de profesionales, con espíritu crítico. Úsalo para el pulso del sector, no como fuente única.
- Discord y Slack de comunidades: muchos proyectos y cursos tienen su chat, con actividad y normas propias: el de fast.ai (asociado a su foro y curso), el de Hugging Face (muy activo en PLN y modelos abiertos), y los PyTorch Forums (discuss.pytorch.org), un foro clásico donde el propio equipo de PyTorch responde dudas técnicas. La disponibilidad y las invitaciones a chats cambian; consulta la web oficial de cada proyecto.
Los chats son inmediatos pero efímeros; los foros y Stack Overflow quedan indexados y ayudan a los siguientes. Prefiere el foro para preguntas que otros puedan reutilizar.
- Boletines y blogs de referencia
- The Batch (DeepLearning.AI): boletín semanal con noticias comentadas por Andrew Ng, accesible y con criterio. Ideal para el perfil de Diego.
- Distill (distill.pub): revista en línea de explicaciones visuales e interactivas de deep learning; está en pausa desde hace tiempo, pero sus artículos siguen siendo un modelo de cómo explicar (atención, feature visualization, momentum).
- Blogs de investigación de los grandes laboratorios (Google/DeepMind, Meta AI, OpenAI, Anthropic, Microsoft Research, entre otros): anuncios y explicaciones de primera mano; léelos con la cautela de que son también comunicación corporativa.
- Towards Data Science y plataformas similares de artículos de autores independientes: hay material excelente y también flojo; aplica criterio (¿el autor muestra código y datos?, ¿cita fuentes?, ¿los resultados son plausibles?). Bien usadas, son buenas para tutoriales de casos concretos.
- Blogs personales de referentes (por ejemplo, los de Chollet, Karpathy o Huyen, citados en 10-01 y 10-02) suelen valer más que muchos agregadores.
- Eventos: meetups, PyData y conferencias académicas
- Meetups locales de datos, Python o IA en tu ciudad: charlas cortas, gente cercana, sin coste o con coste bajo. Es el lugar donde más red se construye; ir con una pregunta preparada y un proyecto del que hablar (tu portfolio de 10-04) multiplica el valor.
- PyData (pydata.org): red internacional de comunidades y conferencias de la fundación NumFOCUS sobre el ecosistema Python de datos; hay capítulos en muchas ciudades, incluidas españolas, con eventos periódicos y vídeos publicados.
- Conferencias académicas (NeurIPS, ICML, ICLR, AAAI, y por áreas ACL o CVPR): son donde se publica la investigación de la tabla de 10-01. Para un junior son referencia, no destino inmediato: sirven para saber qué se está investigando (los artículos y muchos vídeos se publican en abierto) y para entender de dónde vienen las herramientas de dentro de dos años.
- Comunidades en español
La comunidad hispanohablante es amplia y activa, aunque más dispersa. Con la prudencia de no recomendar nada que no podamos garantizar:
- PyData y meetups de datos e IA en ciudades españolas y latinoamericanas: existen capítulos y grupos locales activos en varias ciudades; busca "PyData" o "meetup IA/datos" junto con tu ciudad y comprueba la actividad reciente.
- Spain AI y asociaciones similares organizan charlas, grupos de trabajo y encuentros en España; consulta su web para ver la programación vigente.
- Comunidades locales de Python (grupos de usuarios y las conferencias nacionales de Python de cada país) suelen tener secciones o charlas de datos e IA y son muy acogedoras con principiantes.
- Muchos hispanohablantes participan también en las comunidades internacionales de las secciones anteriores; el idioma técnico compartido es el inglés, y preguntar en inglés multiplica quién puede ayudarte, aunque no sea perfecto.
Criterio para cualquier comunidad, en español o no: actividad reciente, código de conducta publicado y respuestas útiles a las preguntas de novatos.
- Netiqueta, seguridad y cómo contribuir
Netiqueta (normas de convivencia):
- Busca antes de preguntar; agradece y marca la respuesta que resolvió; vuelve a contar qué funcionó (ayuda a los siguientes).
- Sé concreto y educado; no exijas urgencia ("para mañana"); no publiques la misma pregunta en cinco sitios a la vez.
- Respeta el código de conducta de cada comunidad; casi todas lo tienen.
Seguridad y confidencialidad, lo más importante para quien trabaja en una empresa como NovaMarket:
- Nunca compartas datos de clientes (ni una fila, ni "anonimizada a mano"): nombres, correos, direcciones, pedidos reales. El RGPD y la política de tu empresa lo prohíben (recuerda 02-03); una pregunta en un foro es pública y permanente. Genera datos sintéticos que reproduzcan el problema, como en la pregunta buena de la sección 2 o como hiciste con
incidencias.csven 09-04. - Nunca pegues claves, tokens, contraseñas ni URLs internas en preguntas, cuadernos públicos o repositorios (07-04: variables de entorno y
.gitignore). Si se te escapa una, revócala inmediatamente. - No describas detalles de negocio confidenciales (umbrales de fraude, márgenes, proveedores) más allá de lo necesario para la pregunta técnica.
- Antes de subir un cuaderno a Kaggle o GitHub, revisa salidas de celdas y ficheros adjuntos: es donde más se filtran datos sin querer.
Cómo contribuir aunque seas principiante: responder preguntas fáciles, corregir documentación, añadir un ejemplo a una galería, reportar bugs con MRE, traducir materiales, dar una charla corta en un meetup sobre un proyecto propio. Cada una de estas cosas es visible y cuenta como experiencia.
- Tabla resumen y aterrizaje en NovaMarket
| Comunidad | Para qué | Nivel | Cómo empezar |
|---|---|---|---|
| Stack Overflow | Errores de código | Todos | Buscar; preguntar con MRE; responder pandas |
| Cross Validated / Data Science SE | Dudas de estadística y método | Intermedio | Describir el problema y los datos, no el código |
| Kaggle (foros, cuadernos, datasets) | Aprender de otros, practicar con datos públicos | Introductorio | Leer cuadernos top de Titanic; publicar el propio |
| GitHub (issues, discussions, contribuir) | Bugs, uso, código abierto | Todos | Buscar issues; corregir documentación; "good first issue" |
| Hugging Face Hub y foros | Modelos preentrenados, transformers, LLM | Intermedio | Leer model cards; preguntar en el foro del modelo |
| Reddit r/learnmachinelearning / r/MachineLearning | Orientación / investigación | Introductorio / avanzado | Leer; preguntar itinerarios en el primero |
| Hacker News | Pulso del sector | Todos | Leer comentarios con espíritu crítico |
| Discord/Slack (fast.ai, Hugging Face), PyTorch Forums | Ayuda rápida en un ecosistema | Intermedio | Entrar por la web oficial del proyecto; leer normas |
| The Batch, Distill, blogs de laboratorios | Mantenerse al día | Todos | Un boletín semanal; Distill como modelo de explicación |
| Meetups, PyData, Spain AI, comunidades Python | Red profesional | Todos | Ir con una pregunta y un proyecto; comprobar actividad |
| NeurIPS/ICML/ICLR/AAAI | Referencia de investigación | Avanzado | Leer artículos y vídeos abiertos; no es destino inmediato |
NovaMarket sin exponer datos. Marta establecería una norma de equipo en tres líneas: (1) toda pregunta pública se hace con datos sintéticos generados en el propio código (tienen ya los generadores de pedidos_nm.csv e incidencias.csv); (2) ningún cuaderno sale del repositorio sin revisar salidas y sin pasar por el .gitignore de 07-04; (3) las claves de servicios (el LLM del caso 7 cuando se construya) viven en variables de entorno y nunca en preguntas ni ejemplos. Con eso, el equipo usaría Stack Overflow para errores de pipeline, el foro de Hugging Face para elegir un modelo en español para reseñas, Kaggle para practicar con datos minoristas públicos, y un meetup local para contar (sin cifras confidenciales) cómo desplegaron el predictor por lotes con colas y model card, lo que además atrae talento. Diego, por su parte, se suscribiría a The Batch y acompañaría a Marta al meetup: es la manera más barata de que operaciones entienda qué se está haciendo en el sector.
Errores Comunes y Consejos
- Preguntar sin buscar y sin ejemplo reproducible: la pregunta se cierra o se ignora, y aprendes que "la comunidad es hostil" cuando el problema era la pregunta.
- Pegar datos reales o claves "solo un trocito": es una brecha, no un atajo. Datos sintéticos siempre.
- Multiplicar canales: cinco Discords, tres boletines, dos subreddits. Elige un canal de preguntas, un boletín y un evento periódico.
- Leer sin participar durante años. Responder una pregunta fácil al mes cambia tu relación con la comunidad y tu confianza.
- Tomar como verdad la respuesta más votada sin comprobarla en tu versión; las librerías cambian.
- Consejo: cuando resuelvas algo que te costó, escribe la respuesta (en el foro, en tu blog o en las notas de tu repositorio): es contribución, portfolio y memoria a la vez.
Ejercicios
- Redactar una pregunta buena. Toma un error real que hayas tenido en el curso (por ejemplo, un fallo de dimensiones en la red de 09-03 o un
KeyErrorde pandas en 07-02) y redáctalo siguiendo la sección 2: título, objetivo, MRE con datos de juguete, error, versiones, qué probaste. - Elegir comunidades. Elige, con la tabla de la sección 11, un canal de preguntas, un boletín y un evento periódico para los próximos seis meses, y justifica cada elección en dos líneas según tu itinerario.
- Revisión de seguridad. Imagina que vas a publicar en Kaggle el cuaderno del predictor de fraude de NovaMarket. Escribe una lista de comprobación de seis puntos que revisarías antes de pulsar "publicar".
Soluciones
- Ejemplo: Título: "
RuntimeError: mat1 and mat2 shapes cannot be multipliedennn.Lineartrasnn.EmbeddingBag(PyTorch 2.x)". Objetivo: clasificar reseñas conEmbeddingBagseguido de una capa lineal. MRE: vocabulario de 10 palabras,EmbeddingBag(10, 8),Linear(16, 2)(aquí está el error: la salida del embedding es de dimensión 8, no 16), un lote de índices de juguete y la llamada al modelo. Error: traza completa. Versiones: Python 3.11, PyTorch 2.x, CPU. Probado: cambiar el tamaño de lote (sin efecto). Pregunta: cómo deducir la dimensión de entrada de la capa lineal a partir del embedding. - Ejemplo (itinerario ML/MLOps): Preguntas: Stack Overflow (errores de scikit-learn y despliegue). Boletín: The Batch (semanal, criterio, poco tiempo). Evento: PyData de mi ciudad (charlas de datos en producción, red local).
- Ejemplo: (1) ¿Todos los datos son sintéticos o públicos? (2) ¿He revisado las salidas de todas las celdas por si muestran filas reales? (3) ¿Hay rutas internas, nombres de servidores o URLs de la empresa? (4) ¿Hay claves o tokens en el código o en la configuración? (5) ¿Los umbrales, cifras de negocio o nombres de proveedores son necesarios, o los puedo sustituir por valores de ejemplo? (6) ¿Lo ha revisado otra persona del equipo?
Conclusión
Has visto por qué participar en comunidades (desatascarse, aprender de otros, red, actualidad, y enseñar), cómo preguntar bien con un ejemplo mínimo reproducible (y la diferencia entre la pregunta mala con un CSV real adjunto y la buena con datos de juguete, error, versiones y una duda concreta), qué comunidad sirve para qué (Stack Overflow, Cross Validated y Data Science SE; Kaggle; GitHub y Hugging Face Hub; Reddit y Hacker News; Discord/Slack y PyTorch Forums; The Batch, Distill y blogs; meetups, PyData y las conferencias como referencia; comunidades en español con prudencia), qué normas de convivencia y de seguridad no se negocian (RGPD, datos sintéticos, claves fuera) y cómo contribuir desde el primer día. Ya tienes contenido (10-01, 10-02) y personas (10-03). Falta lo último: hacia dónde ir. En la lección final del curso (10-04) harás una autoevaluación de lo aprendido, verás el mapa de perfiles profesionales de la IA y cuatro itinerarios detallados con recursos, proyecto de portfolio e hitos, y los próximos pasos de Marta y Diego en NovaMarket, antes de cerrar el curso con una recapitulación de los diez módulos.
Fundamentos de Inteligencia Artificial (IA)
Módulo 1: Introducción a la Inteligencia Artificial
Módulo 2: Principios Básicos de la IA
- Conceptos Fundamentales: Agentes, Entornos y Racionalidad
- Tipos de Inteligencia Artificial
- Los Datos como Materia Prima de la IA
- Ética y Consideraciones en IA
Módulo 3: Algoritmos en IA
- Introducción a los Algoritmos
- Algoritmos de Búsqueda
- Búsqueda con Adversario: Juegos y Minimax
- Algoritmos de Optimización
Módulo 4: Aprendizaje Automático (Machine Learning)
- Conceptos Básicos de Machine Learning
- Tipos de Aprendizaje Automático
- Preparación de Datos y Características
- Algoritmos de Machine Learning
- Evaluación y Validación de Modelos
- Sobreajuste, Regularización y Ajuste de Hiperparámetros
Módulo 5: Redes Neuronales y Deep Learning
- Introducción a las Redes Neuronales
- Arquitectura de Redes Neuronales
- Cómo Aprende una Red: Descenso del Gradiente y Retropropagación
- Deep Learning y sus Aplicaciones
- Transformers, Grandes Modelos de Lenguaje e IA Generativa
Módulo 6: Lógica y Sistemas Expertos
- Lógica en IA
- Sistemas Expertos
- Razonamiento con Incertidumbre: Probabilidad y Redes Bayesianas
- Aplicaciones de Sistemas Expertos
Módulo 7: Herramientas y Lenguajes de Programación en IA
- Lenguajes de Programación para IA
- Python Científico: NumPy, pandas y Matplotlib
- Herramientas y Librerías Populares
- Entornos de Desarrollo
Módulo 8: Proyectos y Casos de Estudio
Módulo 9: Ejercicios y Prácticas
- Ejercicios de Algoritmos
- Prácticas de Machine Learning
- Proyectos de Redes Neuronales
- Proyecto Integrador: de la Idea al Prototipo
