Skip to content

Repository files navigation

bigdata-user-behavior

Objectif

Préparer les données de Network_logs.csv pour un modèle de détection d'intrusion binaire (0 = normal, 1 = suspect), en remplaçant les adresses IP par des codes pays via la base dbip-country-lite-2026-01.csv.

#Technologies utilisées :

  • MinIO : stockage S3 local (simule Amazon S3)
  • PySpark : traitement distribué des données
  • Docker Compose : orchestration de l’environnement

Choix du modèle d’apprentissage

Pour la détection d’intrusion, un modèle de Random Forest est recommandé car :

  • Il gère bien les données tabulaires avec des features mixtes (catégorielles + numériques)
  • Il est robuste au bruit et aux valeurs aberrantes
  • Il fournit une bonne interprétabilité (importance des features)
  • Il fonctionne bien sur des problèmes de classification binaire déséquilibrés

Les données préparées (features/) sont directement compatibles avec Scikit-learn ou Spark MLlib.

Toutes les données nécessaires sont incluses dans ce dépôt. Aucun téléchargement externe requis.

Instructions d’exécution

1. Lancer l’environnement

docker-compose up -d

2. Installer les dépendances (une seule fois)

docker exec -it bigdata-user-behavior-spark-1 apt-get update docker exec -it bigdata-user-behavior-spark-1 apt-get install -y openjdk-17-jre-headless docker exec -it bigdata-user-behavior-spark-1 pip install pyspark==3.4.1 minio boto3

3. Exécuter le job Spark

docker exec -it bigdata-user-behavior-spark-1 python spark_job.py

Le script :

Crée automatiquement le bucket data-lake dans MinIO Lit intrusion-detection/Network_logs.csv Convertit les adresses IP en codes pays grâce à dbip-country-lite-2026-01.csv Sauvegarde le résultat au format Parquet dans s3a://data-lake/features/network_logs_prepared

4. Vérifier le résultat

Accéder à l’interface MinIO : http://localhost:9000 Identifiants : minioadmin / minioadmin

Le dossier features/ doit apparaître dans le bucket data-lake.

Exploration et visualisation

Le script explore_data.py génère deux éléments clés :

distribution_intrusion.png : histogramme montrant la répartition entre comportements normaux (0) et suspects (1) Cette visualisation confirme que le jeu de données est déséquilibré, ce qui est typique en cybersécurite

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages