Skip to content

Analyse et visualisation des résultats de stack overflow developer survey 2019 ainsi qu'une simple flask web application utilisant du machine learning avec Scikit-Learn

Notifications You must be signed in to change notification settings

alfahami/ml-flask-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Stack Overflow Survey 2019 - ML Flask Web app

Sommaire

Analyse des resultats du Stack Overflow Survey 2019

alt text

  1. Présentation des données

Avec près de 90 000 réponses provenant de plus de 170 pays et territoires dépendants, le sondage Stack Overflow Annual Developer Survey continue d'être le sondage le plus complet jamais réalisée auprès des développeurs de logiciels. Le sondage couvre des aspects tels que la satisfaction professionnelle et la recherche d'emploi dans les langages de programmation...etc
Les données du sondage peuvent être télécharger 2019 Stack Overflow Survey results
Dans ce projet, les résultats du sondage seront utilisées pour répondre aux questions suivantes pour les aspirants scientifiques des données (data scientists):

  • Quel est le langage de programmation de votre choix?
  • Quel est le salaire des développeurs?
  • Quel est le framework de choix numéro un pour les développeurs?
  1. Resumé des résultats

Après avoir analysé les données, nous constatons que python est le langage de programmation de choix pour les développeurs qui s'identifient en tant que Data Scientists et Machine Learning Specialist. Les salaires des Data Scientists et Machine Learning Specialist sont les plus élevés aux États-Unis. Étonnamment, jQuery est le framework web de choix. alt text alt text alt text

  1. Données et code

L'analyse principale est contenue dans le fichier jupyter notebook sof-dataviz.ipynb. Toutes les fonctions et le code, ainsi que la justification des décisions prises, sont contenus dans ce fichier notebook.

  1. Prérequis

  • Jupyter Notebook
  • Numpy
  • Pandas
  • Seaborn
  • Matplotlib
  1. Instruction d'exécution

Téléchargez les de données requis ainsi que les bibliothèques requis, si nécessaire, modifiez les chemins de répertoire. Téléchargez le fichier notebook et exécutez le avec jupyter notebook

Machine Learning Flask web app

  1. Objectif de l'application

Application Web conçue pour montrer la structure du projet pour un modèle d'apprentissage automatique déployé à l'aide de flask. Ce projet comprend un modèle d'apprentissage automatique qui a été formé pour détecter si un commentaire en ligne est un Cyber Troll ou non Cyber-Troll. Cette application agit comme une interface permettant à un utilisateur de soumettre de nouvelles requêtes. Le modèle d'apprentissage automatique a été construit à l'aide de diverses fonctionnalités de scikit learn:

- Machine à vecteur de support (SVM)
- Représentation textuelle Bag-of-Words (BoW)
- Grid Search + Cross Validation

Chacun de ces composants est développé dans le projet dans un paramètre hors ligne à l'intérieur de / model_dev. Les modèles SVM et BoW seront toujours nécessaires dans un cadre de production ou de test afin de pouvoir prédire les requêtes soumises par l'utilisateur, afin qu'ils puissent être sérialisés via la fonctionnalité de pickle de python et stockés dans le dossier /model_assets.

Afin de détecter si un commentaire en ligne provient ou non d'un cyber-troll, vous pouvez déployer cette application localement et soumettre des requêtes au modèle d'apprentissage automatique pour recevoir des prédictions via une interface utilisateur simple. Le modèle a été formé à l'aide du Dataset for Detection of Cyber-Trolls (voir ici).

Le fichier notebook du modèle se trouve ici.

  1. Installation

Premièrement, faites clone le repisitory localement
git clone git@github.com:alfahami/sof-dataviz_ml-flask-app.git

Créer un nouvel environement virtuel python dans le dossier du projet
pyhton3 -m venv ./venv

Activation de l'environement que nous vennons de créer
source /venv/bin/activate

Installation des paquets python prérequis
pip install -r ./paquets-prerequis.txt

Maintenant nous pouvons déployer l'application (Vous devez avoir flask déjà installé)
python app.py

Naviguez vers http://127.0.0.1:5000/ pour voir la page d'accueil de l'application Vous pouvez soit visualizer le notebook du stackoverflow survey, soit utiliser le service de prédiction alt text

Nous voyons bien que "Get the fuck out here" a été bien prédi comme commentaire troll

Structure du projet

  1. Présentation

      sof-dataviz_ml-flask-app
      ├── model_assets
      │   ├── model_V0.pkl
      │   └── vectorizer_V0.pkl
      ├── model_dev
      │   ├── data
      │   |   └── cyber-troll.json
      │   |   └── survey_results_public.csv
      │   |   └── survey_results_schema.csv
      │   └── model_dev.ipynb
      │   └── sof-dataviz.ipynb
      │   └── BaseModel.py
      ├── templates
      │   └── index.html
      │   └── cyber-troll.html
      │   └── sof-dataviz.html
      ├── app.py
      ├── utils.py
      ├── paquets-prerequis.txt
      └── README.md
    
  2. Details

/model_assets est utilisé pour stocker les états persistants du modèle prédictif et les extracteurs de fonctions apprises de scikit-learn.

/model_dev est utilisé comme le dossier contenant les modèles où un .ipynb est utilisé pour développer le modèle et enregistrer de nouvelles versions des états persistants.

Le stockage de nouveaux états persistants du modèle peut être effectué depuis jupyter notebook. Par exemple, dans model_dev.ipynb, je peux créer un nouveau modèle / recyclage et l'inclure dans le dossier ./model_assets lorsque je suis satisfait de l'entrainement.

La sélection de la version des modèles à utiliser pendant l'exécution est choisie dans la fonction de requête POST à l'intérieur de app.py.

/templates contient les modèles html pour l'application.

Auteur

AL-FAHAMI TOIHIR

FACULTE DES SCIENCES - KENITRA

DEPARTEMENT DE MATHEMATIQUES ET INFORMATIQUE

Remerciements

Merci à Modingwa et W.M Gopar pour la clarté de leur blog post

Licence: Le projet est disponible en open source selon les termes de la licence MIT.

About

Analyse et visualisation des résultats de stack overflow developer survey 2019 ainsi qu'une simple flask web application utilisant du machine learning avec Scikit-Learn

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published