Este proyecto presenta una red social de desarrolladores basada en datos recopilados de la API pública de GitHub en junio de 2019. Los nodos representan desarrolladores que han destacado al menos 10 repositorios, y las conexiones entre ellos son relaciones de seguidores mutuos. Se incluyen atributos de los nodos basados en información como ubicación, repositorios destacados, empleador y dirección de correo electrónico. La tarea principal es la clasificación binaria de nodos para predecir si un desarrollador se especializa en desarrollo web o aprendizaje automático.
- Dirigida: No.
- Atributos de nodos: Sí.
- Atributos de aristas: No.
- Etiquetas de nodos: Sí, binarias.
- Temporal: No.
- Nodos: 37,700.
- Aristas: 289,003.
- Densidad: 0.001.
- Transitividad: 0.013.
- Clasificación binaria de nodos.
- Predicción de enlaces.
- Detección de comunidades.
- Visualización de redes.
- datos/: Contiene los datos originales y procesados.
- metricas/: Contiene los resultados de las métricas calculadas.
- tablas/: Almacena tablas fusionadas y transformadas.
- Proyecto/: Contiene notebooks de análisis y procesamiento.
Este notebook calcula varias métricas de red, como:
- Centralidad (grado, cercanía, intermediación).
- Coeficiente de agrupamiento y triángulos.
- Comunidades (modularidad, partición por intermediación de aristas).
- Núcleos (núcleos centrales).
Este notebook fusiona y procesa las métricas calculadas en tablas completas. También genera diferentes conjuntos de datos:
- Con todos los atributos.
- Sin atributos de agrupamiento.
- Sin atributos de comunidad.
- Sin atributos de núcleos.
- Sin atributos de centralidad.
Analiza el impacto de las diferentes métricas en el rendimiento del modelo de Naive Bayes. Se evalúa la importancia de:
- Atributos de agrupamiento.
- Atributos de comunidad.
- Atributos de núcleos.
- Atributos de centralidad.
- Python.
- NetworkX: Análisis de redes.
- pandas: Manipulación de datos.
- scikit-learn: Modelado y validación.
- Matplotlib: Visualización de datos.
- Python 3.8 o superior.
- Instalar las siguientes dependencias ejecutando:
pip install networkx pandas matplotlib scikit-learn joblib
- Colocar los datos en la carpeta
datos/
. - Ejecutar
Calculo_metricas.ipynb
para generar las métricas. - Ejecutar
Creacion_de_tablas.ipynb
para crear las tablas procesadas. - Ejecutar el entrenamiento de los modelos con sus hiperparámetros.
- Analizar los resultados.
- Tablas procesadas con atributos relevantes.
- Evaluación del modelo Naive Bayes sobre diferentes configuraciones.