Autor: Gaston Nina Sossa
Use flecha ↓ para ver cada sección.
Este sitio presenta el Sprint 1 de Modelamiento de Datos I (UMSA), usando el dataset Stack Overflow Annual Developer Survey 2025. Se aborda un problema de clasificación enfocada en la adopción de herramientas de IA por parte de desarrolladores.
Predecir si un encuestado usa IA (Sí/No) a partir de su perfil técnico y demográfico.
Clasificación
¿Podemos predecir la adopción de IA en desarrolladores utilizando su perfil profesional y tecnológico en 2025 en un estudio global?
F1-score ≥ 0.80 en conjunto de prueba con validación cruzada (k=5).
Lineamientos de la Sección 1 del instructivo: problema de negocio, objetivo analítico y alcance.
Use flecha ↓ para ver cada sección.
Comprender qué factores explican la adopción de IA para orientar formación, herramientas y estrategias de talento en organizaciones tecnológicas.
AI_Usage (binaria: 1=usa IA, 0=no)
“Do you currently use AI tools in your development process?”
AI_Usage = 1 → Usa IA (Daily / Weekly / Monthly)
AI_Usage = 0 → No usa IA (No / No y no planea)
Esta variable será la variable objetivo de nuestro modelo de clasificación.
| Tipo de variable | Columna | Justificación |
|---|---|---|
| Profesional | DevType | El rol del desarrollador influye en la adopción de IA |
| Experiencia | WorkExp | Años de experiencia laboral |
| Tecnológica | LanguageHaveWorkedWith | Lenguajes usados (Python, R, etc.) |
| Geográfica | Country | Contexto regional y acceso a IA |
| Laboral | RemoteWork | Modalidad de trabajo |
| Sectorial | Industry | Tipo de industria o empresa |
| Organizacional | OrgSize | Tamaño de la empresa |
| Educativa | EdLevel | Nivel de formación formal |
Un modelo predictivo permite identificar la tendencia de uso de IA en el desarrollo de software
Exploración de la relación entre AI_Usage y variables clave, como insumo para la selección de la técnica analítica.
Use flecha ↓ para ver cada gráfico.
Las correlaciones con AI_Usage son bajas; destacan DevType (0.19), Country (0.17), Industry (0.12), OrgSize (0.09), EdLevel (0.06) y WorkExp (-0.09) como factores con influencia leve pero contextual.
| Columna | Tipo (pandas) | Naturaleza |
|---|---|---|
| DevType | category | Categórica nominal (rol profesional) |
| WorkExp | float64 | Numérica continua (años de experiencia) |
| Country | category | Categórica nominal (país) |
| RemoteWork | category | Categórica ordinal (grado de trabajo remoto) |
| Industry | category | Categórica nominal (sector/industria) |
| OrgSize | category | Categórica ordinal (rangos de tamaño de empresa) |
| EdLevel | category | Categórica ordinal (nivel educativo) |
| AI_Usage | int64 | Binaria (variable objetivo: 0/1) |
| NumLanguages | int64 | Numérica discreta (conteo de lenguajes) |
Las medianas son similares, con ligera menor experiencia en quienes usan IA; hay outliers con mucha experiencia usando IA.
Ambos grupos usan un número similar de lenguajes, aunque los usuarios de IA muestran una ligera mayor diversidad.
La adopción de IA se concentra en polos tecnológicos como EE.UU., India, Reino Unido y Alemania.
Las industrias tecnológicas presentan mayor adopción de IA.
La adopción de IA aumenta con la formación universitaria y de posgrado, aunque también crece entre técnicos.
Use flecha ↓ para ver cada sección.
AI_Usage (0/1)Ambos modelos se probaron en versiones balanceadas para manejar el desbalance en AI_Usage.
Modelo probabilístico que estima la probabilidad de que un desarrollador use IA a partir de una combinación lineal de variables predictoras.
Interpretación:
Modelo no lineal basado en múltiples árboles de decisión. Cada árbol vota por una clase, y la predicción final se obtiene por votación mayoritaria.
Interpretación:
Los mejores resultados se obtienen con Random Forest (sin balance) y Logistic Regression (sin balance), ambos con F1-score ≈ 0.88.
Comparación general del rendimiento en Accuracy, Precision, Recall, F1 y ROC-AUC para los modelos evaluados.
El modelo acierta ampliamente la clase 1 (usuarios de IA), pero confunde algunos casos de clase 0.
Random Forest mejora la identificación de la clase 0, manteniendo un desempeño sobresaliente en la clase 1.
Las curvas ROC muestran un comportamiento similar entre modelos y un AUC moderado (≈ 0.65–0.67), indicando discriminación aceptable en un problema con señales débiles.
Se aplicó validación cruzada estratificada con k=5 para estimar el rendimiento real de los modelos. Este método divide el dataset en 5 partes manteniendo la proporción de clases (0/1).
La regresión logística sin balance logró el mejor F1 promedio (0.8817) con la menor variabilidad, confirmando su estabilidad y generalización.
Use flecha ↓ para ver cada sección.
El Sprint exige seleccionar el modelo ganador usando un criterio cuantitativo. Aquí se utiliza F1-score por el leve desbalance de la variable objetivo.
| Modelo | F1 (CV k=5) | Std |
|---|---|---|
| Logistic Regression (sin balance) | 0.8817 | 0.0015 |
| Random Forest (sin balance) | 0.8752 | 0.0023 |
El modelo que cumple y supera el criterio preciso con mejor estabilidad es Logistic Regression (sin balance).
Regresión Logística (sin balance)
Cumple el criterio de éxito y ofrece el mejor equilibrio entre rendimiento, estabilidad y simplicidad.
Ajuste de hiperparámetros de Regresión Logística usando GridSearchCV y RandomizedSearchCV.
ColumnTransformer:
OneHotEncoder para variables categóricasStandardScaler para variables numéricasEspacio de búsqueda (Grid):
| Modelo | C | Penalty | F1 (CV k=5) |
|---|---|---|---|
| LogReg baseline | 1.0 | l2 | ≈ 0.881 |
| LogReg optimizada (GridSearch) | 0.01 | l2 | ≈ 0.883 |
| LogReg optimizada (Randomized) | ≈ 0.0466 | l2 | ≈ 0.883 |
La versión optimizada reduce drásticamente los falsos negativos (de 105 a 17) a costa de aumentar ligeramente los falsos positivos (de 1277 a 1376).
La optimización refina el modelo, pero no produce una mejora dramática: la Regresión Logística ya era una buena solución con las variables actuales.
Use flecha ↓ para ver cada sección.
Use flecha ↓ para ver cada sección.
Los artefactos completos del proyecto están disponibles aquí:
Sitio Web (Slides):
https://gastonnina.github.io/miadas_mod_08_proy/
Repositorio GitHub:
https://github.com/gastonnina/miadas_mod_08_proy