Vous êtes sur la page 1sur 27

ROYAUME DU MAROC

ÉCOLE NATIONALE SUPÉRIEURE DES MINES DE RABAT

Projet de AI

Filière : Management des Systèmes d’Information et de Production (MSIP)


Département : Informatique

Bitcoin price forecasting (Xgboost-LSTM)

Réalisé par :
Ammor Anas
Dbib Omar Encadré par :
Magri Akram Mme. Zrira Nabila
El-marjani Mohammed
Guennoni Hamza

Année universitaire : 2022/2023


REMERCIEMENTS

Avant de développer notre rapport, il paraît opportun de le commencer par des remerciements
à notre professeur madame Nabila Zrira qui a veillé tout au long du semestre 5 à nous apporter
des conseils judicieux à travers une formation à très forte qualité. Nous garderons dans notre
mémoire vos qualités humaines et votre sympathie tout le long de ce semestre, tout en espérant
vous revoir prochainement et dans de meilleures circonstances. Honorés de faire partie de vos
élèves, veuillez trouver ici l’expression de notre gratitude et notre reconnaissance et haute
considération.

ii
RÉSUMÉ

Le Bitcoin est une crypto-monnaie et un système de paiement mondial. Il s’agit de la première


monnaie numérique décentralisée qui ne régit par aucune banque centrale ni gouvernement d’un
pays. A cet effet, il peut être utilisé pour acheter des marchandises et être échangé contre des biens
et des services chez les fournisseurs qui les acceptent comme moyen de paiement. Dernièrement,
le bitcoin connait une élévation dans le monde de la crypto-monnaie concernant le prix unitaire
et le volume de transactions, de sorte que les investisseurs se font concurrence pour en investir.
C’est sur ce volet que s’inscrit notre projet, celui de la Prédiction des prix des bitcoins à l’aide
des modèles Machine Learning XGBoost et LSTM, qui a pour but majeur de prédire la variation
de prix du Bitcoin lié aux prix des années précédentes. A cet effet, le présent rapport décrit
le travail réalisé dans le cadre du projet AI, et sera présenté selon les chapitres suivants : Le
premier chapitre est consacré à la présentation du contexte général du projet, à commencer par
une mise en situation, suivi de l’objectif et de la méthodologie de travail suivie. Le deuxième
chapitre décrit l’etude theorique de notre projet Le dernier chapitre sera dédié aux différentes
étapes de réalisation et experimentation

Et vers la fin, une conclusion qui résume le travail réalisé et présente les perspectives du
projet.

iii
ABSTRACT

Bitcoin is a cryptocurrency and a global payment system. It is the first decentralized digital
currency that is not governed by any central bank or government of a country. For this purpose,
it can be used to buy goods and be exchanged for goods and services at suppliers who accept
them as a means of payment. Lately, bitcoin is seeing a rise in the cryptocurrency world in unit
price and trading volume, so investors are competing to invest in it.

It is on this aspect that our project falls, that of Bitcoin price prediction using machine
learning algorithms such as XGBoost and LSTM, which has the major purpose of predicting the
Bitcoin price variation related to the last years’s prices

To this end, this report describes the work carried out within the framework of the project
AI, and will be presented according to the following chapters : The first chapter is devoted to
the presentation of the general context of the project, starting with a scenario, followed by the
objective and the working methodology followed.

The second chapter describes the theoretical study of our project. The last chapter will be
dedicated to the different stages of production and experimentation And towards the end, a
conclusion which summarizes the work carried out and presents the perspectives of the project

iv
INTRODUCTION

La prédiction des prix Bitcoin à l’aide des algorithmes Machine Learning est une technologie
relativement nouvelle et prometteuse qui permet d’utiliser des algorithmes d’apprentissage
automatique pour prédire le comportement futur du marché des crypto-monnaies. En utilisant
des algorithmes d’apprentissage automatique, les analystes peuvent prédire le comportement
des prix Bitcoin en se basant sur des données historiques et des indicateurs techniques. Ces
algorithmes peuvent également être utilisés pour prédire le comportement des autres crypto-
monnaies, ce qui peut être utile pour les investisseurs et les traders. Cette technologie promet
de fournir aux traders et aux investisseurs une prédiction plus précise des prix Bitcoin, offrant
ainsi une meilleure précision et une meilleure rentabilité. Ce rapport décrit l’utilisation des
modèles XGBoost et LSTM pour prédire les prix du Bitcoin. Les modèles ont été entraînés
avec des données historiques sur les prix des crypto-monnaies, ainsi que sur des informations
économiques et sociales pertinentes. Les résultats de la prédiction des prix à l’aide des deux
modèles seront comparés et discutés dans ce rapport.

v
Table des matières

1 Présentation générle du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1


1.1 Contexte général du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Conduite du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.1 méthodologie du travail . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.2 Diagramme de gantt . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Etude théorique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1 Qu’est-ce que l’analyse des séries chronologiques . . . . . . . . . . . . . . . . 4
2.2 Forecasting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3 Types des prévisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3.1 Prévisions quantitatives . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3.2 Prévisions qualitatives . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.4 XGBoost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.4.1 Introduction a XGBoost . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.4.2 Comment fonctionne XGBoost . . . . . . . . . . . . . . . . . . . . . . 6
2.5 LSTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.5.1 l’architecture de LSTM . . . . . . . . . . . . . . . . . . . . . . . . . . 6

vi
Table des figures

2.1 l’architecture de LSTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7


2.2 Porte d’oublie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3 Porte d’entrée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.4 Porte de sortie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

vii
Liste des tableaux

viii
CHAPITRE 1

PRÉSENTATION GÉNÉRLE DU PROJET

Ce chapitre introductif est consacré à la présentation du contexte général du projet, en


détaillant la démarche suivie.

1
1.1 Contexte général du projet

Bitcoin est une crypto-monnaie et un système de paiement mondial. Il s’agit de la première


monnaie numérique décentralisée, car le système fonctionne sans banque centrale ni administra-
teur unique. Il peut être utilisé pour acheter des marchandises de manière anonyme. Le Bitcoin a
historiquement tendance à être très volatil ce qui le rend difficile à prédire. L’objectif de notre
projet est de prédire la variation de prix du Bitcoin en utilisant des algorithmes d’apprentissage
profond XGBoost et LSTM.

1.2 Conduite du projet

1.2.1 méthodologie du travail

Réussir le travail présent n’est pas une mince affaire.la réussite nécessite une bonne gestion
du projet, pour ce faire on adopter la méthode cascade comme une méthodologie pour gérer
le projet de prédiction des prix des bitcoins à l’aide de réseaux neuronaux, car cette méthode
présente plusieurs avantages comme chaque phase du projet se verrouille à la suite des autres,
ce qui permet d’obtenir une bonne visibilité de la suite du projet. Le principe de la méthode
en cascade est simple. On découpe le projet en plusieurs phases et étapes. L’équipe projet
doit terminer une phase avant de pouvoir passer à la suivante. Ce qui fait sa différence avec
d’autres méthodologies, c’est qu’il n’est plus possible de revenir sur une phase lorsque celle-ci
est terminée et bien évidemment, validée par le professeur. cette méthode présente plusieurs
avantages comme chaque phase du projet se verrouille à la suite des autres, ce qui permet
d’obtenir une bonne visibilité de la suite du projet et elle repose sur 3 principes :

• L’élaboration des livrables définis au tout début du projet.

• La livraison de ces livrables à une date précise et définie lors du cadrage du projet .

• La phase ne se termine que lorsque cette dernière a été vérifiée puis validée. Si le professeur
n’est pas satisfait d’un livrable, l’équipe devra le retravailler jusqu’à ce qu’il soit parfait.

Le travail présent s’est étalé sur 5 étapes essentielles :

• . Collecter et préparer les données : collecter des données pertinentes et les préparer pour
l’analyse en les nettoyant, en les normalisant et en les organisant.

2
• Définir le problème : identifier le problème à résoudre et déterminer les métriques appro-
priées pour mesurer la performance de la solution.

• Choisir un algorithme : choisir un algorithme de machine learning approprié pour le


problème à résoudre et le type de données disponibles.

• Entraîner le modèle : entraîner le modèle en utilisant les données préparées et les hyperpa-
ramètres.

• Évaluer le modèle : évaluer le modèle en utilisant les métriques définies et comprendre


les forces et les faiblesses du modèle.

1.2.2 Diagramme de gantt

1.3 Conclusion

Ce chapitre a permis d’établir le contexte général du projet, définir la problématique et


décrire la démarche suivie pour atteindre les objectifs fixés. Dans le chapitre qui suit, nous allons
présenter l’étude théorique.

3
CHAPITRE 2

ETUDE THÉORIQUE

2.1 Qu’est-ce que l’analyse des séries chronologiques

L’analyse des séries chronologiques est une méthode d’analyse statistique qui consiste à
étudier une série de données à travers le temps. Elle est utilisée pour déterminer les tendances et
prédire le comportement futur d’un processus ou d’un système à partir des données passées. Elle
est utilisée dans de nombreux domaines, notamment l’économie, la finance et le marketing.

2.2 Forecasting

Le forecasting est une méthode analytique qui consiste à prédire des tendances à partir
des données passées et actuelles d’une organisation ou d’un marché. Il s’agit d’une technique
de prévision utilisée pour développer des modèles et des prévisions à court ou à long terme.
Le forecasting est une méthode de planification des activités d’une entreprise et est souvent
utilisée pour évaluer et anticiper les tendances futures. Il peut aider les organisations à prendre
des décisions stratégiques pour la gestion des ressources, le développement de produits et les
campagnes marketing.

4
2.3 Types des prévisions

2.3.1 Prévisions quantitatives

Les prévisions quantitatives sont des prévisions qui utilisent des méthodes statistiques et
mathématiques pour estimer l’évolution future d’une variable, comme le prix des actions, le
volume de ventes, etc. Les méthodes quantitatives peuvent aider les entreprises à prendre des
décisions informées sur l’allocation des ressources, la prévision des revenus et les prévisions
à long terme. Les prévisions quantitatives peuvent être utilisées pour prédire les niveaux de
production, les stocks, les livraisons et d’autres aspects des activités commerciales.

2.3.2 Prévisions qualitatives

Les prévisions qualitatives sont une forme de prévision qui se concentre sur l’analyse de
l’environnement et des tendances des marchés pour fournir des informations et une direction sur
les résultats futurs. Un chercheur qualitatif se concentre généralement sur des facteurs tels que le
comportement des consommateurs, la dynamique des entreprises ou l’évolution des tendances
de l’industrie, et utilise ces informations pour élaborer des prédictions sur les performances
futures d’une organisation. Les prévisions qualitatives sont souvent plus précises et plus adaptées
aux besoins spécifiques que les prévisions quantitatives, car elles tiennent compte des facteurs
psychologiques, culturels, politiques et économiques qui n’ont pas nécessairement de valeurs
numériques.

2.4 XGBoost

2.4.1 Introduction a XGBoost

XGBoost est un algorithme de machine learning prometteur qui a récemment fait l’objet
d’une attention considérable en raison de ses performances exceptionnelles et de sa capacité à
améliorer les prédictions sur des ensembles de données complexes. XGBoost est un algorithme
d’apprentissage automatique qui combine les algorithmes d’apprentissage supervisé et non
supervisé pour créer un modèle prédictif puissant. Cet algorithme est basé sur la technologie de
gradient boosting, qui combine plusieurs algorithmes de prédiction pour produire une prédiction

5
plus précise. XGBoost est l’un des algorithmes de machine learning les plus populaires, car il est
très flexible et peut être facilement appliqué à une variété de tâches d’apprentissage.

2.4.2 Comment fonctionne XGBoost

XGBoost est un algorithme d’apprentissage automatique de gradient boosting utilisé pour les
problèmes de classification et de régression. Il est basé sur des arbres de décision appelés "boîtes
de décision" qui sont des modèles d’apprentissage automatique qui apprennent des fonctions qui
mappent des entrées à des sorties. Les boîtes de décision sont construites par des algorithmes qui
optimisent les fonctions de perte pour minimiser les erreurs faites sur les données d’entrée. Une
fois les boîtes de décision construites, XGBoost combine ces boîtes de décision pour former un
modèle qui peut être appliqué aux données d’entrée. XGBoost est connu pour sa performance et
sa vitesse et est l’un des algorithmes d’apprentissage automatique les plus populaires et les plus
puissants disponibles.

2.5 LSTM

Le LSTM (Long Short-Term Memory) est un modèle de réseau neuronal récurrent utilisé
dans les domaines de l’apprentissage automatique et de la reconnaissance de la parole et des
images. Ce type de réseau est conçu pour apprendre et mémoriser des informations à long terme,
ce qui le rend particulièrement adapté à la prédiction des séquences temporelles. Il fonctionne en
mémorisant des informations à court terme et en enregistrant des informations à long terme qui
peuvent être utilisées pour prédire des événements futurs.

2.5.1 l’architecture de LSTM

L’architecture LSTM est basée sur le mécanisme de mémoire à long terme. Elle comprend
une cellule de mémoire qui peut stocker des informations pendant de longues périodes et un
réseau de ports d’entrée, de sortie et d’oubli qui permet à l’information de circuler à travers la
cellule.

6
F IGURE 2.1 – l’architecture de LSTM

La cellule est divisée en trois portes :

• une porte d’entrée : décide quelles informations doivent être ajoutées à la cellule de
mémoire .

• la porte d’oubli contrôle ce qui doit être oublié.

• la porte de sortie détermine ce qui doit être renvoyé à l’extérieur de la cellule.

7
F IGURE 2.2 – Porte d’oublie

F IGURE 2.3 – Porte d’entrée

F IGURE 2.4 – Porte de sortie

8
CHAPITRE 3

RÉALISATION ET EXPÉRIMENTATION

3.1 Introduction

Dans ce Projet nous allons prédire le prix de Bitcoin en utilisant les modules LSTM ET
XGBOOST.

3.2 Importation des packages

Nous avons utilisé comme packages de données :


-Packages XGBoost :

• Pandas : Pandas est une bibliothèque écrite pour le langage de programmation Python
permettant la manipulation et l’analyse des données. Elle propose en particulier des
structures de données et des opérations de manipulation de tableaux numériques et de
séries temporelles.

• Numpy : est une bibliothèque pour langage de programmation Python, destinée ‘a mani-
puler des matrices ou tableaux multidimensionnels ainsi que des fonctions mathématiques
opérant sur ces tableaux

• statsmodels.api : un module Python qui fournit des classes et des fonctions pour l’estima-
tion de nombreux modèles statistiques différents, ainsi que pour la réalisation de tests et
l’exploration de données statistiques.

9
• Matplotlib : Matplotlib est une bibliothèque complète permettant de créer des visualisa-
tions statiques, animées et interactives en Python. Matplotlib rend les choses faciles faciles
et les choses difficiles possibles.

• Datetime : Le module datetime fournit des classes permettant de manipuler les dates et
les heures.

-Packages LSTM :

• Pandas

• Numpy

• Matplotlib.pyplot

• Pandas datareader : Les fonctions de pandasdatareader. Data et pandas datareader.wb


permettent d’extraire des données de diverses sources Internet dans un DataFrame pandas.

• datetime

10
F IGURE 3.1 – Import de packages (LSTM)

F IGURE 3.2 – Import de packages (XGBoost)

3.3 Base de données

Nous avons importé la base de données (dataset)du kaggle dont il contient les champs suivants
:

11
3.4 Traitement de données

Dans un premier lieu, nous avons li les données des fichiers, et les stocker dans la variable
bitcoin

F IGURE 3.3 – Data reading

Pour le modèle XGBoost on commence par une collection de données Puis une description

F IGURE 3.4 – Data collection

de données et manipulation a l’aide des fonctions shape, isnull().sum, et .tail()

12
Puis une manipulation de données est faite à l’aide des commandes suivants et qui permettent
de :

• définir le dépendent variable qui va être répliqué

• définir x et normaliser les valeurs

• découper les données en test et entrainement

• le modèle en XGBoost

• afficher les tests résultats

• Evaluer le classifier de données d’entrainement

13
14
Pour le modèle LSTM on commence par :

préciser la date de début et la date finale

Construction du LSTM :
nous ne prendrons qu’une année de données pour l’entraînement

15
Normaliser les données :
Suppression de la colonne date et normalisation à l’aide de MinMax Scaler

puis on diviser les données en training data et test data.

Construire le modèle :

16
évaluation RMSE, MSE et MAE :

variance regression score : calcul du score r2 :

17
18

Vous aimerez peut-être aussi