Proyecto de detección de tráfico malicioso en redes mediante algoritmos de Machine Learning, específicamente Random Forest. Este proyecto incluye un menú interactivo, visualización de la matriz de confusión, generación de reportes automáticos en JSON y la capacidad de cargar diferentes datasets.
- ✅ Menú interactivo para facilidad de uso
- ✅ Entrenamiento automático si no existe modelo previo
- ✅ Guardado y carga del modelo entrenado
- ✅ Reporte automático de métricas en JSON
- ✅ Visualización gráfica de la matriz de confusión
- ✅ Opción para cargar un dataset personalizado
- ✅ Proyecto limpio y listo para escalar
- ├── main.py # Script principal con menú interactivo
- ├── model.pkl # Modelo RandomForest entrenado (se genera automáticamente)
- ├── report.json # Reporte de métricas en JSON
- ├── data/ # Carpeta para datasets locales (agregada al .gitignore)
- │ └── tu_dataset.csv
- ├── requirements.txt # Dependencias del proyecto
- └── README.md # Este archivo
- Python 3.8+
- Librerías necesarias (instalar con pip): pip install -r requirements.txt
- Clonar el repositorio:
- git clone https://github.com/FrancoGarciaC9701/Attack-Detection-with-Machine-Learning.git
- cd Attack-Detection-with-Machine-Learning
-
Ejecutar el proyecto: python main.py
-
Descarga el archivo de "http://cicresearch.ca/CICDataset/CIC-IDS-2017/Dataset/CIC-IDS-2017/CSVs/" el que dice "MachineLearningCSV.zip", lo descomprimís y tenés los datos para ensayar Podés generar un archivo conjunto o escanearlo de a uno (No subí los archivos porque pesaban más de lo permitido)
-
Seguí las instrucciones del menú para entrenar el modelo, cargar datasets y generar reportes.
El proyecto genera un report.json con las métricas de precisión, recall, f1-score y soporte.
Visualiza la matriz de confusión para entender el rendimiento del modelo.
Se utiliza Random Forest, un poderoso algoritmo de ensamble basado en árboles de decisión, ideal para problemas de clasificación de tráfico de red.
Por seguridad y para mantener el repositorio liviano, los datasets están ignorados en el control de versiones.
Podés añadir tu propio dataset colocándolo en la carpeta data/ y seleccionándolo desde el menú interactivo.
- Mejorar la visualización de gráficos con librerías más avanzadas
- Agregar opción de exportar el modelo en otros formatos
- Integrar una interfaz web para facilitar el uso
https://www.linkedin.com/in/franco-garcia9701/ | https://github.com/FrancoGarciaC9701
Muchas gracias por tomarse la molestia de leerlo, cualquier crítica constructiva es bien recibida.