Exploration, modélisation et déploiement d'algorithmes pour résoudre des problèmes concrets
En cours de développement
🎯
Algorithme de recommandation d'emploi
Développement d'un système de recommandation d'offres d'emploi basé uniquement sur le comportement de navigation des utilisateurs, sans nécessité de connexion ou d'informations personnelles.
Online ML Collaborative Filtering Analyse séquentielle MRR & Accuracy
Concevoir un classifieur automatique basé sur l'algorithme des k-plus proches voisins. Ce modèle permettra de prédire une caractéristique d'un individu (ou objet) en se basant sur les attributs descriptifs de cet individu, à l'aide d'un jeu d'entraînement.
KNN Classification Supervisé Python
⚙️ Implémentation d'un classifieur automatique en Python
📚 Utilisation de jeux d'entraînement et de test pour la prédiction
🔧 Développement d'un algorithme de classification supervisée
Notre premier objectif est de prédire pour un individu donné, les 10 offres les plus susceptibles de l'intéresser dans notre catalogue. Ensuite, on peut pouvoir estimer (prédire) si la prochaine action de notre utilisateur sera juste de consulter ou de candidater.
🛠️ Tentative initiale
Pour trouver les 10 offres à recommander à notre utilisateur, je recherche ses plus proches voisins à partir d'une matrice de distance.
Je prenais les 100 plus proches, et ensuite je regarde les 10 offres les plus consultées dans cette sous-population (chacune de ces 10 offres a donc un score qui représente leur fréquence).
Enfin, pour prédire l'intention de postuler de notre utilisateur, je fais la moyenne des 10 scores, et prédis qu'il postulera si le score dépasse un certain seuil que j'ai fixé.
🚧 Problèmes
Les dimensions étant énormes (15 881 x 22 000), la première exécution de l'algorithme a pris... deux semaines 😆.
J'ai essayé de l'optimiser, mais rien à faire, et les solutions cloud arrêtaient de tourner après quelques heures.
Autre problème, mon algo prédisait que la prochaine action de tous mes utilisateurs serait de simplement consulter (donc jamais postuler 😅).
Au final, en calculant les métriques d'évaluation de mon modèle d'apprentissage, elles n'étaient pas trop reluisantes...
Il faut donc revoir mon seuil et mon algo, mais faudrait encore attendre 3 semaines ? Je crois pas.
🔮 Perspectives
J'envisage de réduire mon échantillon d'entraînement à 500, ajuster mon seuil et améliorer la sélection des 10 emplois à recommander.
Mon algo actuel recommande seulement en se basant sur les autres offres consultées par les plus proches voisins, même si elles ne sont pas pertinentes.
Alors, et si je procédais autrement ? 🤔 Une fois les voisins ciblés, je peux identifier les mots-clés apparaissant dans les offres qu'ils ont consultées (ainsi que leur fréquence).
Je pourrais alors recommander en priorité les offres contenant ces mots-clés.
🔚 Conclusion
Ce projet est encore en cours, et chaque itération m'apprend quelque chose de nouveau.
L'objectif reste le même : créer un moteur de recommandation efficace, rapide et pertinent, sans nécessiter d'informations personnelles.
La prochaine étape sera d'implémenter l'approche basée sur les mots-clés et d'évaluer si elle permet une meilleure pertinence des recommandations.
Affaire à suivre… 🚀
Détails du projet - SNCF Transilien
🎯 Objectif
Tout a commencé avec un défi passionnant : prédire l'affluence dans les gares SNCF-Transilien pour mieux gérer les flux de passagers. 📊
L'enjeu ? Exploiter des données historiques pour fournir des estimations précises du nombre de voyageurs dans les différentes gares.
🔍 La première étape a été une exploration approfondie des données : nettoyage, fusion et extraction des informations temporelles.
Ensuite, j'ai procédé à l'encodage des variables catégorielles, notamment les noms des gares, pour les rendre exploitables par les algorithmes.
⚙️ Une fois les données prêtes, place à la modélisation !
J'ai testé plusieurs algorithmes de régression :
- 🌲 Random Forest pour sa robustesse
- 💡 LightGBM pour sa rapidité
- 🚀 XGBoost pour ses performances optimales
Chaque modèle a été évalué à l'aide de métriques comme RMSE et R² afin d'identifier celui offrant les meilleures prédictions. 📈
À l'issue des tests, XGBoost s'est révélé être le plus performant, permettant une anticipation plus précise des flux de passagers.