Ce projet regroupe plusieurs travaux de programmation avancée en Python, articulés autour de la résolution de problèmes algorithmiques classiques et de l'implémentation de modèles de machine learning à partir de zéro. Le projet est divisé en plusieurs parties, couvrant à la fois la résolution de problèmes complexes et l'apprentissage supervisé en utilisant Python pur, NumPy, Pandas, et CVXPY.
- Problem Solving
- Régression Logistique (NumPy)
- Arbres de Décision et Forêts Aléatoires (Pandas)
- Support Vector Machines (CVXPY)
- Installation
- Exécution
- Structure du Projet
- Auteurs
Résolution de problèmes fondamentaux :
- Vacances et Bagages : Problème de sac à dos (optimisation).
- Fusion de listes triées : Technique efficace de merging.
- Permutations : Génération de toutes les permutations possibles.
- Sudoku Solver : Résolution automatique d'un Sudoku par backtracking.
- Carrés Latins : Construction et analyse théorique de carrés latins (avec axiomes démontrés).
Chaque problème suit cette structure :
- Formulation du problème
- Solution détaillée
- Analyse de complexité
- Code complet + Tests
- Implémentation manuelle d'un modèle de régression logistique.
- Visualisation des données et frontières de décision.
- Comparaison des résultats sur différents jeux de données.
- Construction d'un arbre de décision à partir de zéro.
- Extension vers la construction d'une forêt aléatoire.
- Visualisation des séparations de classes.
- Évaluation des performances.
- Implémentation d'un SVM utilisant la programmation convexe.
- Entraînement, prédiction et analyse du modèle.
- Étude de la marge et des vecteurs de support.
Ce projet nécessite Python 3.8+ et les librairies suivantes :
pip install numpy pandas matplotlib cvxpy scikit-learnOuvrir le fichier Jupyter Notebook :
jupyter notebook Projet_Programmation_Python.ipynbPuis exécuter les cellules dans l'ordre.
Projet_Programmation_Python.ipynb
├── Problem Solving
│ ├── Sac à dos
│ ├── Fusion de listes
│ ├── Permutations
│ ├── Sudoku
│ └── Carrés Latins
├── Régression Logistique
├── Arbres de Décision & Forêts Aléatoires
└── Support Vector Machines
- Omar NAMOUS
- Bastien HOTTELET
- Hamady GACKOU