Vous êtes sur la page 1sur 4

Projet Data Management - Amir Lehmam & Sachith Galbokka

Partie 1 – Importation de la data

Nous commençons par importer les librairies nécessaires à ce projet. Nous utilisons
le fichier ‘.csv’ afin d’importer notre data dans notre environnement VSCODE.

On y effectue une rapide overview à l’aide des fonctions shape() et .info. Puis nous
effectuons une présentation rapide des données en les triant en fonction de leur
origine. Nous souhaitons marquer les données qui sont donner par la commission afin
d’éviter tout data leakage et de ne pas utiliser ces données dans nos features.

Partie 2 – Data Cleaning & Décrire la Data

2.1 Detection de NAs & leur traitement

Suite à une observation que les Geo Points contenait plusieurs outliers. Nous avons
décider de supprimer les lignes (une cinquantaine) qui contiennent ces outliers
puisque nous nous sommes aperçus au long de se projet que les majeures parties des
NAs était lié à une ligne qui contenait un outliers Geo Point.

D’une pierre, deux coups, nous nous sommes retrouvés avec seulement 6 NAs. Nous
avons décidé de drop cet NA puisqu’ils ne seront pas représentatifs aux vues de leur
taille et celle de notre data base (1529 lignes après traitement de NAs).

2.2 Transformation de notre dataset

2.2.1 Travail de nettoyage des colonnes

Ce travail de nettoyage comprendra le renommage, la séparation et l’harmonisation


de certaines de nos colonnes. Premièrement nous enlevons les colonnes qui nous sont
inutile. Nous renommons les colonnes qui contiennent des fautes de frappes. Puis
nous procédons à une harmonisation de certaines colonnes en les renommant par rapport
au travail effectué sur leurs variables. C’est-à-dire, transformer la colonne Adresse
en Type de voirie et y garder seulement la variable ‘voirie’ au sein des lignes.

2.2.2 Travail de nettoyage des lignes

Remplacement des valeurs ‘ – ‘ par des valeurs correspondantes afin de rendre le


traitement plus clair. Regroupement par sous-catégorie (énoncé plus haut par Type
de voirie), mais également par type de Numéro afin de traiter cette donnée sous 6
variables. L’avancement du projet a été regroupé sous 2 variables, Accepté & Refusé.
Regroupement des Arrondissement par Rives (droite ou gauche) dans une nouvelle
colonne et enfin sous catégorisation du type de végétalisation en 7 variables clé.

2.3 Analyse graphique de notre dataset

Permet de voir le nombre d’occurrence de nos colonnes et d’en apprendre plus sur
leurs nombres. Utilisation de graphique en forme d’Histogramme.

2.4 Analyse sous forme de tableau croisée

Donne une vision plus détaillée des occurrences qu’il y a entre nos différentes
colonnes. On peut y voir dès lors une certaine relativité qui se forme entre nos
différentes variables. On y voit aussi clairement des différences quantitatives
polarisé entre les données.
Projet Data Management - Amir Lehmam & Sachith Galbokka

Partie 3 – Analyse statistique & descriptive de la Target & création de Map

3.1 Corrélation ϕk (phi-k)

Cette corrélation catégorielle phi-k (variable qualitative) va nous permettre de


mettre en évidence les corrélations qu’il y a entre nos variables et la target
‘Avancement du projet’. Nous utilisons une matrice de corrélation sous forme de
heatmap afin d’avoir un aperçue visuel clair des coefficients de corrélation. Nous
appliquons cela sur l’ensemble de nos variables dans un premier temps. Puis dans un
second, nous l’appliquons uniquement sur nos features.

3.2 Test statistique de CHI-2

Notre but est de trouver si nos features sont Dépendante ou Indépendante de notre
target ‘Avancement du projet’. Pour ce faire, nous allons d’abord calculer les
Pvalue de l’ensemble de nos données à l’aide d’une boucle for. Puis nous calculons
la Stat de Test & le Degré de liberté pour chacune de nos données, encore grâce à
une boucle for. Enfin, nous appliquons le test d’indépendance ou de dépendance à
nos features. On retient que nos 2 features sont bien dépendante de notre target.

3.3 Analyse descriptive graphique par rapport à notre Target

3.3.1 Graphiques sous forme de Histogrammes

Ces graphiques montre la relation directe qu’il y a entre nos features et


l’avancement du projet. On y voit pour chaque variable respective de nos features
la somme de variables rentrant dans la catégorie acceptée et celle de la catégorie
refusée. On y voit ainsi à qu’elle variable précise notre Target est-elle la plus
sensible.

3.3.2 Tableau de fréquence des features par rapport à notre Target

Ces tableaux croisés entre nos features et la Target, montre la part en pourcentage
de chaque variable de nos features par rapport à l’avancement du projet (target).
On y voit plus d’une manière plus détaillé la part de chaque variable précise de
nos features.

3.3.3 Graphiques montrant la fréquence des features/Target

Nous utilisons 3 types de graphique, ‘box’, ‘violin’ et ‘boxplot’. Le type ‘box’ va


nous permettre de mettre en lien la répartition de la Target par rapport à nos
features. On utilise ce procédé dans notre premier graphique en séparant les features
ayant été Accepté ou Refusé.

De même pour le second graphique, sauf que le type ‘violin’ nous permet d’afficher
la densité de la Target par rapport aux Arrondissements et Type de végétalisation.
Enfin, le type ‘boxplot’ nous permet de voir clairement la répartition de notre
Target au sein des Arrondissements.
Projet Data Management - Amir Lehmam & Sachith Galbokka

3.4 Analyse descriptive graphique par rapport à notre Target

3.4.1 Folium Map

La librairie Folium va nous permettre de créer une Map détaillé contenant comme
points l’ensemble des valeurs de nos colonnes latitude et longitude et pour statut
la colonne ‘Avancement du projet’, donnant la possibilité à 2 choix : Accepté ou
Refusé.

Nous avons appliqué différents paramètres à notre map. Premièrement, nous définissons
la taille de notre map ainsi que son emplacement de départ. A l’aide d’une boucle
for ont défini le statut pour chaque point dans la liste ‘lat’ & ‘lon’. On y précise
leur couleur & leur icone en fonction de leur statut (vert pour accepter et rouge
pour refuser).

On y ajoute le menu ‘LayerControl’ qui va nous permettre de modifier l’aspect visuel


de la map. Enfin, nous créons une minimap au sein de notre map afin de trouver ou
on se situe spécifiquement dans Paris lorsque nous sommes entrain de zoomer sur une
zone clé.

3.4.2 Heatmap à l’aide de Google Maps

Import de la map à l’aide de l’API Google Maps. Nous définissons les paramètres de
la couche de donnée ainsi que la localisation de départ. On y applique également
les paramètre de zoom de base, l’intensité radial ainsi que son max. On créer ensuite
la couche de donnée de localisation à l’aide de loc_point. Enfin on superpose cette
dernière à la Map créer.

Partie 4 – Machine Learning : Prédiction de la Target

4.1 Encodage des features à l’aide de get_dummies

Nous avons choisi d’utiliser dans un premier temps get_dummies afin d’encoder nos
features le plus convenablement possible. Le choix du LabelEncoding n’était pas
approprié à notre Target.

4.2 Splittage de données & OneHotEncoder

Nous splittons notre jeu de donnée en 2 variables, ‘X’ & ‘y’. ‘X’ va comprendre
l’ensemble de nos features à l’aide de la fonction iloc et du parsing, ‘y’ va
comprendre notre target. Une fois le split fait, nous appliquons notre OneHotEncoder
à nos features ‘X’. Enfin nous effectuons un train_test_split avec pour
random_state : 0 et un test_size correspondant à 20% de notre data.

4.3 Utilisation du modèle de prédiction Régression Logistique

Après avoir fait plusieurs essaies, nous avons conclus que le modèle Régression
Logistique était le plus approprié à cette prédiction aux vues de l’ensemble de nos
variables. On affiche la prédiction des prochains projets après application du
modèle. Aux vues des déséquilibres de notre dataset, nous utilisons le
class_weight=’balanced’ au sein de notre modèle de Régression logistique pour que
les résultats soient cohérents.
Projet Data Management - Amir Lehmam & Sachith Galbokka

4.4 Description statistique de la prédiction de la target

On applique dans un premier temps le test d’Accuracy score à notre modèle Train &
Test afin de voir si l’Accuracy Train > Accuracy Test. Ensuite on procède à une
matrice de confusion. Puis à un Cross Validation Accuracy Score, on affiche la
moyenne de ce score en %. On utilise la fonction classification_report afin d’obtenir
l’ensemble des scores statistiques de notre modèle. Enfin, nous utilisons la courbe
ROC sur les 2 variable de la target afin de voir si le modèle est bon ou non.

Conclusion

Au fil de se projet, on se rend compte que le déséquilibre énorme au sein de notre


dataset (Accepté : 8.4% & Rejeté : 91.6%) donne un indice sur le manque de précision
de projets Accepté. Cependant, notre modèle arrive avec une précision d’environ 75%
(¾) à prédire des projets refusés à l’aide de nos features Arrondissement & Type de
végétalisation. Ce qui est plutôt acceptable.

Ce projet nous a poser un ensemble de limites du fait que toutes ces variables sont
de types qualitatifs. Dès lors, leurs traitements et leur analyse doit se faire
d’une manière précise et concise afin d’en soutirer l’essence de leur datas.

Vous aimerez peut-être aussi