Vous êtes sur la page 1sur 61

Département Technologie Informatique

PARCOURS

Digital Entrepreneurship
In Data Science

MACHINE LEARNING
Prédiction Des Prix Des Voitures
Occasions

Réalisé par : Encadré par :

Farah Ben Jannette Abir Khaldi


Mouez Yazidi

A NNEE U NIVERSITAIRE
2020/2021
Table des matières

Introduction Générale 2

1 Méthodologie 3

1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2 La méthodologie CRISP-DM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.3 Avantages De La Méthodologie CRISP DM . . . . . . . . . . . . . . . . . . . . . 6

1.4 conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2 Phase 1 : Compréhension du problème métier 8

2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.2 Achat Voiture Occasion : les clés pour faire le bon choix . . . . . . . . . . . . . . 9

2.2.1 Etude de l’existant et problématique . . . . . . . . . . . . . . . . . . . . 9

2.2.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3 Phase 2 : La compréhension des données 12

3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.2 Choix de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

i
TABLE DES MATIÈRES

3.3 Les outils et les bibliothèques utilisées . . . . . . . . . . . . . . . . . . . . . . . . 13

3.3.1 Langage de programmation . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.3.2 Environnement de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.3.3 Bibliothèques utilisées . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.4 Importation Des Données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.5 Exploration de données (EDA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

4 Préparation des données 23

4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4.2 Suppression des colonnes inutiles . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4.3 Extraction de valeurs numériques . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4.4 Conversion de type des colonnes . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4.5 Manipulation des valeurs manquantes . . . . . . . . . . . . . . . . . . . . . . . . 25

4.6 Traitement de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4.6.1 Traitement de la colonne name . . . . . . . . . . . . . . . . . . . . . . . 26

4.6.2 Traitement de la colonne Fuel . . . . . . . . . . . . . . . . . . . . . . . 28

4.6.3 Traitement de la colonne Owner . . . . . . . . . . . . . . . . . . . . . . 28

4.7 Détection et suppression des outliers . . . . . . . . . . . . . . . . . . . . . . . . 29

4.7.1 Suppression des outliers de la colonne km-driven . . . . . . . . . . . . . 29

4.7.2 Suppresion des outliers de la colonne selling-price . . . . . . . . . . . . . 32

4.7.3 Suppresion des outliers de la colonne Year . . . . . . . . . . . . . . . . . 33

4.8 Matrice de corrélation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

ii
TABLE DES MATIÈRES

4.9 One Hot Encoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.10 Label Encoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

4.11 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

5 Phase 4 : Modélisation 37

5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

5.2 Extraction des features et du target . . . . . . . . . . . . . . . . . . . . . . . . . 37

5.3 Comparaison des modèles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

5.4 Application de l’algorithme Random-forest . . . . . . . . . . . . . . . . . . . . . 40

5.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

6 Phase 5 : Evaluation du modèle adapté 42

6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

6.2 Score de performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

6.3 Ajustement du modèle : underfitting ou overfitting . . . . . . . . . . . . . . . . . 43

6.4 Quelques Test de prédiction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

6.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

7 Phase 6 : Déploiement 46

7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

7.2 Extraction du modèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

7.3 Outils et framework utilisés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

7.4 Développement de l’interface Web . . . . . . . . . . . . . . . . . . . . . . . . . . 49

7.5 Test de validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

iii
TABLE DES MATIÈRES

7.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

Conclusion Générale 53

iv
Table des figures

1.1 les etapes de la methogologie CRISP-DM . . . . . . . . . . . . . . . . . . . . . . 4

1.2 l’interdependence entre les etapes de CRISP-DM . . . . . . . . . . . . . . . . . . 6

2.1 L’evolution du marché de véhicules d’occasion 2010-2019 . . . . . . . . . . . . . 10

2.2 Exemple de caractéristiques de voitures . . . . . . . . . . . . . . . . . . . . . . . 10

3.1 Logo du Kaggle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.2 la dataset dans Kaggle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.3 Logo Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.4 Logo Python+logo colab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.5 Les Bibliothéques utilisés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.6 l’importation des bibliotheques à utiliser . . . . . . . . . . . . . . . . . . . . . . 16

3.7 l’importation du dataset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.8 les dimensions du Dataset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.9 Les 5 permiers lignes du dataset . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.10 des informations sur la dataset . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.11 Le nombre des valeurs nulles pour chaque colonne . . . . . . . . . . . . . . . . . 18

3.12 Des Stasiques sur les colonnes numeriques . . . . . . . . . . . . . . . . . . . . . 19

v
TABLE DES FIGURES

3.13 Des Stasiques sur les colonnes catégoriques . . . . . . . . . . . . . . . . . . . . . 19

3.14 La fonction Bar-plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.15 le nombre des voitures par type du carburant . . . . . . . . . . . . . . . . . . . 20

3.16 le nombre des voitures par type du propriétaire . . . . . . . . . . . . . . . . . . 21

3.17 la distrubution des données pour la colonne transmission . . . . . . . . . . . . . 21

4.1 Suppresion des colonnes unitiles . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4.2 les colonnes à modifiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4.3 La definition et l’appel du fonction Extraction . . . . . . . . . . . . . . . . . . . 24

4.4 La definition et l’appel du fonction convert-to-float . . . . . . . . . . . . . . . . 25

4.5 La definition et l’appel du fonction fillNAN . . . . . . . . . . . . . . . . . . . . . 26

4.6 Verification de la remplissage du valeurs manquantes . . . . . . . . . . . . . . . 26

4.7 Les nombres des Voitures Par types . . . . . . . . . . . . . . . . . . . . . . . . . 27

4.8 la fonction car-count-less15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

4.9 Modification sur la colonne name . . . . . . . . . . . . . . . . . . . . . . . . . . 27

4.10 Verification du changment de la colonne name . . . . . . . . . . . . . . . . . . . 28

4.11 Traitement de la colonne Fuel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4.12 Traitement de la colonne Owner . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4.13 Distrubution des données pour la colonne KM-driven . . . . . . . . . . . . . . . 30

4.14 Le principe de la methode Percentile . . . . . . . . . . . . . . . . . . . . . . . . 30

4.15 Sppression des outliers en utlisant la methode Percentile . . . . . . . . . . . . . 31

4.16 La nouvelle distrubution des données de la colonne KM-Driven . . . . . . . . . 31

4.17 La fonction de suppresion des outliers pour la colonne Selling-price . . . . . . . . 32

vi
TABLE DES FIGURES

4.18 La nouvelle distrubution des données de la colonne Selling-price . . . . . . . . . 32

4.19 La distribution des données de la colonne Year . . . . . . . . . . . . . . . . . . . 33

4.20 La nouvelle distribution de la colonne Year . . . . . . . . . . . . . . . . . . . . . 33

4.21 La Matrice de Correlation de la Dataset . . . . . . . . . . . . . . . . . . . . . . 34

4.22 Sppression de les colonnes admettant une faible correlation . . . . . . . . . . . . 34

4.23 la nouvelle Dataset Aprés la Sppression des colonnes unitiles . . . . . . . . . . . 35

4.24 l’application du One Hot Encoder sur les colonnes Catégoriques . . . . . . . . . 35

4.25 l’application du Label Encoder sur la colonne Owner . . . . . . . . . . . . . . . 36

5.1 L’algorithme Grid-Search-CV . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

5.2 La Resultat du Grid-Search-CV . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

5.3 Deviser La Dataset en Train et Test . . . . . . . . . . . . . . . . . . . . . . . . 40

5.4 Initialiser du modéle Random-Forest Avec les meilleurs Paramétres . . . . . . . 40

5.5 Entrainer le modele sur les données . . . . . . . . . . . . . . . . . . . . . . . . . 41

6.1 La performance du modele adapté . . . . . . . . . . . . . . . . . . . . . . . . . 42

6.2 La difference entre Best fitting , under fitting and Over fitting . . . . . . . . . . 43

6.3 Comparison entre le score du partie Train et Test . . . . . . . . . . . . . . . . . 44

6.4 La fonction de prediction du Prix . . . . . . . . . . . . . . . . . . . . . . . . . . 45

6.5 quelques Resultats de la fonction predict-price . . . . . . . . . . . . . . . . . . . 45

7.1 Extraction du modéle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

7.2 Extraction des noms du colonnes . . . . . . . . . . . . . . . . . . . . . . . . . . 47

7.3 Logo Vscode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

7.4 Logo flask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

vii
TABLE DES FIGURES

7.5 Logo HTML-JS-CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

7.6 La structure de la partie dévloppement . . . . . . . . . . . . . . . . . . . . . . . 49

7.7 L’interface web finale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

7.8 L’execution du modéle sur l’interface web . . . . . . . . . . . . . . . . . . . . . 51

1
Introduction Génerale

Aujourd’hui on ne parle plus que de lui, outil à la fois stratégique et technologique,


C’est e Big Data qui est en effet devenu le fer de lance de toutes entreprises.

Le Machine Learning est une technologie d’intelligence artificielle permettant aux ordina-
teurs d’apprendre sans avoir été programmés explicitement à cet effet. Pour apprendre et se
développer, les ordinateurs ont toutefois besoin de données à analyser et sur lesquelles s’entraî-
ner.

De fait, le Big Data est l’essence du Machine Learning, c’est la technologie qui permet
d’exploiter pleinement le potentiel du Big Data.

Dans le domaine du Machine Learning (apprentissage automatique en français), il existe


deux principaux types d’apprentissages : supervisées et non supervisées.

La principale différence entre les deux types réside dans le fait que l’apprentissage supervisé
se fait sur la base d’une vérité. En d’autres termes, nous avons une connaissance préalable de
ce que devraient être les valeurs de sortie de nos échantillons.

Par conséquent, l’objectif de l’apprentissage supervisé est d’apprendre une fonction qui, à
partir d’un échantillon de données et des résultats souhaités, se rapproche le mieux de la relation
entre entrée et sortie observable dans les données. En revanche, l’apprentissage non supervisé
n’a pas de résultats étiquetés. Son objectif est donc de déduire la structure naturelle présente
dans un ensemble de points de données.

Dans ce projet nous allons suivre une méthodologie specialisée machine learning dans le but
de préparer un modéle de régression performant au prediction des prix des voitures occasions
implimenté dans une interface web.

2
Chapitre 1

Méthodologie

1.1 Introduction
Comme l’utilisation de la science des données est en constante augmentation, la nécessite
de disposer d’une méthodologie structurée à suivre devient une étape très importante. Pour la
définir, une méthodologie est un ensemble de méthodes, de règles et de principes employés par
une discipline qui est, dans notre cas, la science des données.

Aujourd’hui, il existe plusieurs méthodologies différents , par exemples : KDD(1993),


SEMMA(1996), CRISP-DM(2000) et IBM Master Plan.

Dans ce projet nous allons adapter la méthodologie CRISP-DM.

1.2 La méthodologie CRISP-DM


La CRISP-DM est toujours la méthodologie la plus populaire pour les analyses, le data
mining et les projets de sciences de données.

La méthode CRISP se décompose en 6 étapes allant de la compréhension du problème


métier au déploiement et la mise en production.

3
CHAPITRE 1. MÉTHODOLOGIE

Figure 1.1 – les etapes de la methogologie CRISP-DM

— La compréhension du problème métier


La première étape consiste à bien comprendre les éléments métiers et problématiques que
la Data Science vise à résoudre ou à améliorer.

— La compréhension des données


Cette phase vise à déterminer précisément les données à analyser, à identifier la qualité
des données disponibles et à faire le lien entre les données et leur signification d’un point
de vue métier. La Data Science étant basée sur les données seules, les problèmes métiers
relatifs à des données existantes, qu’elles soient internes ou externes, peuvent ainsi être
résolus par la Data Science.

— La construction du Data Hub


Cette phase de préparation des données regroupe les activités liées à la construction
de l’ensemble précis des données à analyser, faite à partir des données brutes. Elle inclut
ainsi le classement des données en fonction de critères choisis, le nettoyage des données, et
surtout leur recodage pour les rendre compatibles avec les algorithmes qui seront utilisés.
La paramétricité des données numériques et leur recodage en données catégorielles sont
extrêmement importantes et à réaliser avec soin afin d’éviter que les algorithmes utilisés

4
CHAPITRE 1. MÉTHODOLOGIE

donnent des résultats faux dans la phase suivante. Toutes ces données doivent en effet
être centralisées dans une base de données structurée et qui porte le nom de Data Hub.

— La modélisation
C’est la phase de Data Science proprement dite. La modélisation comprend le choix, le
paramétrage et le test de différents algorithmes ainsi que leur enchaînement, qui consti-
tue un modèle. Ce processus est d’abord descriptif pour générer de la connaissance, en
expliquant pourquoi les choses se sont passées. Il devient ensuite prédictif en expliquant
ce qu’il va se passer, puis prescriptif en permettant d’optimiser une situation future.

— L’évaluation
L’évaluation vise à vérifier le(s) modèle(s) ou les connaissances obtenues afin de s’assurer
qu’ils répondent aux objectifs formulés au début du processus. Elle contribue aussi à la
décision de déploiement du modèle ou, si besoin est, à son amélioration. A ce stade, on
teste notamment la robustesse et la précision des modèles obtenus.

— Le déploiement
Il s’agit de l’étape finale du processus. Elle consiste en une mise en production pour les
utilisateurs finaux des modèles obtenus. Son objectif : mettre la connaissance obtenue par
la modélisation, dans une forme adaptée, et l’intégrer au processus de prise de décision.
Le déploiement peut ainsi aller, selon les objectifs, de la simple génération d’un rapport
décrivant les connaissances obtenues jusqu’à la mise en place d’une application, permet-
tant l’utilisation du modèle obtenu, pour la prédiction de valeurs inconnues d’un élément
d’intérêt.

5
CHAPITRE 1. MÉTHODOLOGIE

Figure 1.2 – l’interdependence entre les etapes de CRISP-DM

1.3 Avantages De La Méthodologie CRISP


DM
Les avantages de la méthode CRISP DM sont nombreux pour votre entreprise. La déclinaison
de la démarche au sein d’une entreprise apporte :

— Une réponse aux défis clés pour les équipes de sciences des données en termes de compré-
hension des données et déploiement des analyses.

— Une technique simple et accessible permettant aux membres de l’équipe sans connaissance
en sciences des données de participer activement.

— Une meilleure appréhension des spécificités de chaque projet.

— Un modèle adaptable et itératif suscitant l’engagement des membres de l’équipe.

6
CHAPITRE 1. MÉTHODOLOGIE

1.4 conclusion
Pour la réussite d’un projet Data Science, il est important de suivre une démarche agile et
itérative comme la méthodologie CRISP-DM.

Cette méthodologie est agile et itérative, c’est-‘a-dire que chaque itération apporte de la
connaissance métier supplémentaire qui permet de mieux aborder l’itération suivante.

C’est d’ailleurs pour cette raison que la Data Science est plus une démarche globale qu’un
simple projet.

7
Chapitre 2

Phase 1 : Compréhension du problème


métier

2.1 Introduction
Une fois qu’on a choisi notre méthodologie de travail, on commence par la première phase
de notre projet qui est la compréhension du métier.
Cette phase permet de définir le problème et identifier les objectifs métiers et les exigences de
la solution du point de vue commercial. Cette première étape est la plus difficile puisqu’elle va
orienter toutes les autres étapes et conditionner la réussite de notre application.

8
CHAPITRE 2. PHASE 1 : COMPRÉHENSION DU PROBLÈME MÉTIER

2.2 Achat Voiture Occasion : les clés pour


faire le bon choix

2.2.1 Etude de l’existant et problématique

 Pourquoi acheter une voiture d’occasion ?


Une voiture d’occasion est une automobile mise en vente qui n’est plus neuve. Son proprié-
taire la commercialise donc de seconde main, après l’avoir utilisée. La voiture d’occasion
s’oppose à la voiture neuve et diffère de la voiture 0km, qui sont des voitures n’ayant
jamais roulé.
L’achat d’une voiture d’occasion se justifie principalement par des motivations financières.
En effet, ces véhicules ont l’avantage d’être bien moins chers que les voitures neuves, avec
un coût d’achat jusqu’à 40 inférieur.

 Comment choisir une voiture d’occasion ?


Avant tout, posez-vous les questions qui vous permettront d’affiner votre choix de voiture
d’occasion :

— Quel budget suis-je prêt à mettre ?

— Quel(s) modèle(s) vais-je cibler en priorité ?

— Quelle motorisation est adaptée à mes besoins (essence, diesel. . .) ?

Pour une voiture d’occasion, la question du kilométrage est également essentielle. Si vous
roulez beaucoup, mieux vaut opter pour une voiture avec un kilométrage limité.
En effet, on considère qu’une voiture qui a beaucoup roulé est plus usée et ne sera pas
forcément capable de tenir la route encore longtemps. En revanche si vous roulez peu, un
véhicule avec beaucoup de kilomètres au compteur ne sera pas un frein.
Partout dans le monde, comme en PHILIPPINE, le marché automobile d’occasion est
la plus grande part du marché automobile global.

9
CHAPITRE 2. PHASE 1 : COMPRÉHENSION DU PROBLÈME MÉTIER

Figure 2.1 – L’evolution du marché de véhicules d’occasion 2010-2019

Comment assurer à un acheteur de trouver une source d’informations sur les


différents types de voitures occasions ainsi ces critères définis en précisant leurs
prix approximatives ?

2.2.2 Solution

Avant de vous jeter dans un achat, il est utile de bien se renseigner pour faire le bon choix
et viser les bons plans.

Figure 2.2 – Exemple de caractéristiques de voitures

10
CHAPITRE 2. PHASE 1 : COMPRÉHENSION DU PROBLÈME MÉTIER

Pour aider l’utilisateur à savoir le prix d’une voiture occasion en se basant sur des critères
spécifiques tels que : le nom (marque) ; transmission ; le type de carburant, nombre d’anciens
propriétaires, l’année où la voiture a été amenée, (etc.), là intervient le Data Science, plus
précisément le MACHINE LEARNING.
Nous allons développer un algorithme de machine learning permettant de prédire les prix de
voitures occasions en mettant en considération les critères définis.
Un data scientist cherche toujours la satisfaction de l’utilisateur. Dans ce contexte nous allons
intégrer notre modèle de prédiction dans une page web simple et facile à utiliser.

2.3 Conclusion
Une fois qu’on a bien compris notre métier, nous allons passer aux étapes de collecte des
données exigées et de compréhension des données. Dans notre cas, nous avons une dataset que
nous allons travailler avec. Donc l’´étape suivante ¸ça sera la compréhension des données.

11
Chapitre 3

Phase 2 : La compréhension des données

3.1 Introduction
La phase de compréhension des données vise à déterminer précisément les données à ana-
lyser, à identifier la qualité des données disponibles et à faire le lien entre les données et leur
signification d’un point de vue métier

3.2 Choix de données


Une recherche détaillée nous amène à choisir une dataset illustrant les prix des voitures
occasion en philippine.

Notre motivation de choisir cette dataset parmi d’autres est que cette dernière possède
plusieurs critères décrivant une voiture occasion dont nous allons les découvrir et les analyser
pour sortir des critères ayant un impact direct sur le prix.

Nous allons télécharger notre dataset depuis Kaggle, la plateforme possédant un nombre
important de datasets, des notebooks/scripts publics, un forum et enfin des cours sur les prin-
cipales thématiques de la science des données.

12
CHAPITRE 3. PHASE 2 : LA COMPRÉHENSION DES DONNÉES

Figure 3.1 – Logo du Kaggle

La figure 4.2 illustre notre dataSet :

Figure 3.2 – la dataset dans Kaggle

3.3 Les outils et les bibliothèques utilisées

3.3.1 Langage de programmation

Python est le langage de programmation le plus utilisé dans le domaine du Machine Lear-
ning, du Big Data et de la Data Science.

13
CHAPITRE 3. PHASE 2 : LA COMPRÉHENSION DES DONNÉES

Pour cette raison nous allons travailler avec ce dernier.

Figure 3.3 – Logo Python

3.3.2 Environnement de travail

Comme environnement de travail nous allons utiliser le Google Colab, un outil Google simple
et gratuit pour vous initier au Machine Learning ou collaborer avec vos collègues sur des projets
en science des données.

Figure 3.4 – Logo Python+logo colab

3.3.3 Bibliothèques utilisées

 Pandas
Pandas est un package Python open-source qui fournit des structures de données et des
outils d’analyse des données de haute performance et faciles à utiliser pour les données
étiquetées dans le langage Python. Pandas signifie Python Data Analysis Library. Pandas
est conçu pour la manipulation rapide et facile des données : La lecture, l’agrégation et
la visualisation.

 Numpy
NumPy (pour Numerical Python) est un outil parfait pour le calcul scientifique et la
réalisation d’opérations de base et avancées avec des tableaux.

14
CHAPITRE 3. PHASE 2 : LA COMPRÉHENSION DES DONNÉES

La bibliothèque offre de nombreuses fonctionnalités pratiques permettant d’effectuer des


opérations sur des tableaux (n-arrays) et des matrices en Python.

 Matplotlib
Grace à Matplotlib, on peut tracer des Histogrammes, graphiques ‘a barres, diagrammes
de dispersion, graphique de zone ‘a diagramme ‘a tarte. Matplotlib peut représenter les
données sous plusieurs visualisations.

 Seaborn
Seaborn est la bibliothèque de visualisation de données basée sur Matplotlib qui four-
nit une interface de haut niveau pour dessiner des graphiques statistiques attrayants et
informatifs. Pour le dire simplement, seaborn est une extension de Matplotlib avec des
fonctionnalités avancées.

 Sklearn
Scikit-learn est la principale bibliothèque d’outils dédiés à la machine learning et à la
data-science dans l’univers Python.

Figure 3.5 – Les Bibliothéques utilisés

Il est recommander d’importer toutes les packages nécessaires dans une seule cellule pour
les exécuter une fois pour toute.

15
CHAPITRE 3. PHASE 2 : LA COMPRÉHENSION DES DONNÉES

Figure 3.6 – l’importation des bibliotheques à utiliser

3.4 Importation Des Données


Un moyen simple de stocker des ensembles de données volumineuses consiste à utiliser des
fichiers CSV.

Nous allons maintenant lire nos données d’un fichier csv dans un DataFrame Pandas, en
utilisant la méthode read-csv.

Figure 3.7 – l’importation du dataset

16
CHAPITRE 3. PHASE 2 : LA COMPRÉHENSION DES DONNÉES

3.5 Exploration de données (EDA)


La phase d’exploration de données permet de comprendre ses dernières. Grâce à l’analyse
multi-variée, on peut déduire certaines hypothèses qui pourront servir lors de la phase prépa-
ration de données et de modélisation.

 Data.shape :
Nous pouvons voir la dimension du DataFrame

Figure 3.8 – les dimensions du Dataset

 Data.head() :
Cette fonction renvoie les n premières lignes de l’objet en fonction de la position. Il est
utile pour tester rapidement si votre objet contient le bon type de données. Nombre de
lignes à sélectionner.

Figure 3.9 – Les 5 permiers lignes du dataset

 Data.info () :
La fonction info () est utilisée pour imprimer un résumé concis d’un DataFrame.

17
CHAPITRE 3. PHASE 2 : LA COMPRÉHENSION DES DONNÉES

Cette méthode imprime des informations sur un DataFrame, notamment les types de
colonne, les valeurs non NULL et l’utilisation de la mémoire.

Figure 3.10 – des informations sur la dataset

 Data.isna () :
La fonction isna () est utilisée pour détecter les valeurs manquantes. Il renvoie un objet
booléen de même taille indiquant si les valeurs sont NA. Valeurs NA, telles que Aucun
ou numpy. NaN, est mappé sur les valeurs True.
Nous avons ajouté la fonction .sum() pour afficher le nombre de valeurs manquantes
dans chaque colonne :

Figure 3.11 – Le nombre des valeurs nulles pour chaque colonne

Les colonnes mileage, engine,max-power,torque et seats ont des valeurs manquantes


à gérer lors de la phase suivante

18
CHAPITRE 3. PHASE 2 : LA COMPRÉHENSION DES DONNÉES

 Data.descripe () :
Describe () est utilisé pour afficher certains détails statistiques de base tels que le centile,
la moyenne, la norme, etc. d’une trame de données ou d’une série de valeurs numériques.

Figure 3.12 – Des Stasiques sur les colonnes numeriques

Nous allons afficher des statistiques pour les colonnes de type objets :

Figure 3.13 – Des Stasiques sur les colonnes catégoriques

 bar-plot(data,col) :
Pour visualiser les contenus de chaque colonne sans redondance et afficher le nombre
de chaque élément, nous avons définir une fonction bar-plot qui prend en parametre la
dataframe et le nom du colonne (data,col) et qui rend comme affichage un graphique à
barres.

19
CHAPITRE 3. PHASE 2 : LA COMPRÉHENSION DES DONNÉES

Figure 3.14 – La fonction Bar-plot

— Colonne « Fuel »

Figure 3.15 – le nombre des voitures par type du carburant

Remarque : fuel le plus utilisé c’est : diesel et pétrole alors que CNG et LGP sont
utilisés rarement 95 lignes / 8128 lignes. Il est possible de les considérer comme un
fuel de type OTHER (autre que diesel et pétrole)

— Colonne «Owner »
Remarque : De même pour la colonne Owner les 2 propriétaires les plus énoncés
sont ‘first owner’ et ‘second owner’ 7394 lignes/ 8128 lignes
La somme des lignes des autres propriétaires ensemble est : 734 lignes / 8128 lignes
(ne sont pas assez utilisés). Donc nous pouvons les rendre un seule type Third Owner
Above

20
CHAPITRE 3. PHASE 2 : LA COMPRÉHENSION DES DONNÉES

Figure 3.16 – le nombre des voitures par type du propriétaire

— Colonne « Transmission »
Nous allons visualiser à travers la bibliothèque seaborn, la distribution de données
de la colonnes transmission par rapport aux colonnes : year, selling-price et km-
driven

Figure 3.17 – la distrubution des données pour la colonne transmission

Remarque
-Le prix des voitures automatiques est plus élevé que de celle des voitures manuelles.

21
CHAPITRE 3. PHASE 2 : LA COMPRÉHENSION DES DONNÉES

-Le nombre des voitures automatiques augmente les dernières années (entre 2015 et
2020).
-Distribution de données indique possibilité. d’outliers.

3.6 Conclusion
Après avoir bien comprendre les données et connaitre le type et la signification de chaque
variable, ainsi que leur distribution, la min, le max, la moyenne, la médiane...et la relation entre
les variables, il est temps de passer à la phase suivante qui est la préparation des données.

Il est nécessaire de noter qu’il est indispensable de passer par la partie de preprocessing
pour pouvoir continuer la phase EDA et la partie de cleaning au fur et à mesure .

22
Chapitre 4

Préparation des données

4.1 Introduction
L’étape de préparation des données comprend toutes les activités utilisées pour construire
l’ensemble de données utilisées à l’étape de modélisation. Elle inclue le nettoyage des données,
la combinaison de données provenant de sources multiples et la transformation de données en
variables plus utiles.

4.2 Suppression des colonnes inutiles


Nous allons commencer par supprimer les deux colonnes torque et seller-type qui n’ont
pas un impact sur le prix de la voiture selon la compréhension du métier :

Figure 4.1 – Suppresion des colonnes unitiles

23
CHAPITRE 4. PRÉPARATION DES DONNÉES

4.3 Extraction de valeurs numériques


Il existe des colonnes de types objets contenant des informations à extraire tels que :

— La colonne name :
nous allons extraire la première chaine de caractère qui est le type de voiture

— Les colonne mileage, engine et max-power :


nous allons extraire les valeurs numeriques seulement sans unité

Figure 4.2 – les colonnes à modifiers

Pour Ce Faire, nous avons définir une fonction extraction (data,col) :

Figure 4.3 – La definition et l’appel du fonction Extraction

4.4 Conversion de type des colonnes


Les colonnes (mileage, engine, max-power) sont encore de type object, il faut alors les
convertir en float. Pour ce faire, nous avons préparer la fonction convert-tofloat(data,col) :

24
CHAPITRE 4. PRÉPARATION DES DONNÉES

Figure 4.4 – La definition et l’appel du fonction convert-to-float

4.5 Manipulation des valeurs manquantes


Une valeur manquante est la partie de l’ensemble de données qui semble manquante ou qui
est une valeur nulle, peut-être en raison de données manquantes lors de la recherche ou de la
collecte de données.

Avoir une valeur manquante dans un modèle d’apprentissage automatique est considéré
comme très inefficace et dangereux pour les raisons suivantes :

 Réduit l’efficacité du modèle ML.

 Affecte la distribution globale des valeurs de données.

 Cela conduit à un effet de biais dans l’estimation du modèle ML.

C’est alors que l’imputation entre en jeu. Par imputation, nous entendons remplacer les
valeurs manquantes ou nulles par une valeur particulière dans l’ensemble de données.

L’imputation peut être effectuée à l’aide de l’une des techniques ci-dessous :

 Imputer par la moyenne

 Imputer par la médiane

 Imputation en utilisant un model ML (KNN, Régression Linéaire , etc)

Dans notre cas, nous allons adapter l’imputation par la moyenne :


C’est-à-dire que les valeurs nulles ou manquantes peuvent être remplacées par la moyenne des
valeurs de données de cette colonne de données ou de cet ensemble de données particulier.

25
CHAPITRE 4. PRÉPARATION DES DONNÉES

Pour cela, nous allons utiliser la fonction .fillna() pour remplir les valeurs manquantes et
.mean() pour insister le remplissage par moyenne :

Figure 4.5 – La definition et l’appel du fonction fillNAN

Vérification :

Figure 4.6 – Verification de la remplissage du valeurs manquantes

4.6 Traitement de données

4.6.1 Traitement de la colonne name

Nous avons appelé la fonction bar-plot() pour visualiser les noms des voitures les plus
utilisées :

26
CHAPITRE 4. PRÉPARATION DES DONNÉES

Figure 4.7 – Les nombres des Voitures Par types

Nous avons remarqué, selon le nombre de voitures pour chaque type, que plusieurs types
admettent un faible nombre de voitures.

Pour les spécifier, nous avons affiché les types de voitures ayant un nombre inférieur à 15 et
les stockés dans une liste nommée car-count-less15 :

Figure 4.8 – la fonction car-count-less15

Nous allons considérer les types de voitures situés dans la liste comme other :

Figure 4.9 – Modification sur la colonne name

27
CHAPITRE 4. PRÉPARATION DES DONNÉES

Vérification :

Figure 4.10 – Verification du changment de la colonne name

4.6.2 Traitement de la colonne Fuel

Comme nous avons indiqué dans la phase de l’exploration de données, les fuels autres que
diesel et pétrole vont être de type OTHER :

Figure 4.11 – Traitement de la colonne Fuel

4.6.3 Traitement de la colonne Owner

De même pour la colonne Owner, les propriétaires autres que first et second owner sont
considérés comme Third Owner Above :

28
CHAPITRE 4. PRÉPARATION DES DONNÉES

Figure 4.12 – Traitement de la colonne Owner

4.7 Détection et suppression des outliers


En Data Science, les jeux de données comportent souvent des irrégularités et des erreurs.
Cela peut être des données manquantes ou des données aberrantes. Savoir traiter ces données
permettra de produire un modèle prédictif accru et efficace.

Une valeur aberrante est une valeur extrême, anormalement différente de la distribution
d’une variable. En d’autres termes, la valeur de cette observation diffère grandement des autres
valeurs de la même variable.

 Une valeur aberrante : c’est une valeur qui est manifestement fausse

 Une valeur atypique : c’est une valeur qui "sort du lot", mais pas forcément fausse.

4.7.1 Suppression des outliers de la colonne km-driven

Nous allons afficher la distribution de données de la colonne transmission par rapport aux
colonnes : km-driven, selling-price

29
CHAPITRE 4. PRÉPARATION DES DONNÉES

Pour cela nous avons utilisé la bibliothèque seaborn

Figure 4.13 – Distrubution des données pour la colonne KM-driven

Remarque :

 Le prix des voitures automatiques est plus élevé que de celle des voitures manuelles

 Il existe plusieurs méthodes pour la suppression des outliers

Nous avons appliqué la méthode de percentile qui est une méthode très utilisé dans la detection
et la suppression des outliers.

Figure 4.14 – Le principe de la methode Percentile

Identification des valeurs aberrantes avec la plage interquartile (IQR) L’intervalle interquar-
tile (IQR) est une mesure de la dispersion statistique et est calculé comme la différence entre
les 75e et 25e centiles. Il est représenté par la formule IQR = Q3 − Q1.

30
CHAPITRE 4. PRÉPARATION DES DONNÉES

Les lignes de code ci-dessous calculent et impriment l’intervalle interquartile pour chacune
des variables de l’ensemble de données.

Figure 4.15 – Sppression des outliers en utlisant la methode Percentile

Cette technique utilise les scores IQR calculés pour supprimer les valeurs aberrantes.

En règle générale, tout ce qui n’est pas compris entre (Q1 - 1,5 IQR) et (Q3 + 1,5 IQR)
est une valeur aberrante et peut être supprimé. Ce qui donne comme résultat :

Figure 4.16 – La nouvelle distrubution des données de la colonne KM-Driven

31
CHAPITRE 4. PRÉPARATION DES DONNÉES

4.7.2 Suppresion des outliers de la colonne selling-price

Il faut noter que le prix des voitures automatiques doit être toujours supérieur au prix
des voitures manuelles pour cela nous appliquons la fonction suivante qui permet d’éliminer
les outliers que ce soit pour les voitures manuelle ou automatique en utilisant la méthode
percentile.

Figure 4.17 – La fonction de suppresion des outliers pour la colonne Selling-price

Ce qui donne comme résultat :

Figure 4.18 – La nouvelle distrubution des données de la colonne Selling-price

32
CHAPITRE 4. PRÉPARATION DES DONNÉES

4.7.3 Suppresion des outliers de la colonne Year

La première étape consiste à afficher le prix de ventes de voitures (automatique et manuelle)


par rapport à la colonne Year :

Figure 4.19 – La distribution des données de la colonne Year

Remarque : il existe des outliers pour les années avant 2006, il est possible de l’éliminer
et prendre en considération depuis l’année 2006. Pour ce faire, nous avons appliqué la fonction
suivante :

Figure 4.20 – La nouvelle distribution de la colonne Year

33
CHAPITRE 4. PRÉPARATION DES DONNÉES

A ce stade-là, nous avons terminé la détection et la suppression des outliers et nous allons
passer à afficher la matrice de corrélation pour savoir les colonnes qui ont un impact élevé sur
le prix.

4.8 Matrice de corrélation


La matrice des corrélations est tout simplement la matrice des coefficients de corrélation
statistiques ou de coefficients de corrélation stochastiques calculés sur plusieurs variables prises
deux à deux.

Une matrice des corrélations permet de détecter rapidement certaines liaisons. C’est donc
en amont des études qu’on l’utilise.

Figure 4.21 – La Matrice de Correlation de la Dataset

D’après cette matrice, nous remarquons que les deux colonnes seats et mileage n’ont pas
une forte corrélation avec la colonne target qui est le prix. Pour cette raison, nous allons les
supprimer pour avoir un résultat exact à la fin :

Figure 4.22 – Sppression de les colonnes admettant une faible correlation

34
CHAPITRE 4. PRÉPARATION DES DONNÉES

Donc comme colonne finaux nous obtenons :

Figure 4.23 – la nouvelle Dataset Aprés la Sppression des colonnes unitiles

4.9 One Hot Encoder


Le one hot encoding est la méthode la plus populaire pour transformer une variable catégo-
rique en variable numérique. Sa popularité réside principalement dans la facilité d’application.
De plus, pour beaucoup de problèmes, elle donne de bons résultats.

Encodage de chaque variable catégorielle avec différentes variables booléennes (´également


appelées variables dummy) qui prennent les valeurs 0 ou 1, indiquant si une catégorie est
présente dans une observation.

get-dummies dans la bibliothèque Pandas ferait le travail d’encodage comme indiqué ci-
dessous. Cela créerait des colonnes supplémentaires pour chaque catégorie en utilisant 0 et 1
indiquant si la catégorie est présente. Si la catégorie est présente, elle sera indiquée par 1, sinon
par 0.

Figure 4.24 – l’application du One Hot Encoder sur les colonnes Catégoriques

35
CHAPITRE 4. PRÉPARATION DES DONNÉES

4.10 Label Encoder


Label Encoder c’est Remplacez les catégories par un nombre de 1 à n (ou de 0 ‘a n-1, selon
l’implémentation), où n est le nombre de catégories distinctes de la variable.

Figure 4.25 – l’application du Label Encoder sur la colonne Owner

4.11 Conclusion
Dans ce chapitre, nous avons appliqué tout un processus d’analyse et de traitement de
données. Nous avons commencé par remplir les valeurs manquantes par la moyenne de colonne,
nous avons détecté dans ce qui suit les outliers et les supprimés.

Nous avons effacé les colonnes qui ont une faible corrélation par rapport à la colonne prix
en se basant sur une matrice de corrélation. Et nous avons finis par appliquer la méthode One
Hot Encoder pour convertir les valeurs catégoriques aux valeurs numériques.

Il est temps maintenant de commencer la phase de modélisation.

36
Chapitre 5

Phase 4 : Modélisation

5.1 Introduction
Une fois notre dataset est bien nettoyée et bien préparée on peut passer directement à la
modélisation.

La modélisation est généralement effectuée en utilisant plusieurs itérations. Généralement,


les data miners exécutent plusieurs modèles en utilisant les paramètres par défaut, puis affinent
ces derniers ou reviennent à la phase de préparation des données pour effectuer les manipulations
requises par le modèle de leur choix.

5.2 Extraction des features et du target


Nous allons specifier notre features et notre Target :

 Features : name,transmission,fuel,owner,engine,Max-power

 Target : selling-price

37
CHAPITRE 5. PHASE 4 : MODÉLISATION

5.3 Comparaison des modèles


Pour choisir un modèle performant parmi d’autres, il est nécessaire d’appliquer une compa-
raison entre ces derniers. Notre projet consiste à prédire le prix d’une voiture. Pour cela nous
allons utiliser les modèles de régression suivants :

 Régression linéaire
Aussi appelée modèle linéaire, la régression linéaire est un modèle statistique qui effectue
des fonctions prédictives. Pour réaliser des estimations pertinentes, le processus s’appuie
sur des valeurs numériques afin de dégager une tendance ou une évolution prévisible. Par
le biais d’un dataset, le système permet ainsi de les extrapoler et d’anticiper des valeurs
futures.
La régression linéaire présente plusieurs champs d’application. Cela vaut pour développer
une intelligence artificielle de type machine learning, capable d’apprendre de nouvelles
règles et fonctions par elle-même. L’économétrie, les statistiques et les tendances bour-
sières utilisent également d’un modèle linéaire.

 Lasso
La régression au lasso est un type de régression linéaire qui utilise le rétrécissement . Le
rétrécissement est l’endroit où les valeurs des données sont rétrécies vers un point central,
comme la moyenne . La procédure lasso encourage les modèles simples et clairsemés
(c’est-à-dire les modèles avec moins de paramètres). Ce type particulier de régression est
bien adapté aux modèles présentant des niveaux élevés de muticolinéarité ou lorsque vous
souhaitez automatiser certaines parties de la sélection de modèles, comme la sélection de
variables/l’élimination de paramètres.

 Arbre de decision
Les arbres de classification et de régression (parfois aussi appelés arbres de segmentation
ou de décision) sont des méthodes qui permettent d’obtenir des modèles à la fois expli-
catifs et prédictifs. Parmi leurs avantages on notera d’une part leur simplicité du fait
de la visualisation sous forme d’arbres, d’autre part la possibilité d’obtenir des règles en
langage naturel.

38
CHAPITRE 5. PHASE 4 : MODÉLISATION

on utilise les arbres de régression pour expliquer et/ou prédire les valeurs prise par une
variable dépendante quantitative, en fonction de variables explicatives quantitatives et/ou
qualitatives.

 Forêt Aléatoire
La forêt aléatoire est un algorithme d’apprentissage supervisé qui utilise une méthode
d’apprentissage d’ensemble pour la classification et la régression .
Il fonctionne en construisant une multitude d’arbres de décision au moment de l’appren-
tissage et en sortant la classe qui est le mode des classes (classification) ou la prédiction
moyenne (régression) des arbres individuels.

La plupart des modèles de machine learning doivent être paramétrés pour donner les meilleurs
résultats. Par exemple pour un Random Forest, on doit choisir le nombre d’arbres à créer et
le nombre de variables à utiliser à chaque division d’un nœud. Si on paramètre à la main, cela
peut vite s’avérer très coûteux en temps (et pas forcément très intéressant) . . .

C’est là que le Grid search intervient. C’est une méthode d’optimisation (hyperparameter
optimization) qui va nous permettre de tester une série de paramètres et de comparer les
performances pour en déduire le meilleur paramétrage.

Figure 5.1 – L’algorithme Grid-Search-CV

39
CHAPITRE 5. PHASE 4 : MODÉLISATION

Comme résultat de l’application de la méthode gridsearchcv, qui rend le meilleur modèle à


adapter avec ces meilleurs paramètres, nous avons obtenu la dataframe suivante :

Figure 5.2 – La Resultat du Grid-Search-CV

5.4 Application de l’algorithme Random-


forest
Nous avons commencé par diviser les données en deux parties : parties train (80%) et partie
test (20%) :

Figure 5.3 – Deviser La Dataset en Train et Test

Nous appelons le modèle random-forest et l’initialiser dans une variable avec ces paramètres
idéals :

Figure 5.4 – Initialiser du modéle Random-Forest Avec les meilleurs Paramétres

40
CHAPITRE 5. PHASE 4 : MODÉLISATION

Il est temps de trainer le modèle afin de tester sa performance :

Figure 5.5 – Entrainer le modele sur les données

5.5 Conclusion
Nous avons comparé les différents modèles de régression sur de nombreux états de nos
données pour bien évidemment chercher le modèle qui convient le plus avec notre dataset et
trouver le modèle le plus précis qui répond le mieux à notre objectif qui est la prédiction de
prix de voitures occasions.

C’est dans la partie suivante qui est l’évaluation de notre modèle.

41
Chapitre 6

Phase 5 : Evaluation du modèle adapté

6.1 Introduction
Il faut toujours évaluer la qualité du modèle et vérifier si celui-ci résout le problème de
manière complète et appropriée.

L’évaluation se fait à l’aide des métriques d’évaluation qui sont censées quantifier le niveau
de la prédiction et donner une idée plus ou moins précise sur la qualité de notre modèle.

6.2 Score de performance


Un modèle de score est le résultat d’une carte de score. Leurs connaissances et leur expérience
approfondies leur permettent de décider quels éléments influencent réellement le résultat et
d’attribuer une note à chaque élément en fonction de sa valeur.

Nous allons afficher le score de performance pour notre modèle comme suit :

Figure 6.1 – La performance du modele adapté

42
CHAPITRE 6. PHASE 5 : EVALUATION DU MODÈLE ADAPTÉ

Notre modèle est performant de 98%.

6.3 Ajustement du modèle : underfitting


ou overfitting
Comprendre l’ajustement du modèle est important pour comprendre la cause première d’une
faible précision du modèle.

Cette compréhension vous guidera pour prendre des mesures correctives. Nous pouvons
déterminer si un modèle prédictif sous-ajuste ou sur-ajuste les données d’entraînement en exa-
minant l’erreur de prédiction sur les données d’entraînement et les données d’évaluation.

Figure 6.2 – La difference entre Best fitting , under fitting and Over fitting

 Overfitting
Le sur-apprentissage fait référence au scénario dans lequel un modèle d’apprentissage au-
tomatique ne peut pas se généraliser ou s’adapter correctement à un ensemble de données
invisible. Un signe clair de sur-apprentissage de l’apprentissage automatique est que son
erreur sur l’ensemble de données de test ou de validation est bien supérieure à l’erreur
sur l’ensemble de données d’apprentissage.
Le sur-apprentissage est un terme utilisé dans les statistiques qui fait référence à une
erreur de modélisation qui se produit lorsqu’une fonction correspond trop étroitement
à un ensemble de données. En conséquence, le sur-ajustement peut ne pas ajuster les
données supplémentaires, ce qui peut affecter la précision de la prédiction des observations
futures.

43
CHAPITRE 6. PHASE 5 : EVALUATION DU MODÈLE ADAPTÉ

 Underfitting
Le sous-apprentissage fait référence à un modèle qui ne peut ni modéliser l’ensemble
de données d’apprentissage ni généraliser à un nouvel ensemble de données. Un modèle
d’apprentissage automatique sous-adapté n’est pas un modèle approprié et sera évident
car il aura de mauvaises performances sur l’ensemble de données d’entraînement.
Le sous-ajustement n’est souvent pas discuté car il est facile à détecter compte tenu d’une
bonne métrique de performance.

Dans notre projet, pour tester l’ajustement de notre modèle, nous allons comparer le score de
train et de test :

Figure 6.3 – Comparison entre le score du partie Train et Test

Pour un score-train pareil au score-test 1.0 / 0.98 , nous pouvons conclure que c’est le
meilleur ajustement ou encore Best-Fitting.

6.4 Quelques Test de prédiction


Arrivons à la partie la plus importante, c’est la phase de test de fonctionnalité.

Nous allons tester la prédiction des prix des voitures occasions.

Pour ce faire, nous avons préparé une fonction predict-price qui prend en paramètres
(name, transmission, fuel,owner, year, km-driven, engine,max-power) et retouner comme resul-
tat l’estimation du prix

44
CHAPITRE 6. PHASE 5 : EVALUATION DU MODÈLE ADAPTÉ

Figure 6.4 – La fonction de prediction du Prix

Nous allons finir par la figure suivante qui illustre quelques prédictions :

Figure 6.5 – quelques Resultats de la fonction predict-price

6.5 Conclusion
A la fin de cette étape on est bien sortie avec le meilleur modèle parmi tous les modèles qu’on
a testés et avec lequel on va déployer notre application et rendre notre modèle exploitable.

45
Chapitre 7

Phase 6 : Déploiement

7.1 Introduction
Une fois qu’un modélé satisfiasant a été dévloppé et approuvé, il est deployé dans l’environ-
nement de production ou dans un environnement de test comparable.

7.2 Extraction du modèle


En tant que data scientist, vous utiliserez des ensembles de données sous forme de diction-
naires, de DataFrames ou de tout autre type de données. Lorsque vous travaillez avec ceux-ci,
vous souhaiterez peut-être les enregistrer dans un fichier afin de pouvoir les utiliser plus tard ou
les envoyer à quelqu’un d’autre. C’est à cela que sert le pickle module de Python : il sérialise
les objets afin qu’ils puissent être enregistrés dans un fichier et rechargés dans un programme
plus tard. De meme pour notre projet nous allons utilisé le module pickle pour extraire notre
modele dans le but de l’utiliser dans la page web.

Figure 7.1 – Extraction du modéle

46
CHAPITRE 7. PHASE 6 : DÉPLOIEMENT

Par la suite nous avons extraire toutes les colonnes qui contiennent les noms du voitures
sous format json pour les utiliser aussi dans la page web en utilisant le module json

Figure 7.2 – Extraction des noms du colonnes

7.3 Outils et framework utilisés


 Vs Code
Visual Studio Code est une version réduite de l’environnement officiel de développement
Microsoft qui se concentre exclusivement sur l’éditeur de code. Il est multiplateforme et
supporte des syntaxes pour un grand nombre de langages comme HTML, CSS, JavaScript,
différentes variantes de C, JSON, Java, SQL, PHO, Ruby, Visual Basic, et beaucoup
d’autres.

Figure 7.3 – Logo Vscode

 Flask
Flask est un petit framework web Python léger, qui fournit des outils et des fonctionnalités
utiles qui facilitent la création d’applications web en Python. Il offre aux développeurs une
certaine flexibilité et constitue un cadre plus accessible pour les nouveaux développeurs
puisque vous pouvez construire rapidement une application web en utilisant un seul fichier
Python.

47
CHAPITRE 7. PHASE 6 : DÉPLOIEMENT

Flask est également extensible et ne force pas une structure de répertoire particulière ou
ne nécessite pas de code standard compliqué avant de commencer.

Figure 7.4 – Logo flask

 HTML,JS,CSS

HTML : Le rôle du langage HTML est de permettre de rendre présent à l’écran au


travers d’un navigateur tous les éléments constituant la page Web

JavaScript : Le langage JavaScript est un langage beaucoup plus évolué que le langage
HTML et langage CSS qui ne permette en gros que de faire s’afficher les éléments et
de les mettre en forme par le Navigateur. Le langage JavaScript permet par exemple
dans le cas d’un formulaire à saisir par l’utilisateur, l’internaute, le client, de faire
vérifier si les informations sont correctement saisies avant que celles-ci ne soient
transmises.

CSS : Pour la mise en forme, mise en page (placement des éléments, colorisation, . . .), le
langage CSS nous permet de fixer toutes les règles de mise en page (style des titres,
des paragraphes, des liens, etc. ) pour la page Web.

Figure 7.5 – Logo HTML-JS-CSS

48
CHAPITRE 7. PHASE 6 : DÉPLOIEMENT

7.4 Développement de l’interface Web


Dans le but de faciliter la structure de notre application, nous avons devisé les fichier en 2
partie :

 partie back-end
Cette partie consiste à regrouper les méthodes utilisées dans notre application.

 Partie Frond-end
C’est la partie présentant la préparation de l’interface utilisateur (design,couleur,...)

partie back-end Donc la structure de notre application est présenté comme suit

Figure 7.6 – La structure de la partie dévloppement

Le dossier client regroupe tous les fichiers de la partie front-end et le dossier server ainsi que
la ficher app.py presentent la partie back-end.

49
CHAPITRE 7. PHASE 6 : DÉPLOIEMENT

7.5 Test de validation


Sur le port 5000(port par défaut du flask), nous allons lancer notre application finale donnant
comme interface,la figure suivante :

Figure 7.7 – L’interface web finale

50
CHAPITRE 7. PHASE 6 : DÉPLOIEMENT

Il est temps de tester le bon fonctionnement de prédiction des prix des voitures sur notre
application.

Figure 7.8 – L’execution du modéle sur l’interface web

Pour notre test, nous avons choisi les valeurs suivantes :

 nom du voiture : bmw

 type de tansmission : Automatique

51
CHAPITRE 7. PHASE 6 : DÉPLOIEMENT

 type de carbutant : Diesel

 Nombre d’anciens propriétaires : Deux

 Année où la voiture a été amenée : 2020

 Kilomètres parcourus (odomètre) : 120000

 Capacité du moteur(centimètres cubes (cc)) : 2000

 Max Power : 120

Ce qui donne comme une estimation du Prix : Php 1716934.76

7.6 Conclusion
Dans cette partie, nous avons devloppé une application pour mettre en évidence la fonc-
tionnalité du notre modele de prediction des prix des voitures occasions.

L’interface web obtenue permet de faciliter et simplifier le precessus de prediction du prix


d’une voiture à vendre.

52
Conclusion Générale

Aujourd’hui le machine learning est au cœur de toute activité des entreprises.

La prise de décisions fondée sur la donnée est un atout qui permet aux entreprises de rester
dans la course. Le machine learning peut jouer un rôle clé en valorisant les données et les clients
et en aidant les entreprises à prendre les bonnes décisions pour se démarquer.

L’apprentissage automatique se concerne tous les metiers, notament les ventes des voitures.

Dans ce projet, nous avons l’occasion de suivre la methodologie CRISP-DM afin d’ap-
pliquer toute un pipeline,commençant par la comprehension du metier jusqu’à la phase de
deploiment.

A la base d’un modéle de régression(Random-Forest), nous avons pu prédire les prix des
voitures occasions selon des critéres bien determinés(features).

53

Vous aimerez peut-être aussi