WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Administration d'un big data sous mongodb et extraction de connaissance par réseau de neurones.


par Destin CUBAKA BENI
Université Pédagogique Nationale (UPN) - Licence 2019
  

Disponible en mode multipage

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

IN MEMORIAM

En mémoire de mon défunt oncle et parrain académique, MASUMBUKO BUNYAS W.J., pour l'orientation efficace et mon bien-être ; j'en suis reconnaissant de tous ses biens faits.

Paix à ton âme.

ÉPIGRAPHE

«Most of the knowledge in the world in the future is going to be extracted by machines and will reside in machines»1(*)

Yann LeCun

DÉDICACE

À mes parents

Je vous suis reconnaissant pour les sages conseils prodigieux et les directives insistantes. Je vous sais gré de votre bienveillance, de vos attentions, de vos scrupules et des principes tant moral et spirituel que vous m'avez insinués. À vous je dédie cet humble travail, preuve de mon éternelle gratitude.

REMERCIEMENTS

C'est pour nous un honneur et un réel plaisir de réaliser un tel travail. Son élaboration traduit, à sa juste valeur, le dévouement le plus soutenu et l'intérêt que nous lui avons accordé.

Avant tout, nous adressons nos sincères remerciements au père céleste, créateur de tout, source d'intelligence et sagesse.

Nous remercions nos très chers parents pour nous avoir donné non seulement la vie mais aussi pour leurs sacrifices consentis pour nous faire arriver au stade actuel de notre formation, que toute la famille trouve un sentiment de profonde reconnaissance à travers ce travail.

Au terme de nos études universitaires sanctionnées par ce travail, nous tenons loyalement à remercier nos professeurs pour leur formation des plus précieuses ainsi que l'ensemble du corps académique de notre université.

Nos remerciements s'adressent àMonsieur le Professeur DocteurKAFUNDA KATALAY Pierre,Professeur attaché à l'Université de Kinshasa, le directeur de ce mémoire, les assistantsGradi KAMINGU LUBWELE etCamile LIKOTELO BINENE. ; pour nous avoir dirigé malgré leurs multiples tâches. N'eut été votre soutien, ce travail ne s'appellerait pas mémoire. C'est pour nous une meilleure occasion de vous exprimer nos sentiments de reconnaissance et de profonde gratitude.

Nos remerciements s'adressent à tout le corps académique et scientifique de la faculté des sciences précisément ceux du département de Mathématique et informatique, à la personne du professeur KAPENGA KAZADI, et tant d'autres pour leur formation durant notre cursus universitaire.

Nos reconnaissances s'adressent non seulementaux ami(e)s et ainé(e)s scientifiques mais aussi à nos encadreurs telques :Serge DISUNDA,Hyppolite KABANGO, Glad MAMPUYA, Huguette LUSAMBA., Joe BALANGA, Basile MUAMBA, Arnold MWAMBAYI dit MK, Jerry LOMAYE, Ticky KISUBI, Jean Denis ZOMBINA, Samuel MATONDO, Ignace AWEKWE, Patrick BANYANGA et Carmi NDEKE.

Sans pourtant oublier nos compagnons de lutte à l'instar de :Junior ZAKO, Carlos KALALA, Elysé TSHINAWEJ, Victor KAINDA, Martin MATANDA, Modeste TANGELO, Éric BASA, Benjamin et Odia TSHIKANGU, Apphia DISASHI, Mireille NGALULA, Alice MABILO, Blanche KAFUTI, Déborah MOBUTSHI, Dorcas INYANGI, Gloria KANIONIO, Nora MISENGA, Eloi KINGUEZE, Joe BONGO, Nadège YAHOBU, Brigitte KENGE, Samuel BIGA et Steave MAYIRA.

Nos remerciements s'adressent aux famillesMASUMBUKOBunyas W., KATAGONDWA, Nathalis MUJANGA, Liévin AMISI,Eddy ELUMBA,Albert VUNINGOMA, BAGAYA, MUDERHWA et MULENGABYUMA.

Nos remerciements s'adressent également à tous les héros dans l'ombre qui ont contribués pour notre bien-être physique, intellectuel et spirituel.

Nous dédions ce travail à Extrem Informations Technology, notre chère entreprise.

AVANT-PROPOS

Le présent mémoire est le résultat de cinq années d'études universitaires. En plus de son témoignage de nos cinq longues années, il nous couronne du titre de deuxième cycle. Ce travail devrait être lu avec un grand intérêt, non seulement par les scientifiques, mais aussi par les professionnels.

Le Big Data est une notion très récente dont l'analyse s'articule plus sur l'administration des de base des données, généralement rattachée à l'Informatique (surtout pour son importance en support de stockage et d'analyse, ses applications continuent à se multiplier du jour le jour.

Cependant, dans ce travail, nous présentons comment faire l'administration et l'analyse des bases de données NoSQL, du type document. Ces bases de données sont généralement destinées aux applications qui gèrent des documents. La nature souple, semi-structurée et hiérarchique des documents et des bases de données de documents leur permet d'évoluer avec les besoins des applications. Le modèle de document fonctionne bien avec les cas d'utilisation, comme des catalogues, des profils d'utilisateurs et des systèmes de gestion de contenu où chaque document est unique et évolue au fil du temps. Les bases de données de documents permettent une indexation flexible, des requêtes ad hoc efficaces et des analyses sur des recueils de documents.

Nous remercions d'avance tous les utilisateurs qui voudront bien nous faire parvenir leurs remarques, suggestions pour l'amélioration tant syntaxique que sémantique de cet humble travail.

LISTE DES ABRÉVIATIONS UTILISÉES

Abréviation

Signification

ACID

Acide, Cohérence,Isolation et Durablité

AGPL

Affero General Public Licence

API

Application Programming Interface

BASE

Basically Available, Soft state, Eventually

BCDC

Banque Commerciale Du Congo

BD / BDD

Base de données

BI

Business Intelligence

CAH

Classification Ascendante Hiérarchique

CAP

Consistency, Availability, Partition Tolerance

CDH

Classification Descendante Hiérarchique

DB

Database

DBTG

Data Base Task Group

EA

Entité-Association

GPL

GNU General Public Licence

HA

High availability

HDFS

Hadoop Distributed File System

http

Hypertext transfer protocol

IBM

International Business Machine

IS - IS

Intermediate system to intermediate system

JDK

Java Development Kit

JVM

Java Virtual Machine

MCD

Modèle conceptuel des données

MERISE

Méthode de recherche en informatique pour les systèmes d'entreprise

ML

Machine Learning

MongoDB

Mongo DataBase

MPD

Modèle physique des données

NASA

National Aeronautics and Space Administration

NoSQL

Not only SQL

OLAP

Online Analytical Processing

OLTP

Online Transaction Processing

OMT

Object Modeling Technique

ORM

Object-Relational Mapping

OSPF

Open Shortest Path Protocol

RN

Réseaux de Neurones

RPG

Retro Propagation de Gradient

SGBD

Système de gestion de base de données

SGBDR

Système de gestion de base de données relationnelle

SQL

Structured Query Language

LISTE DES FIGURES

Figure 1.1: Graphique historique du Big Data [developpez.com-big data-evolution] 3

Figure 1.2: Les 5V du Big Data.[Évolution du Big Data] 10

Figure 1.3: Les données du Big Data.[Big Data et ses données] 11

Figure 1.4: les solutions sur le cloud computing. 14

Figure 1.5: Guide visuelle au théorème du CAP. 18

Figure 1.6: Illustration d'une base de données orientées document. [MS Office Word 2016]. 19

Figure 1.7: Illustration d'une donnée orientées-colonne. 20

Figure 1.8: Illustration d'une base de données orientées-graphe. [KAMINGU Gradi L, Mémoire 2014]. 21

Figure 1.9: Illustration d'une base de données orientées-clé-valeur [Outil de modélisation Win'Design]. 21

Figure 1.10: Illustration du Cloud Computing.[Du Big Data au Business] 25

Figure 2.11:Présentation logo du SGBD MongoDB. 32

Figure 2.12:Présentation de Stockage en GridFS. 34

Figure 2.13: Le modèle de répartition de MongoDB [Noureddine DRISSI, MongoDB, Administration]. 38

Figure 14: Déroulement de l'algorithme de centre mobile. 47

Figure 3.15: Hypothèse biologique de génération d'un comportement intelligent. 50

Figure 3.16: Neurone biologique avec son arborisation dendritique. 51

Figure 3.17: Description schématique des divers types structuraux de neurones présents dans le cortex cérébelleux. 52

Figure 3.18: Mise en correspondance du neurone biologique/neurone artificiel. 53

Figure 3.19: le fonctionnement d'un RNA. 54

Figure 3.20: Neurone formel. 55

Figure 3.21: réseau de neurones bouclé. 58

Figure 3.22: Comportement en phase de reconnaissance d'un réseau de neurone multicouche lors d'une tâche d'auto-association. 59

Figure 3.23: Réseaux de neurones interconnectés. 59

Figure 4.24: Architecture Big Data intégrant les technologies utilisées. 66

Figure 4.25:Logo de la BCDC.[www.bcdc.cd] 69

Figure 4.26: Organigramme de la Banque Commerciale Du Congo.[Département Informatique et DSI] 69

Figure 4.27: Logo du langage de programmation python. 73

Figure 4.28: Installation Python.[Nous même] 74

Figure 29: Configuration Python. 74

Figure 4.30: Quelques IDE dédiés au langage de programmation Python. 76

Figure 4.31: Logo de l'environnement de développement intégré Jupyter-IDE. 76

Figure 4.32: Logo de l'EDI RStudio. 77

Figure 4.33: Espace de travail pour l'environnement de développement intégré Rstudio version 3.4. 78

Figure 4.34: Préparation de l'installation du serveur MongoDB. 79

Figure 4.35: Lancement de l'installation du serveur MongoDB. 79

Figure 4.36: Configuration du Serveur MongoDB. 79

Figure 4.37: Démarrage du Serveur MongoDB avec la commande mongod.exe [Serveur MongoDB] 80

Figure 4.38: Création de la base de données. 80

Figure 4.39: Statut churn selon les types de compte. 82

Figure 4.40: Statut churn selon le sexe. 82

Figure 4.41:Statut churn selon l'âge des clients. 83

Figure 4.42: Statut churn selon l'ancienneté des clients dans l'institution. 83

Figure 4.43: Statut churn selon les réclamations des clients. 84

Figure 4.44: Statut churn selon la profession des clients. 84

Figure 4.45: Extrait de données d'apprentissage depuis MongoDB. Vue n°1 [Client Navicat Premium-MongoDB]. 83

Figure 4.46: Extrait de données d'apprentissage depuis MongoDB. Vue n°2 [Client Navicat Premium-MongoDB]. 84

Figure 4.47: Visualisation des données d'apprentissage.[RStudio] 85

Figure 4.48: Phase d'apprentissage pour le classement d'un nouveau client (individu). [RStudio] 85

Figure 4.49: Nouvel individu à prédire cas 1. [RStudio] 86

Figure 4.50: Classement du nouvel individu premier cas (1). [RStudio] 87

Figure 4.51: Nouvel individu à prédire deuxième cas (2). [RStudio]. 88

Figure 4.52: Classement du deuxième nouvel individu deuxième cas 2. [RStudio] 89

LISTE DES TABLEAUX

Tableau 1.1: Les sociétés utilisant la technologie de NoSQL.[ Enjeux et usages du Big Data technologies, méthodes et mise en oeuvre] 3

Tableau 2.2: Comparaison de système de Base des données NoSQL. 30

Tableau 3.3: Méthodes de Fouille de données. 42

Tableau 4.4: Dictionnaire des variables descriptives utilisées. 81

INTRODUCTION GENERALE

1. CONTEXTE

Au cours de dix dernières années, grâce à l'internet et des autres objets connectés, les informations sont devenues non seulement disponibles mais aussi très subtiles et facilement manipulables. Cette explosion des données est une aubaine pour les entreprises mais en même temps une responsabilité, parce qu'elles nécessitent une gestion adéquate et minutieuse afin d'orienter leurs certaines décisions.

En effet, ces informations qui proviennent de sources hétérogènes imposent aux entreprises surtout du secteur bancaire à utiliser des techniques de pointe afin de les gérer et stocker. Désormais, il a été remarqué que les entreprises enregistrent plusieurs données des clients surtout lors des ouvertures des comptes et au cours de la période où ils sont comme membres, clients.

Ces données peuvent être recueillies de diverses manières notamment à travers les réseaux sociaux, les plateformes téléphoniques, les courriers électroniques. Ce genre d'informations constituent une masse de données souvent non structurées et posent un problème de gestion (analyse, traitement, stockage, etc.) avec des outils classiques.

A ces jours, il existe des outils qui permettent de traiter et de stocker ces gigantesques volumes d'informations grâce à une technologie appelée le Big Data. L'une de ses plus grandes promesses est de permettre le développement des entreprises par l'analyse et la transformation de ces informations, c'est-à-dire l'évaluation du volume de ces données provenant de diverses sources avec une certaine rapidité.

Au-delà de leur inopérabilité (formes et quantités) aux technologies traditionnelles, le Big Data permet l'exploration de très grands ensembles de données pour obtenir des informations utilisables.

Le Big Data fait référence à des technologies qui permettent aux entreprises d'analyser rapidement un grand volume de données et d'obtenir une vue synoptique. En combinant l'intégration de stockage, analyse prédictive et applications, le Big Data permet d'économiser du temps et facilite une interprétation de qualité des données. Aussi, la croissance exponentielle des données, la prise en compte des données faiblement structurées et les avancées technologiques sont tous des arguments qui poussent les entreprises principalement les géants du web à faire une migration de leur système d'information des systèmes de gestion de base de données traditionnelle (SGBD) aux nouveaux systèmes de gestion de base de données du type NoSQL, c'est-à-dire aux moteurs de base de données utilisant non seulement le standard SQL.

Ces nouveaux systèmes de gestion de base de données dit NoSQL offrent une meilleure disponibilité des données et des capacités de stockage gigantesques en libérant les contraintes des propriétés ACID (Atomicité, Cohérence, Isolation et Durabilité). Ce mouvement de SGBD de type NoSQL a trouvé une place importante dans les infrastructures de NTIC (Nouvelle technologie de l'information et de la communication) et est devenu largement utilisé.

De ce fait, les entreprises en général et les banques en particulier retardent encore les pas pour s'approprier et d'utiliser cette technologie pouvant leurs permettre d'analyser, traiter et stocker facilement les données.

Dans le cadre de ce travail, nous nous sommes appesantie sur le cas de la Banque Commerciale Du Congo (BCDC) qui accumule une foison des données avec la croissance sans précédente de ses clients. Cette banque qui cherche le jour le jour à convaincre des clients potentiels, les convertir et les fidéliser, utilise jusqu'à ce jour, malgré les migrations technologiques,des systèmes de stockage tels que SQL Serveur, Oracle DataBase, Informix et Accès et Excel comme outils d'analyse. Il se pose donc un problème d'analyse des comportements des clients (analyse de churn) au sein de cette institution bancaire en vue d'anticiper au départ brusque des clients. Alors que l'orientation de certaines stratégies marketing axées sur la promotion des nouveaux produits et offres se réfère le plus souvent aux données fidèlement analysées et stockées dans les bases des données du type NoSQL orientées document.

L'utilisation de cette technologie NoSQL permettrait à la BCDC non seulement de mieux analyser les comportements ou des transactions (dépôts, retraits, transferts, virements bancaires, emprunts etc.) de ses clients mais aussi et surtout prédire des nouvelles connaissances ou tendances grâce aux données existantes sur les clients pour permettre au décideur de prendre une décision afin de maximiser ses recettes.

2. PROBLEMATIQUE

Partant de cette observation, nous résumons notre problématique autour des questions suivantes :

· Est-il important de connaître les offres ou produits qu'aiment les clients au sein de la BCDC ?

· Est-il important de prédire les nouvelles connaissances sur les clients ?

· La prédiction des nouvelles connaissances aidera-t-elle la BCDC à fidéliser ses clients aussi longtemps quepossible ?

· Quelle est la place et la valeur ajoutée d'une technologie NoSQL orientée document au sein de la BCDC ?

3. HYPOTHESE

Nous formulons notre hypothèse de la manière suivante : la mise en place d'un système prédictif basé sur l'administration d'un Big Data sous le SGBD MongoDB et l'extraction des connaissances par l'algorithme de data mining, réseaux de neurones, au sein de la Banque Commerciale Du Congoafin d'avoir une vision exhaustive de l'ensemble des comportements de ses clients et prendre des décisions optimales synchrones y afférentesserait la meilleure solution.

4. CHOIX ET INTERET DU SUJET

4.1. Choix du sujet

Le sujet que nous avons choisi est intitulé : « Administration d'un Big Data sous MonogoDB et extraction de connaissance par réseaux de neurones : Application de l'analyse de churn dans une institution bancaire » cas de la BCDC.

4.2. Intérêt du sujet

Ce travail subdivise son intérêt en trois niveaux à savoir :

· Au niveau de l'entreprise : ce travail permettra à l'entreprise de pouvoir gérer et extraire les différents comportements de ses clients. Cela permettra aux autorités d'analyser le comportement des clients, c'est-à-dire leurs préférences, afin de répondre à leurs besoins ou de proposer des offres plus agréables pour fidéliser leurs clients ;

· Au niveau personnelle :ce travail me permet de concilier les différentes théories que nous avions apprises depuis le début de nos études universitaires jusqu'à nos jours à la pratique ;

· Au niveau scientifique : ce travail est un document permettant de comprendre les différentes étapes de la conception d'une base de données NoSQL orientée-document et la mise en oeuvre d'un système décisionnel utilisant des outils de data mining.

5. METHODES ET TECHNIQUES UTILISEES

5.1. Méthodes

Quant à notre travail, nous avons eu à utiliser des méthodes scientifiques analytiques qui nous ont permis de faire une analyse profonde par rapport aux données colletées.

5.2. Techniques

Pour l'élaboration du présent travail, nous avons fait recours aux techniques ci-après :

ü Documentaire : par laquelle nous nous sommes servis pour la récolte des diverses informations à partir de notre cours, livre, syllabus, mémoire, etc.

ü Navigation par internet : par laquelle nous avons plus utilisé pour consulter quelques sites internet pour la récolte des informations ayant trait à notre travail.

ü Interview : cette technique nous a également permis d'entretenir librement avec certains agents de notre entité.

6. SUBDIVISION DU TRAVAIL

Hormis l'introduction et la conclusion générale, notre travail comprend 4 chapitres à savoir :

· Le chapitre premier intitulé « Big Data » contient des généralités sur la notion de Big Data ;

· Le second chapitre intitulé « SGBD orienté document et MongoDB » dans lequel nous avons décrit les différents SGBD orientés documents tout en nous concentrant sur le SGBD MongoDB,

· Le troisième chapitre, « Fouille de données et Réseaux de Neurones », dans lequel nous parlons en détail des différents algorithmes d'analyse que nous utiliserons dans la mise en oeuvre ;

· Le dernier chapitre, qui concerne l'« Implémentation et interprétation des résultats ».

CHAPITRE I: BIG DATA[1], [6], [12], [16], [19]

I.1. INTRODUCTION

Au cours des dix dernières années, le monde a connu une augmentation exponentielle des informations disponibles via Internet et le nombre d'objets connectés augmente constamment. Les entreprises ont également accumulé des informations utilisées ou non sur leurs clients.

Les taux de croissance de volume attendus des données traitées dépassent les limites des technologies traditionnelles. Parfois, on parle de pétaoctets (ou billard d'octets) ou même de zettaoctet (trilliard d'octets) et à la longue, on parle de yottaoctet (1012 octets). Il est rapidement devenu indispensable de mettre à niveau les baies de stockage traditionnelles pour leur permettre d'absorber le nombre croissant et la diversité des sources de ces données. Ces données collectées sur le Web (réseaux sociaux, plate-forme téléphonique, courrier électronique, commerce électronique, open data (données en accès libre), géolocalisation des personnes ouvrent des possibilités de personnalisation de produits. Les entreprises voient dans ce phénomène l'occasion de cibler très précisément les attentes du client.

Les données sont donc le carburant de l'économie numérique. Tous les secteurs de l'économie, du commerce à l'automobile en passant par le secteur de l'énergie, tous les domaines de la vie quotidienne (santé, éducation, etc.) sont concernés. Le Big Data combine à la fois le traitement de ces grandes masses de données, leur collecte, leur stockage, leur visualisation et leur analyse. Comment relier toutes ces données ? Comment les faire parler ?

Comment faire face à l'explosion du volume de données, un nouveau domaine technologique est apparu : le Big Data. Inventé par les géants du Web, outil très important et en pleine expansion, tant pour la prise de décision que pour l'optimisation de la compétitivité (au sein des entreprises), les entreprises ont su dépasser tous les problèmes de multi-structuration et d'hétérogénéité des sources de ces données. Ainsi, le Big Data peut être défini sous de nombreuses formes, en fonction du domaine appliqué, et peut être considéré comme un outil permettant d'explorer de très grands ensembles de données pour obtenir des informations exploitables.

La démarche du Big Data et sa capacité à traiter rapidement des données non structurées et structurées provenant d'un grand nombre de sources ouvrent des perspectives dans un grand nombre de secteurs de la vie tels que: le commerce et la gestion des relations clients, la défense et le renseignement (cybersécurité, biométrie), etc. et dans un grand nombre d'activités humaines telles que: la détection de fraude, la maintenance prédictive, etc., leur mise en valeur au service des consommateurs, de nos concitoyens.

I.2. APERÇU HISTORIQUE

Le Big Data a une histoire récente et en partie cachée, en tant qu'outil des technologies de l'information et en tant qu'espace virtuel d'importance croissante dans le cyberespace.

SH. Lazare et F. Barthélemy (www.axiodis.com), dans leur document intitulé « Introduction aux Big Data », présentent l'historique suivant, représenté graphiquement de la manière suivante :

Figure 1.1:Graphique historique du Big Data [developpez.com-big data-evolution]

Selon le document « Big-Data et Data-Marketing », le terme « Big Data » est apparu pour la première fois en 2000 lors d'un congrès d'économétrie, puis a repris en 2008 et 2010 sous la couverture de revues Nature et Sciences, et s'est établi dans les entreprises suite à un rapport de MC Kinsey en 2011.

Le répertoire de référence pour les utilisateurs intitulé « GUIDE DU BIG DATA 2013-2014 » indique que le Big Data est apparu il y a seulement trois ans dans le domaine de la prise de décision et se positionne comme l'innovation numéro un de la première décennie et à la frontière entre technologie et management.

Selon V. Tréguier (2014) et selon la « très courte histoire du Big Data » publiée par Gil Press en 2013 pour la période 1944-2012, sa naissance est liée à l'évolution des systèmes de stockage, de fouille et d'analyse de l'information numérisée, qui ont permis une sorte de big bang d'informations stockées, puis une croissance inflationniste dans le monde des données numérisées. Mais ses prémisses se situent au confluent de la cybernétique et des courants de pensée nés pendant la Seconde Guerre mondiale, selon lesquels l'homme et le monde peuvent être représentés comme des « ensembles d'informations, dont la seule différence avec la machine est leur niveau de complexité. La vie deviendrait alors une séquence de 0 et de 1, « programmable et prévisible » », ajoute V. Tréguier.

Les risques d'abus par des gouvernements ou des entreprises ont été décrits pour la première fois par Orwell à la fin de la dernière guerre mondiale, et souvent par la science-fiction. Avec l'apparition de grandes banques de données dans les années 1970 (et tout au long de la guerre froide), de nombreux auteurs s'inquiètent des risques d'atteinte à la vie privée, notamment le professeur A. Miller, qui cite l'exemple de la croissance des données stockées relatives à la santé physique et mentale des individus.

I.3. PRESENTATION DE L'ASPECTS BIG DATA2(*)

Au-delà des aspects purement quantitatifs, ces données sont présentées de telle manière qu'elles ne sont guère supportées par les SGBD traditionnels :

v Elles ne sont pas nécessairement organisées en tables et leurs structures peuvent varier ;

v Elles sont produites en temps rée l ;

v Elles arrivent mondialement en flots continus ;

v Elles sont méta taguée s mais de façon disparate (localisation, heure, jour, etc.) ;

v Elles proviennent de sources très disparates (téléphone mobile, capteurs, téléviseurs connectés, tablettes, PC fixes, PC portables, objets, machines), de façon désordonnée et non prédictible.

Depuis quelque temps, le mot Big Data est apparu et est largement utilisé par les journalistes, les analystes, les consultants et certains éditeurs ou fabricants occidentaux qu'orientaux intéressés par le monde de la prise de décision. Mais il est clair qu'aucune définition n'a été imposée et que les mots des uns et des autres mélangent avec bonheur beaucoup de choses, le volume global de données à traiter, le volume de la base de données (web log, texte, photo, vidéo, etc.), types de données (structuré, non structuré, multi-structuré), ambitions analytiques (aller au-delà de la BI), etc.

Il est difficile de dire si le mot Big Data est adapté et durera (continuera à l'être), mais il est certain que le domaine de la prise de décision connaît un développement important lié à l'émergence simultanée de « nouvelles demandes » et de « nouvelles solutions technologiques » aboutissant au traitement de plus en plus de données, à la fois en termes de volumes et de variétés. La quantité de données générées quotidiennement dans les systèmes d'information augmente de manière exponentielle et, par conséquent, la volumétrie explose aussi dans le monde de la prise de décision.

Le traitement du Big Data n'entraîne pas une révolution dans le monde de la prise de décision mais élargit le champ de travail des experts de ce domaine, conduit à modifier les infrastructures en place pour répondre aux nouvelles exigences de volume, de variété et de vitesse données, pour changer la façon dont les données sont préparées pour une analyse avancée, et comme souvent lorsque le marché aborde un nouveau sujet, les solutions occupent une place centrale, même si elles ne sont pas une panacée (remèdes, solutions, moyens) universelles.

Le Big Data permet sans aucun doute de mieux connaître les clients3(*), par exemple en traitant automatiquement ce qu'ils disent, pour mieux les servir via des solutions de commerce électronique et de Cloud Computing, qui sont à la fois de plus en plus sophistiquées et de plus en plus facile à mettre en place.

Mais au finish, le Big Data n'est qu'une extension de ce qui a été fait pendant des années et présente les mêmes avantages, inconvénients ou risques: information, propagande, désinformation et mystification.

I.4. OBJECTIFS

Le Big Data est une nouvelle technologie qui poursuit plusieurs objectifs, parmi lesquels:

v L'objectif de ces solutions d'intégration et de traitement de données est de gérer un très grand volume de données structurées et non structurées sur une variété de terminaux (PC, smartphones, tablettes, objets communicants, etc.), produits ou non en temps réel depuis n'importe quelle zone géographique du monde ;

v Un autre objectif réside dans la capacité de gérer en temps réel un volume de données de plus en plus important et en constante évolution.

v Le Big Data vise à améliorer les services existants, c'est-à-dire que leur apparence ne signifie pas la fin des entrepôts de données, mais vise à les compléter en fonction de besoins spécifiques de l'entreprise en proposant des alternatives pour adapter le fonctionnement des bases de données relationnelles à des besoins spécifiques ;

v Cette solution est conçue pour offrir également un accès en temps réel aux bases de données géantes.

I.5. CARACTERISTIQUES

À l'origine, le Big Data était caractérisé par la problématique du 3V4(*), à savoir Volume, Vitesse, Variété. Alors que le concept et la technologie se répandaient rapidement dans de nombreux secteurs industriels et économiques et occupaient une place prépondérante, les chercheurs dans ce domaine ont encore poussé plus loin les caractéristiques du Big Data en valorisant les données pour obtenir un 4ème V puis rechercher leur véracité pour constituer son 5ème V.

Vous êtes confronté à un problème de gestion de données correspondant à ces trois critères, à savoir Volume, Vitesse et Variété ou plus simplement, vous ne savez pas comment gérer ces données avec les architectures traditionnelles, vous avez alors un problème de type Big Data.

Il faut en effet penser à collecter les données, les stocker puis les analyser de manière à ne plus pouvoir être traitées par une approche traditionnelle permettant de satisfaire les 4ème et 5ème V qui sont la Valorisation et la Véracité des données.

Ces 5 V du Big Data peuvent se définir ou s'expliquer de la manière suivante :

· Volume (Volume) : représente la quantité de données générées, stockées et utilisées dans le SI. L'augmentation du volume dans le SI s'explique par l'augmentation de la quantité de données générées et stockées, mais aussi et surtout par la nécessité d'exploiter des données qui, jusqu'à présent, ne l'étaient pas. L'unité principal pour mesurer le volume de données étant l'octet.

Pour rappel, 1 mégaoctet = 106 octets ; 1 gigaoctet = 109 octets ; 1 téraoctet = 1012 octets ; 1 pétaocte = 1015 octets ; 1 exaoctet = 1018 octets ; 1 zettaoctet = 1021 octets ; 1 yottaoctet = 1024 octets.

En effet, aujourd'hui, les données sont d'ordre de zetta ou même yottaoctets.

· Varieté (Variety) : représente la démultiplication des types de données gérés par un SI, nous parlons ici de type de données au sens fonctionnel du terme et pas seulement au sens technique. En fait, les données traitées sont des tweets, des vidéos, des photos, des textes, des audios, etc. La démultiplication implique également la complexification5(*) des liens et des types de lien entre ces données.

· Vélocité (Velocity) : représente la fréquence à laquelle les données sont générées, capturées et partagées. Les données arrivent par flux et doivent être analysées en temps réel pour répondre aux besoins des processus chrono-sensibles, donc urgents.

· Valeur (Value) : représente la capacité de disséminer rapidement des informations au sein de l'organisation pour leur permettre d'être reflétées dans les processus métier.

· Véracité (Veracity) : représente la résistance à laquelle se heurte l'organisation pour explorer, exploiter les données disponibles au sein des processus métier.

Ainsi, aux trois V de base, à savoir Volume, Variété, Vélocité, les acteurs du marché ont également ajouté d'autres V, qui sont la Valeur des données pour ce qu'ils sont susceptibles de contenir sous forme de signaux ou en référence au fait qu'ils sont commercialisables, et Véracité d'insister sur la qualité nécessaire des données.

Figure 1.2:Les 5V du Big Data.[Évolution du Big Data]

I.6. DEFINITION DU BIG DATA

Eu égard aux concepts définis ci-haut, on peut redéfinir le Big Data comme suit :

I.6.1. Première définition de Big Data

Le Big Data désigne des ensembles des données de nature variée, et se générant à très grande vitesse, devenus si volumineux qu'ils vont au-delà de l'intuition et des compétences analytiques humaines, mais également de celles des outils informatiques de gestion de base de données (ou de gestion l'information) traditionnels.

I.6.2. Deuxième définition de Big Data

Le Big Data désigne des ensembles des données caractérisées par les 3 (ou 5) V.

I.7. TYPES6(*) DES DONNEES DU BIG DATA

Comme nous l'avons vu, le Big Data réside dans la capacité de gérer en temps réel un volume de données de plus en plus important et en constante évolution. Afin d'approfondir les solutions répondant à ce besoin, il convient de distinguer les différents cas d'utilisation que l'on refusera en fonction du type de données manipulées et de l'utilisation que l'on souhaite en faire. Le Big Data comprend deux types principaux de données : les données structurées et les données non structurées.

Figure 1.3:Les données du Big Data.[Big Data et ses données]

I.7.1. Données structurées

Elles sont définies par le fait qu'elles sont conçues pour être traitées automatiquement et efficacement par un logiciel, mais pas nécessairement par un humain. Les données structurées nous amènent dans un virage qui s'appelle Big Data Analytics (ou Big Analytics).

Le Big Data Analytic désigne un ensemble des technologies de pointes mise en place pour fonctionner de manière efficace sur les grandes masses de données hétérogènes. Dans cette approche, l'analyse des données structurées évolue de par la variété et la vélocité des données manipulées. On ne peut donc plus se contenter d'analyser des données et de produire des rapports, la grande variété des données fait que les systèmes en place doivent être capables d'aider à l'analyse des données.

L'analyse consiste à déterminer automatiquement, au sein d'une variété de données en évolution rapide, les corrélations entre les données afin de contribuer à leur exploitation.

I.7.2. Données non structurées

Au contraire, elles sont définies comme des données disponibles mais non directement exploitables. En fait, ce sont les données qui peuvent être extraites de tous les types de documents électroniques (courrier électronique, document Word, vidéo, image, SMS, courrier électronique, page Web, réseau social). Les données non structurées nous amènent dans un autre virage celui, du Text Mining.

Le Text Mining (fouille de textes) permet à un ensemble de documents d'analyser leur contenu par le biais d'une recherche sémantique basée sur l'analyse du langage naturel (le français par exemple) et la gestion d'ontologies spécialisées (pour un secteur d'activité, un métier). Cette fouille peut permettre de déterminer le contenu d'un document, mais aussi aller jusqu'à analyser le ressenti par des tournures de phrases pour savoir par exemple si un client se plaint ou fait une simple demande d'informations.

À l'issue de cette fouille, on produit la liste des « concepts et relations » 2 abordés dans un document afin de pouvoir alimenter une base de connaissances qui permet :

? Soit d'effectuer des recherches au sein de ce fond documentaire ;

? Soit d'extraire des données qui serviront à alimenter d'autres systèmes.

La différence entre une analyse sémantique et une indexation classique de document est que l'indexation se contente de référencer les mots présents dans un document sans s'intéresser au sens, à l'usage fait de celui-ci.

I.8. TECHNIQUES D'ANALYSE ET DE VISUALISATION DU BIG DATA

Pour donner un sens à cette masse de données, il existe des modèles mathématiques qui répondent aux principes des méthodes prédictives. Vous voulez obtenir des résultats plus pertinents et dégager des nouvelles tendances, certains de ces modèles nécessitent des ajustements et des réglages. Ce détail important fait partie intégrante de l'analyse des données et plus encore lorsqu'elles sont volumineuses.

Il est concevable que Big Data soit une solution d'aide aux entreprises qui leur permette non seulement de réduire leurs risques, mais également de faciliter la prise de décision, et l'aide de l'analyse prédictive d'avoir une « expérience client » plus personnalisée et contextualisée (marketing personnalisé).

Les techniques de « Data Mining » sont adaptées à cette masse de données dans laquelle il faut explorer, faire parler et interpréter ces volumes d'informations. L'apprentissage automatique a d'énormes progrès. La combinaison de ces algorithmes avec les capacités de stockage disponibles, sans parler de la puissance de calcul des machines et des outils devenus disponibles aujourd'hui, nous offre la possibilité de rechercher et de faire parler les données.

I.8.1. Visualisation

Pour une bonne prise de décision, la présentation des résultats doit être lisible. La prise de décision est difficile avec les données présentées avec toutes leurs complexités. Le Big Data présente d'autres représentations des données plus lisibles que des graphiques classiques, histogrammes, courbes, camemberts, tels que nous les connaissons.

La visualisation peut jouer un rôle crucial en rendant les composants analytiques individuels compréhensibles et en les regroupant dans une image globale intelligible. De plus, la visualisation peut être utilisée de différentes manières pour aider à contrôler le volume et la complexité des données et ainsi simplifier leur interprétation. Pour comprendre comment, vous pouvez commencer avec un seul ensemble de données client et ajouter des vues client, y compris celles de Big Data.

I.9. DIFFERENCES AVEC L'INFORMATIQUE TRADITIONNELLE OUDECISIONNELLE

Les principales différences entre les données traditionnelles et les données massives ne concernent donc presque pas le volume, même s'il a explosé, mais le type de données et la façon dont elles sont stockées.

v Du point de vue modèle, les données traditionnelles stockées ou géré avec un modèle déjà préalablement défini d'avance dans de bases de données ou entrepôts. À contrario, les données du Big Data sont stockées sans construction d'un modèle préalable de rangement.

v Du point de vue type des données, Les données traditionnelles ont un type bien définies à l'avance suivant un certain modèle préalable autrement dit que les données traditionnelles sont des données de type structurées. En revanche quand on parle du Big Data, il s'agit donc des données de types divers dont au moins une partie est constituées de données non structurées ou multi structurées.

v Du point de vue langage, souvent, c'est le langage SQL qui est utilisé pour formuler des requêtes avec des données traditionnelles, cela est supposé d'avoir défini par avance les types d'informations (ou des données) qui doivent être stockées et établi un modèle permettant de relier ses informations entre elles. Avec le Big Data, on parle des données NoSQL car les normes du langage SQL ne permettent plus de les traiter.

v Du point de vue stockage et technologique, les données traditionnelles sont stockées au sein des bases de données relationnelles ou entrepôts de données internes au sein des entreprises. Le stockage des données du type Big Data ou données massives se fait généralement dans le Cloud au sein d'un DataCenter.

I.10. BIG DATA ET SES TECHNOLOGIES

Si aujourd'hui leBig Data est possible, c'est grâce aux évolutions technologiques (logicielle ou hardware) qui permettent de répondre au 5Vs et aux usages nouveaux que l'on souhaite faire des données. Nous pouvons les subdiviser en 3, à savoir:

· Les solutions de stockage( cloud computing (LaaS7(*))) ;

· Les solutions logicielles ;

· Les solutions matérielles et/ou architecturales.

I.10.1. Solutions de stockage

Pour les solutions de stockage dans le domaine du Big Data, nous pouvons citer entre autre : Les Bases NoSQL, que nous utilisons pour notre travail, et les Outils MapReduce et Hadoop.

Figure 1.4: les solutions sur le cloud computing8(*).

I.10.1.1. Bases des Données NoSQL

Le terme NoSQL9(*) (de l'anglais Not only SQL) est apparu en 1989. C'est à cette année-là que Carlo Stozzi le prononça pour la première fois en public ; c'était lors de la présentation de son système de gestion de base des données relationnelles open source. Il l'a appelé ainsi à cause de l'absence de l'interface SQL pour communiquer.

Plus tard en 2009, le mot réapparait lorsqu'Eric Evans l'utilisa pour spécifier le nombre grandissant des bases de données distribuées open source.

NoSQL est une catégorie de systèmes de gestion de base de données (SGBD) qui ne repose plus sur l'architecture de base de données relationnelle classique. L'unité logique n'est plus la table et les données ne sont généralement pas manipulées avec le langage de requête SQL.

1) Théorème du CAP (d'Eric Brewer)10(*)

À l'heure actuelle, il est important de savoir que le mouvement des bases de données NoSQL contient plusieurs approches qui ont leur propre architecture et traitent des cas d'utilisation bien définis. Il est donc nécessaire de choisir l'outil qui répond le mieux au problème posé, à la fois en termes de modélisation mais également de diffusion des données.

Le théorème énonce donc de la manière suivante :

Il est impossible pour un système distribué de fournir les trois propriétés suivantes à la fois :

v Cohérence (Consistency) : Tous les noeuds du système voient les mêmes données au même moment quelques soient les modifications ;

v Disponibilité (Availability) : Les requêtes d'écriture et de lecture sont toujours satisfaites, donc il y a disponibilité pour la lecture et l'écriture ;

v Tolérance au partitionnement(Partition tolerance) : La seule raison qui pousse un système à l'arrêt est la coupure totale du réseau. Autrement dit si une partie du réseau n'est pas opérationnelle, cela n'empêche pas le système de répondre. Le système tolère même une partie du réseau.

Afin de créer une architecture distribuée on doit donc choisir deux de ces propriétés, laissant ainsi trois conceptions possibles :

· CP : Les données sont consistantes entre tous les noeuds et le système possède une tolérance aux pannes, mais il peut aussi subir des problèmes de latence ou plus généralement, de disponibilité ;

· AP : Le système répond de façon performante en plus d'être tolérant aux pannes. Cependant rien ne garantit la consistance des données entre les noeuds ;

· CA : Les données sont consistantes entre tous les noeuds (tant que les noeuds sont onlines). Toutes les lectures/écritures des noeuds concernent les mêmes données. Mais si un problème de réseau apparait, certains noeuds seront désynchronisés au niveau des données (et perdront donc la consistance).

2) Principes ACID et BASE

Hormis le théorème CAP ci-haut énoncé, nous pouvons aussi parler de deux principes qui sont alors liés à la répartition des données et qui sont à la base des architectures actuelles des systèmes de gestion de bases de données, notamment les systèmes du type NoSQL.

ACID et BASE représentent deux principes de conception aux extrémités opposées du spectre cohérence-disponibilité. Les propriétés ACID se concentrent sur la cohérence et sont l'approche traditionnelle des bases de données. Le principe BASE était créé à la fin des années 90 pour saisir les concepts émergents de la haute disponibilité et rendre explicite à la fois le choix et le spectre. Les systèmes étendus modernes et à grande échelle, y compris le Cloud, utilisent une combinaison des deux approches.

Bien que les deux acronymes soient plus mnémoniques que précis, l'acronyme BASE (étant le second apparu) est un peu plus délicat : BasicallyAvailable, Soft state, Eventuallyconsistent (Simplement disponible, état souple, finalement consistant). Soft state et Eventualconsistency sont des techniques qui fonctionnent bien en présence de partitions réseau et donc améliorent la disponibilité.

La relation entre CAP et ACID est plus complexe et souvent incomprise, en partie parce que les C et A d'ACID représentent des concepts différents des mêmes lettres dans CAP et en partie parce que choisir la disponibilité affecte seulement certaines des garanties ACID. Les quatre propriétés ACID sont :

· Atomicité : Tout système bénéficie d'opérations atomiques.

· Cohérence : Dans ACID, le C signifie qu'une transaction préserve toutes les règles des bases de données, telles que les clés uniques

· Isolation : L'isolation est au coeur du théorème CAP : si un système nécessite l'isolation ACID, il peut opérer sur au plus une partie durant une partition réseau.

· Durabilité : La propriété durabilité assure que lorsqu'une transaction a été confirmée, elle demeure enregistrée même à la suite d'une panne d'électricité, d'une panne de l'ordinateur ou d'un autre problème.

Il est à noter que le principe BASE abandonne donc la consistance au profit de ces nouvelles propriétés :

· Fondamentalement disponible (BasicallyAvailable) : Le système garantie bien la disponibilité dans le même sens que celle du théorème de CAP ;

· Etat souple (Soft-State) : Indique que l'état du système peut changer à mesure que le temps passe, et c'est sans action utilisateur. C'est dû à la propriété suivante ;

· Eventuellement Cohérent (Eventually) consistent : Spécifie que le système sera consistant à mesure que le temps passe, à condition qu'il ne reçoive pas une action utilisateur entre temps.

ACID est nécessaire si :

· Beaucoup d'utilisateurs ou processus qui travaillent sur une même donnée au même moment ;

· L'ordre des transactions est très important ;

· L'affichage de données dépassées n'est pas une option ;

· Il y a un impact significatif lorsqu'une transaction n'aboutit pas (dans des systèmes financiers en temps réel par exemple).

BASE est possible si :

· Les utilisateurs ou processus ont surtout tendances à faire des mises à jour ou travailler sur leurs propres données ;

· L'ordre des transactions n'est pas un problème ;

· L'utilisateur sera sur le même écran pendant un moment et regardera de toute façon des données dépassées ;

· Aucun impact grave lors de l'abandon d'une transaction.

Il est ainsi à remarquer que s'agissant des systèmes AC, il s'agit des bases des données relationnelles implémentant les propriétés de Cohérence et de Disponibilité. Ce qui signifie que les bases des données NoSQL sont généralement des systèmes CP et AP.

C

A

P

Les systèmes CP sont

du groupe NoSQL

Les systèmes AC renferment

tous les systèmes qui

obéissent au principe ACID

Les systèmes AP sont du groupe NoSQL

Figure 1.5:Guide visuelle au théorème du CAP.

3) Critères de Migration vers le principe CAP NoSQL

C'est une évidence de dire qu'il convient de choisir la bonne technologie en fonction du besoin. Il existe cependant certains critères déterminants pour basculer au NoSQL notamment :

· Taille : Nous sommes dans un monde où il y a des données ayant une masse considérable (qu'on appelle infobésité). Il sied d'avoir alors un système pouvant supporter un nombre important des opérations, d'utilisateurs, des données, etc. de manière optimale.

· Performance en écriture : Des données qui augmentent chaque année.

· Performance en lecture clé-valeur : Certaines solutions NoSQL ne possèdent pas cet avantage mais comme il s'agit d'un point clé, la plupart d'entre elles en sont dotées.

· Type de données flexibles : Les solutions NoSQL supportent de nouveaux types de données et c'est une innovation majeure.

· ACID : Bien que ce ne soit pas le but premier du NoSQL, il existe des solutions permettant de conserver certains (voire tous) aspects des propriétés ACID. Se référer au théorème CAP plus haut et aux propriétés BASE.

· Simplicité de développement : L'accès aux données est simple.

· ParallelComputing : Les solutions NoSQL améliorent les calculs parallèles.

I.11. TYPES DE BASE DE DONNEES NoSQL

Les bases de données NoSQL ou Bases sans schéma fait référence à une diversité d'approches classées en quatre catégories, qui implémentent des systèmes de stockage considérés comme plus performants que le traditionnel SQL pour l'analyse de données massives. Il s'agit de :

I.11.1. Bases de données orientées-document

11(*)Les bases de données orientées-document sont une extension des bases orientées clé-valeur, à la place de stocker une valeur, nous stockons un document. Un document peut contenir plusieurs valeurs et d'autres documents, qui peuvent à leur tour en contenir d'autres et ainsi de suite. Un document peut donc posséder plusieurs niveaux de profondeur. Tous les documents de niveau 0 sont identifiés par une clé et sont regroupés dans une collection.

Elles s'adaptent aux données non planes (type profil utilisateur).

Document

Champ1

Valeur

Champ2

valeur

Document

Champ1

Valeur

Champ2

valeur

Champ3

Valeur

Document

Champ1

Valeur

Document

Champ1

Valeur

Champ2

Valeur

Champ3

Valeur

Champ4

Valeur

Champ5

Champ5.1

Valeur

Champ5.2

valeur

Clé

CLE2016

CLE2017

CLE2018

CLE2019

CLE...

Figure 1.6:Illustration d'une base de données orientées document. [MS Office Word 2016].

Quelques SGBD orientées-document :

ï MongoDB : Développé en C++. Les API officielles pour beaucoup de langages.

Protocole personnalisé BSON. Réplication master/slave. Licence AGPL

(Commercial et libre) ;

ï CouchDB : Développé en Erlang. Protocol http. Réplication master/master. Licence Apache.

I.11.2. Bases de données orientées-colonne

Elles s'adaptent mieux au stockage des listes (messages, postes, commentaires, ...).

Figure 1.7:Illustration d'une donnée orientées-colonne.

Quelques SGBD orientées-colonnes :

· HBase : Utilise un API Java. Adopte un design CA. Présence de quelques SPOF.

· Cassandra : Beaucoup d'API disponibles. Adopte un design AP avec consistance éventuelle. Aucun SPOF car réplication master/master. Moins performant que HBase sur les insertions de données.

I.11.3. Bases de données orientées-graphe

12(*)Elles gèrent les relations multiples entre objets (comme des relations dans un réseau social). Les bases de données orientées-graphe sont celles qui stockent les enregistrements dans les noeuds et les relations entre les enregistrements par les arêtes. Elles sont modélisées à l'aide de la théorie des graphes.

C'est ainsi, une base de données orientées-graphe stocke les informations d'une manière très optimisée sous forme de graphe. Les liens entre différentes informations sont aussi faits de manière optimisée.

Ce type de base de données est très performant surtout dans des domaines où les données sont très nombreuses.

Figure 1.8: Illustration d'une base de données orientées-graphe. [KAMINGU Gradi L, Mémoire 2014].

Quelques SGBD orientées-graphe :

· Neo4J : Développé en Java. Supporte beaucoup de langages. Réplication master/slave. Propriétés ACID possibles. Langage de requêtes personnalisé «Cypher».

· Titan : Haute disponibilité avec réplication master/master. Prise en compte d'ACID avec consistance éventuelle. Intégration native avec le frameworkTinkerPop.

I.11.4. Bases de données orientées-clé-valeur

Les bases de données orientées-clé-valeur permettent de stocker une valeur, cette valeur peut être de tout type (entier, chaine de caractères, flux binaire, etc.). En revanche les requêtes ne portent que sur la clé associée à cette valeur. Ce système de base de données est conçu pour être très fortement répliqué de manière à augmenter la disponibilité et les performances. La réplication de données est plus ou moins partielle pour trouver un bon compromis entre nombre de serveurs, disponibilité et espace disque.

Elles permettent d'accéder rapidement aux informations pour la gestion des caches.

Clé

251657216

Clé2018

Valeur 2019

Valeur2018

Valeur 2017

Clé2019

Clé2017

251655168

Clé...

Figure 1.9:Illustration d'une base de données orientées-clé-valeur [Outil de modélisation Win'Design].

Quelques SGBD orientées-clé-valeur :

· DynamoDB : Solution d'Amazon à l'origine de ce type de base. Design de type AP selon le théorème de CAP mais peut aussi fournir une consistance éventuelle.

· Voldemort : Implémentation open-source de Dynamo. Il y a possibilité d'en faire une base embarquée.

Voici quelques sociétés qui utilisent les bases des données NoSQL et leur type de technologie :

Tableau 1.1: Les sociétés utilisant la technologie de NoSQL.[ Enjeux et usages du Big Data technologies, méthodes et mise en oeuvre]

Société

Technologie

Développée

Type de Technologie

 
 

Système de base de données propriétaire reposant sur GFS (Google File System).

Technologie non open source, mais qui a inspiré HBase qui est open source.

 

Plate-forme de développement pour traitements distribués.

 
 

Plate-forme Java destinée aux applications distribuées et à la gestion intensive des données. Issue à l'origine de Google Big Table, MapReduce et Google File System.

 
 

Plate-forme de développement dédiée aux applications de traitement continu des flux de données.

 
 

Base de donnée de type NoSQL et distribuée.

 

Logiciel d'analyse de données utilisant Hadoop.

 
 

Plate-forme de traitement de données massives.

 

Base de données distribuées de type graphe.

 
 

Système distribué de gestion de messages

 

Base de données temps réel distribuée et semi structurée.

 

Base de données distribuée destinée aux très grosses volumétries.


4) Outils MapReduce et Hadoop

a) MapReduce

MapReduce est un modèle de développement informatique, popularisé (et non inventé) par Google, dans lequel sont effectués des calculs parallèles, et souvent distribués, de très grandes volumes de données (généralement supérieures à un téraoctet).

Il s'agit donc d'une technique de programmation distribuée largement utilisée dans l'environnement NoSQL et qui vise à produire des requêtes distribuées. C'est également un modèle de programmation permettant de gérer de grandes quantités de données qui ne sont pas nécessairement structurées.

b) Hadoop

Créé par Doug Cutting en 2009 et employé par Yahoo, Hadoop est la plateforme de développement d'applications utilisant le modèle MapReduce.

Hadoop est un framework13(*) Java libre pour les applications distribuées et la gestion intensive de données. Il permet aux applications de travailler avec des milliers de noeuds et de pétaoctets de données. Hadoop a été inspiré par la publication de Google MapReduce, GoogleFS et BigTable

Il s'agit également d'un framework open source conçu pour traiter des volumes massifs de données. En d'autres termes, une technologie open source permettant d'effectuer des requêtes dans des puits de données distribués, dont les informations sont localisées sur des serveurs distants.

Le framework Hadoop de base se compose des modules suivants :

· Hadoop Common ;

· Hadoop Distributed File System (HDFS) : le système de fichiers ;

· Hadoop YARN ;

· Hadoop MapReduce ;

Le terme Hadoop fait référence non seulement aux modules de base ci-dessus, mais également à son écosystème et à tous les logiciels qui y sont attachés, tels Apache Pig, Apache Hive, Apache HBase, Apache Phoenix, Apache Spark, Apache ZooKeeper, Cloudera Impala, Apache Flume, Apache Sqoop, Apache oozie, Apache Storm.

I.12. SOLUTIONS LOGICIELLES

I.12.1. Moteurs Sémantiques (Text Mining)

Généralement associés à un moteur de recherche, ils permettent une analyse sémantique des documents afin de comprendre le contenu et permettent ainsi de retrouver, dans une base de données de documents, le ou les documents traitant d'un sujet, parlant d'une personne. Parmi les solutions les plus connues : Fise, Zemanta, iKnow (InterSystems), Noopsis, Luxid (Temis), LingWay.

I.12.2. Solutions d'Analytiques

Ce sont des solutions qui permettent de gérer la variété des données exploitées par une visualisation nouvelle de celles-ci avec une première analyse qui les contextualise, compartimente, corrèle. Pour cela, ces nouvelles solutions cherchent à aller au-delà d'une analyse statistique des données pour aller vers une analyse prédictive et la prise en compte de la temporalité des données.

Parmi les solutions les plus connues : QlickView, PowerPivot, Tableau. Ainsi que, pour la manipulation des données : Aster, Datameer, SPSS, SAS ou Kxen pour le DataMining.

Il y a aussi moyen d'écrire ces propres programmes (scripts) pour exploiter les données d'un Big Data, nous pouvons citer ces langages par excellence comme : Python, Langage R, Java.... Mais on peut tout de même adaptée un autre langage dans certain cas.

I.12.3. Solutions matérielles et/ou architecturales

I.12.3.1. Cloud Computing14(*)

Une des innovations permettant de stocker et de partager de grandes quantités de données. Le Cloud est un modèle qui permet d'accéder à des ressources informatiques partagées telles que des réseaux, des serveurs, de grandes capacités de stockage, des applications et des services15(*). Le Cloud permet également un accès réseau, des services à la demande et en libre-service sur des ressources informatiques partagées et configurables.

Les services les plus connus sont ceux de Google BigQuery, Big Data sur Amazon Web Services et Microsoft Windows Azure .

Le Cloud Computing signifie donc que les applications en ligne sont utilisées comme si elles étaient situées dans l'éther, dans un espace sans réalité physique.

Figure 1.10: Illustration du Cloud Computing.[Du Big Data au Business]

I.12.3.2. Super Calculateurs Hybrides (HPC : High Performance Computing)

Sont des machines de haute performance utilisées pour le traitement des données massives, telles que IDRIS , CINES , CEA ou HPC-LR qu'on trouve en France dans les Centres Nationaux de Calculs Universitaire (CNCU).

I.12.3.3. Stockage des Données en Mémoire :

Cette technique permet d'accélérer les temps de traitement des requêtes.

I.12.3.4. Serveurs des Traitements Distribués :

Cette technique de traitement distribué permet d'effectuer plusieurs traitements simultanés sur plusieurs noeuds. C'est ce qu'on appelle un traitement massivement parallèle. Le framework Hadoop est probablement le plus connu d'entre eux. Il combine le système de fichiers distribué HDFS, la base de données NoSQL et l'algorithme MapReduce.

I.13. CHOIX DU BIG DATA [1]

La mise oeuvre (ou soit la migration vers) un système d'informations du type Big Data se fait pour des raisons :

· Stratégiques : qui permettent d'obtenir des informations plus riches et approfondies sur les clients et les partenaires voire même le marché et au bout du compte de bénéficier d'un avantage concurrentiel. En bref, c'est de créer un avantage concurrentiel ;

· Organisationnelles : qui permettent de travailler avec des ensembles de données dont la taille et la diversité dépassent les capacités classiques. Elles permettent également le traitement en temps réel d'un flux continu de données afin de prendre plus rapidement des décisions urgentes. Les processus d'analyse se dirigent, là où sont les données pour plus de rapidité et d'efficacité. Elles permettre ainsi aux personnels dirigeants de prendre de meilleures décisions, plus rapidement et en temps réel. En bref, c'est piloter en temps réel pour prendre plus rapidement des décisions urgentes qui implique les collaborateurs.

I.13.1. Big Data et recrutement

Le Big Data permet de traiter un grand nombre d'applications et de profils beaucoup plus rapidement, voire simultanément, par rapport à un recruteur. En fait, pour les questionnaires, le programme commence l'analyse lorsque la personne a fini de répondre aux questions. De plus, l'algorithme peut fonctionner en continu et à tout moment.

Néanmoins, si les algorithmes sont efficaces pour établir un profil et estimer une correspondance entre un individu et un poste, les recruteurs auront toujours une place prépondérante à occuper dans les années à venir. En effet, certains aspects resteront irremplaçables pour les machines, aussi complexes soient-elles. En effet, l'intelligence artificielle soulève le doute quant au remplacement de la fonction par de simples algorithmes, et rejoindrait ainsi les emplois victimes du processus d'automatisation des tâches.

I.13.2. Métiers du Big Data

Les métiers du Big Data sont :

Ø Data Scientist: Il est chargé de modéliser des problématiques commerciales complexes, d'ouvrir des perspectives commerciales, et d'identifier les opportunités. Il a :

· Connaissance des logiciels & langages Big Data ;

· Connaissance en modélisations ;

· Connaissances métiers.

Ø Architecte Big Data:

· Connaissance infrastructures et logiciels Big Data ;

· Connaissances en modélisations.

Ø Data Analyst :

· Connaissance des logiciels & langages Big Data ;

· Connaissance en modélisations.

Ø Chief-Data-Officer (Directeur des données) :

· Responsable des données et de leur gouvernance (collecte, traitement, sauvegarde, accès) ;

· Responsable de l'analyse des données et aide à la décision.

CONCLUSION PARTIELLE

La rapidité technologique a mis les données à la disposition des entreprises à partir de sources multiples, souvent structurées ou non. Pour faire face à ce type de données, une technologie Big Data permet l'exploration de grands volumes de données provenant des sources les plus variées.

Cette technologie Big Data utilise plusieurs autres techniques pour le traitement de ces données non structurées ou structurées, leur gestion et leur stockage avec des outils de traitement et un SGBD (Système de gestion de base de données) très spécifiques à ces types de données. Dans ce chapitre il a été question de parler de ladite technologie dans ses multiples aspects.

CHAPITRE II : SYSTÈME DE GESTION DE BASE DE DONNEES ORIENTE DOCUMENT ET MONGODB[7], [9]

II.1. SGBD ORIENTE DOCUMENT

II.1.1. Introduction

Les systèmes de gestion de bases de données constituent une grande problématique de nos jours. Ce sont des systèmes qui enregistrent et classent les données pour permettre une recherche et un stockage rapides et faciles des informations. Dans un programme, les bases de données sont utilisées pour de stocker à long terme ce que les variables enregistrent à court terme.

Pendant des années, ces systèmes de gestion relationnelle ont constitué la base du stockage de documents. Cela a entraîné d'importants problèmes de gestion, notamment le volume, la vitesse et la variabilité des composants de la base de données. En effet, on ne pouvait pas stocker beaucoup d'enregistrements et les traitements étaient très lourds, car les informations disposées sur plusieurs tables nécessitaient l'utilisation de plusieurs jointures pour être extraites.

II.1.2.Définition

Une base de données orientée documents est un type de base de données NoSQL conçu pour stocker et interroger des données sous forme de documents. Elle est donc destinée aux applications qui gèrent des documents.

Cette catégorie de produits fait le compromis d'abandonner certaines fonctionnalités classiques des SGBD relationnels au profit de la simplicité, la performance et une montée en charge ( scalabilité) élevée. Ce type de base de données peut être une superposition d'une base de données relationnelle ou non.

L'avantage des bases de données orientées documents réside dans l'unité de l'information et l'adaptation à la distribution. En effet, d'une part, tout étant inclus dans la structure, cela évite de faire des jointures pour reconstruire l'information car elle n'est plus dispersée dans plusieurs tables. Aucune transaction n'est nécessaire car l'écriture est suffisante pour créer des données sur un document afin de modifier un objet. Une seule lecture suffit pour reconstruire un document. Par contre, les documents étant autonomes, ils peuvent être déplacés facilement, ils sont indépendants les uns des autres.

II.1.3. Types de modèle de SGBD NoSQL[7]

Bien que plusieurs caractéristiques générales aient été soulignées précédemment, il convient de noter qu'il existe plusieurs familles de systèmes de base de données NoSQL, étant donné qu'elles sont apparues progressivement, à des fins différentes et conçus par différents auteurs. Chacune de ces familles peut parfois s'écarter des définitions générales.

II.1.4. Comparaison des outils de gestion des BD NoSQL

Dans cette partie, nous allons lister les caractéristiques des principales bases de données NoSQL. CouchDB présente de nombreuses similitudes avec MongoDB, à la différence que CouchDB est moins adapté à des données très variables [Oussous et al., 2015].

CouchDB assurera la disponibilité et la tolérance à la partition là où MongoDB assurera la disponibilité et la cohérence. Le choix de l'importance de ces caractéristiques est à effectuer selon les besoins del'application. De prime à bord, dans les conditions de création du prototype dans ce travail, ni la disponibilité ni la cohérence semble avoir plus d'importances l'une que l'autre. Par contre MongoDB
semble supporter des requêtes plus complexes et a l'avantage de supporter nativement le partitionnement [Lourenço et al., 2015].

Tableau 2.2: Comparaison de système de Base des données NoSQL.

 

CouchDB

MongoDB

Neo4j

Big Table

Basic Concepts

Document-Oriented

Document-Oriented

Network-Oriented

Column-Oriented

Indexing

R-Tree Only2D

2D 2Dsphere

R-Tree 2Dand partially 3D

B-Tree Only2D

Vector Data Types

Fully

Fully

Fully Basic Types and Limited MultiGeometry Types

Fully Basic Types

Topologycal functions

Only Within() Contains()

Only Wiyhin() Contains(Point)

Almost fully

Not supported

Analysis and metric functions

Only Distance()

Only Distance(Point)

FullyMultiGeometry

Only Distance()

Set functions

Not support

Only Intersection(Point)

Fully

Not supported

MongoDB semble donc être plus approprié pour la gestion de nos données. L'utilisation de CouchDB n'est pas pour autant inintéressante, au contraire, elle offre bon nombre d'avantages simplement par ses objectifs différents (disponibilité au lieu de cohérence).

II. 2. MongoDB

II.2.1.Présentation

MongoDB est l'un des systèmes de gestion de données NoSQL les plus populaires. Développé par la société new-yorkaise MongoDB Inc., il est disponible depuis 2009. À l'heure actuelle, la dernière version disponible est la 4.6.8.

MongoDB vient du mot anglais humongous qui signifie « énorme ». Il est un SGBD faisant partie de la mouvance NoSQL qui n'est plus fondée sur l'architecture classique des bases relationnelles où l'unité logique n'y est plus la table, et les données ne sont en général pas manipulées avec le SQL.

MongoDB est un système de gestion de documents orienté document, répartissables sur un nombre quelconque d'ordinateurs de scalabilité (extensibilité ou évolubilité) ou scalability en anglais, avec des performances raisonnables et ne nécessitant aucun schéma de données prédéfini. Il est écrit en C ++ et distribué sous licence AGPL. Son objectif est de fournir des fonctionnalités avancées.

Avant de fonder 10gen (renommée depuis en MongoDB Inc.), Kevin Ryan et Dwight Herriman avaient déjà créé Double Click, une entreprise bien connue de publicité en ligne. Frustrés par l'impossibilité de monter en charge comme ils le souhaitaient, ils décidèrent de développer une plate-forme applicative distribuée conçue pour le cloud, composée d'un moteur applicatif et d'une base de données, qu'ils développèrent d'abord en JavaScript. Cette idée de plate-forme applicative (un App Engine tel que celui de Google) n'intéressait pas grand monde, mais la base de données éveillait la curiosité, si bien qu'après un an, ils décidèrent de libérer son code. Ce fut à ce moment qu'un net intérêt commença à se manifester. Cet engouement se traduisit par une activité importante de développement par la communauté et un investissement grandissant de la part de 10gen, notamment par le recrutement d'ingénieurs spécialisés en SGBD.MongoDB est identifié par le logo ci-dessous :

Figure 2.11:Présentation logo du SGBD MongoDB.

II.2.2. Schéma

La conception du schéma doit prendre en compte les particularités de l'application elle-même. Il faut regarder le nombre de lectures et l'importance de chacune. Les requêtes et la fréquence des mises à jour doivent également être étudiées bien avant la conception du modèle.

II.2.2.1. Document

Le modèle de données MongoDB est entièrement basé sur des documents. Le document est représenté par un fichier BSON. Les caractéristiques de ces fichiers permettent d'introduire des documents intégrés, ce qui permet d'éviter les jointures et les transactions lourdes. Les documents peuvent donc être comparés à plusieurs lignes d'une table d'une base de données relationnelle.

MongoDB garantit la conformité ACID (atomicité, cohérence, isolation et durabilité) au niveau du document. En effet, toutes les données incluses dans un document peuvent être collectées en une seule opération. Ainsi, toutes les données peuvent être stockées dans un seul document pour appliquer les caractéristiques ACID à l'ensemble de la base de données [Abraham, 2016].

II.2.2.2. Collection

Une collection est l'ensemble des documents de la même famille. Il n'y a pas de structure imposée pour les documents d'une même collection, ils peuvent tous varier entre eux.

Il existe des collections typiques appelées « collections limitées », créées à l'avance avec une limite de taille. Quand l'ajout de documents provoque le dépassement de la taille limite, ce sont les plus vieux documents qui vont être supprimés [Chodorow, 2013].

II.2.2.3. Documents intégrés

Les relations un à un ou un à plusieurs correspondent parfaitement au type de document intégré.Les documents ne doivent pas être intégrés dans trois cas :

§ Si le document à intégrer demande beaucoup moins de lecture que le document principal. Cela ne ferait qu'augmenter la mémoire nécessaire pour les opérations fréquentes.

§ Si une partie du document est fréquemment mise à jour contrairement au reste du document.

§ Si la taille totale du document dépasse la limite des 16 Mo imposée par MongoDB

Il apparait clairement que son utilisation diminuerait les performances, mais MongoDB offre la possibilité d'un joint contrairement à la plupart des bases de données NoSQL. Le référencement est le plus souvent appliqué sur le champ _id (par la commande $lookup) dans le document de référence. L'usage du référencement est conseillé dans plusieurs cas (MongoDB, 2015) :

ü Si l'intégration n'a vraiment pas l'avantage sur le référencement ;

ü Si l'objet est référencé de plusieurs sources ;

ü Pour les relations plusieurs à plusieurs ;

ü Pour les jeux de données volumineux et hiérarchiques.

II.2.3. Caractéristiques

MongoDB est l'un des rares systèmes de gestion de données NoSQL codés avec un langage qui offre de grandes performances : le C++. Les autres moteurs NoSQL populaires sont souvent codés en Java ou dans des langages particuliers comme Erlang.

MongoDB Inc. le définit comme un SGBD orienté documents. Le terme « documents » ne signifie pas des documents binaires (image ou fichier son, par exemple), mais une représentation structurée, compréhensible par MongoDB, d'une donnée complexe. Plus simplement, on stocke la représentation des données comprise par MongoDB.

II.2.4. Structure des données

Un document BSON représente donc l'unité stockée par MongoDB, qui équivaut à une ligne dans une table relationnelle. Il est composé d'une hiérarchie de paires clé-valeur, sans contrainte de présence ou de quantité.

Les documents sont contenus dans des collections, qui correspondent plus ou moins aux tables des SGBDR. Même s'il n'y a aucune obligation pour les membres d'une collection de partager une structure identique, il est tout de même plus logique et plus efficace, parce que cela permettra l'indexation de s'assurer de cette cohérence.

MongoDB n'a pas de concept de contraintes comme dans le modèle relationnel. Il n'y a pas de vérification de cohérence effectuée par le serveur, toute la responsabilité est endossée à ce niveau par le code client.

MongoDB stocke les documents tels
qu'il les reçoit. De plus, il est inutile de créer explicitement une collection avant d'y insérer des documents, car MongoDB en crée une dès que le code client la mentionne.

II.2.5. Stockage des objets larges

MongoDB peutégalement stocker des documents binaires ou des objets larges, soit directement dans sa structure BSON, soit à l'aide de GridFS, spécification destinée à optimiser la manipulation et la sérialisation de fichiers de taille importante. En interne, MongoDB découpe les fichiers en plus petits segments qui seront autant de documents contenus dans une collection nommée chunks. Les métadonnées des fichiers sont conservées dans une autre collection, nommée nies. Vous pouvez ajouter des attributs aux documents de nies pour qualifier vos fichiers.

Lacollection chunks contiendra des documents qui auront un files_id identifiant le document de la collection nies, unattribut n quiest le numéro du segment, et un attribut data quicorrespond ausegment, de type binaire. C'est une façon optimale de conserver des fichiers par rapport à unstockage sur un système de fichiers avec des URL. Un outil en ligne de commande, mongoles, permet d'importer ou d'extraire des documents.

Figure 2.12:Présentation de Stockage en GridFS.

II.2.6. Traitement des données

Du point de vue transactionnel, MongoDB supporte l'atomicité seulement lors de la mise à jour d'un document. En d'autres termes, il y a bien un verrouillage à l'écriture sur un document, mais il ne s'étend pas par défaut sur une mise àjour de plusieurs documents. En ce quiconcerne la durabilité des transactions, elleest assurée par une journalisation de forme WAl. write-ahead log. Les instructions de création-modification-suppression de données sont en premier lieuécrites dans unjournal. Si le moteurest arrêté proprement, les écritures sont inscrites sur le disque et le journal est supprimé.

Donc si MongoDB démarre et constate l'existence d'un
journal, c'est que le moteur n'a pas été arrêté correctement. Il exécute alors une phase de récupération qui rejoue le journal. La journalisation est activée par défaut dans les versions récentes et 64 bits de MongoDB, elle peut être désactivée au démarra.ge par l'option de la ligne de commande --nojournal. Vous perdezen sécurité et gagnez un peuen performances lors des écritures.

II.2.7. Mise en oeuvre

II.2.7.1. Installation

Les exécutables MongoDB sont disponibles à l'adresse suivante :http://www.mongodb.org/downloads. L'installation sur Windows ou Mac OS X est très simple. Étant donné que nous disposons d'une distribution Ubuntu Server pour nos exemples, nous pouvons utiliser le paquet mongodb de la distribution officielle (MongoDB est disponible sur la plupart des dépôts officiels des distributions Linux).

Le dépôt porte toujours le nom de 10gen, mais depuis quelques versions, le paquet s'appelle mongodb-org. Auparavant, son nom était mongodb-10gen.
Le dépôt ubuntu-upstart installe une version du démon mongodb qui se lance grâce au système upstart d'Ubuntu, un système de lancement de services remplaçant le traditionnel démon init issu de System-V.

II.2.7.2. Invite interactive

L'accès à une invite de commandes interactive pour manipuler les données de MongoDB est possible grâce au shell mongo (Windows et Ubuntu). Il s'agit d'une invite JavaScript (qui utilise l'interpréteur V8 depuis la version 2.4 de MongoDB, SpiderMonkey auparavant) grâce à laquelle vous pouvez interagir avec MongoDB. Pour l'ouvrir, tapez simplement mongo dans votre terminal, l'exécutable devrait se trouver dans le chemin. Si vous voulez accéder au serveur local qui écoute sur le port par défaut 27017, cela suffira. Sinon, vous pouvez indiquer l'adresse sous la forme suivante :<serveur>:<port>/<base de données>.

Nous avons vu quelques commandes simples de l'invite. Vous trouverez une description complète du shell sur le site de MongoDB Inc. à l'adresse : http:lldocs.mongodb.org/manualladministration/scripting/. La plupart du temps, l'administration complète s'effectue , à partir d'un
code client pour plus d'optimisation des requêtes. Quittons ce shell en tapant exit, ou à l'aide de la combinaison de touches Ctrl + D, et voyons comment accéder à MongoDB depuis notre code Python.

II.2.7.3. Programmation cliente

MongoDB Inc. développe des bibliothèques pour de nombreux langages, appelés pilotes (driver). Celui pour Python se nomme PyMongo, il s'agit d'un pilote officiel.

Nous avons ici effectué notre écriture avec l'instruction db.articles.insert (article. safe=True) , ce qui signifie: dans la base de données db ouverte, dans la collection articles, insérer le dictionnaire article. L'objet sera automatiquement transformé en document JSON par PyMongo. Si la collection articles n'existe pas, elle sera créée.

II.2.7.4.Administration

L'interface web d'administration est disponible à l'adresse http://localhost:27017. Vous pouvez appeler cette page depuis une machine cliente à condition que la configuration de MongoDB le permette. Dans le fichier /etc/mongodb.conf, vous pouvez indiquer sur quelle interface le serveur
Ya écouter avec l'option b1nd_1p. Pour autoriser un accès à partir de toutes les interfaces, enlevez ou commentez cette ligne de configuration. Vous devez bien entendu redémarrer le démon pour que le changement soit pris en compte.

Les opérations d'administration peuvent être exécutées grâce à l'invite interactive ou par l'intermédiaire d'un pilote. À l'intérieur d'une base de données, un espace de noms spécial, $cmd, permet de passer des commandes à travers sa méthode find0ne(), qui retourne son résultat sous forme de document. Beaucoup de ces commandes ont des fonctions clairement nommées qui les encapsulent. Par exemple, l'invite interactive dispose d'une fonction générique db.RunCommand()
et de fonctions spécifiques.

II.2.7.5. Sécurité

Qu'en est-il de la sécurité dans MongoDB, dans le sens où on l'entend pour tout type de serveur : authentification et protection des données ? Pour l'authentification, la configuration recommandée par MongoDB Inc. est de n'en avoir aucune et d'exécuter le ou les noeuds MongoDB dans un environnement sûr. C'est par la configuration réseau que vous vous assurez que les ports TCP permettant d'accéder à MongoDB ne sont accessibles que depuis des machines de confiance. Ces clients peuvent accéder et manipuler les données comme bon leur semble.

II.2.7.6.Réplication

Un démon (processus) MongoDB est appelé un noeud. Dans les situations de production, il y a en général un noeud par serveur. Il peut être utile de monter une machine multi noeud pour le développement et les tests. Ces noeuds peuventêtre liés dans un ensemble de réplication. C'est-à-dire une topologie de réplication de type maître-esclave telle qu'on la trouve dans les SGBDR, à des fins de duplication de données, et pour assurer une continuité de service, car la réplication inclut également un basculement automatique du maître.

À un moment donné, un noeud est choisi comme maître par MongoDB et reçoit donc toutes les écritures, qu'il distribue aux esclaves. En cas de défaillance du noeud maître, MongoDB bascule automatiquement et promeut un autre noeud maître. Les applications clientes sont averties de ce fait et redirigent toujours les écritures vers le bon maître dans un jeu de réplicas. Conceptuellement, cette réplication est effectuée en mode asynchrone ou synchrone selon la demande du client. Une opération de modification de données peut indiquer le nombrede réplication sur lesquels l'écriture doit avoir été effectuée avec succès avant de rendre la main, comme nous l'avons vu dans les exemples de code précédents.

II.2.7.7. Répartition (sharding)

La montée en charge horizontale est réalisée par répartition (sharding). MongoDB peut aussi bien s'exécuter en tant que moteur individuel sur une seule machine ou être converti en un cluster de données éclatées géré automatiquement et comportant un nombre de noeuds pouvant théoriquement aller jusqu'à mille. Le sharding de MongoDB impose quelques limitations légères à ses fonctionnalités, notamment une immutabilité de la clé (primaire) du document. Le choix de
la répartition est fait par collection. C'est une collection, et non pas une base de données, qu'on répartit. Les documents de cette collection seront distribués aussi équitablement que possible entre les différents noeuds, afin d'équilibrer les traitements.

À chaque opération, il faut bien entendu identifier le noeud qui contient ou doit contenir les données. Ce rôle est assuré par un processus nommé mongos, qui reçoit les requêtes et les redoute, et qui agit donc comme un répartiteur de charge. Pour assurer une continuité de service, cette répartition peut être accompagnée de réplication : chaque noeud peut avoir son propre groupe de réplicas avec basculement automatique.

Figure 2.13: Le modèle de répartition de MongoDB [Noureddine DRISSI, MongoDB, Administration].

CONCLUSION PARTIELLE

Dans ce chapitre, nous avons mené une étude approfondie des opérations requises pour manipuler une base de données orientée document avec le SGBD MongoDB.

Cette étude montre que la solution MongoDB est très bénéfique et offre de meilleures performances parmi les autres bases de données NoSQL, en temps de réponse pour l'équilibrage de la charge entre les noeuds.

Nous pouvons donc en conclure que MongoDB est une base de données NoSQL légère, rapide et facile à maîtriser. La force et l'efficacité de MongoDB dans des environnements à grande échelle ou le temps de réponse et la disponibilité des informations sont plus importants que leur intégrité.

CHAPITRE III : FOUILLE DE DONNEES ET RESEAUX DE NEURONES[13], [14], [18]

III. 1. FOUILLE DE DONNEES

III.1.1. Présentation

La Fouille de données (en anglais Data Mining) est un ensemble de techniques d'exploration et d'analyse, par des moyens automatiques ou semi-automatiques, d'une masse importante de données dans le but de découvrir des tendances cachées ou des règles significatives (non triviales, implicites et potentiellement utiles).

Dans la littérature, la Fouille de données est appelée de différente manière, entre autres Exploration de données, Forage de données, Prospection de données, Extraction de connaissance à partir de données ou encore Analyse intelligente de données.

Elle se propose d'utiliser un ensemble d'algorithmes issus de disciplines scientifiques diverses telles que les statistiques, l'intelligence artificielle ou l'informatique, pour construire des modèles à partir des données, c'est-à-dire trouver des structures intéressantes ou des motifs selon des critères fixés au préalable, et d'en extraire un maximum de connaissances.

Nous retiendrons que le terme Fouille de données fait allusion aux outils ayant pour objet de générer des informations riches à partir des données de l'entreprise, notamment des données historiques, de découvrir des modèles implicites dans les données. Ces outils peuvent permettre par exemple à un magasin de dégager des profils de client et des achats types et de prévoir ainsi les ventes futures. Ils permettent d'augmenter la valeur des données contenues dans l'Entrepôt de données.

Les outils d'aides à la décision, qu'ils soient relationnels, NoSQL ou OLAP, laissent l'initiative à l'utilisateur, de choisir les éléments qu'il veut observer ou analyser. Au contraire, dans le cas de la Fouille de données, le système a l'initiative et découvre lui-même les associations entre données, sans que l'utilisateur ait à lui dire de rechercher plutôt dans telle ou telle direction ou à poser des hypothèses.

III.1.2. Objectifs de la Fouille de données

Les objectifs du Data Mining peuvent être regroupés dans trois axes importants :

(1) Prédiction (What-if) : consiste à prédire les conséquences d'un événement (ou d'une décision), se basant sur le passé.

(2) Découverte de règles cachées : découvrir des règles associatives, entre différents événements (Exemple : corrélation entre les ventes de deux produits).

(3) Confirmation d'hypothèses : confirmer des hypothèses proposées par les analystes et décideurs, et les doter d'un degré de confiance.

En considérant le serveur de base données ou le serveur d'entrepôt de données, la Fouille de données est considéré comme un client riche de ces deux serveurs. Notons que le client serveur est un mode de dialogue entre deux processus, l'un appelé client qui sollicite des services auprès de l'autre appelé serveur, par envoie des requêtes (send request en anglais). Après avoir lancé une requête par rapport au fait à analyser, le client data ming applique des méthodes ou procédures sur les données obtenues, afin d'obtenir les informations nécessaires pour la prise de décision. Ces procédures ou méthodes, sont classées en deux catégories : les méthodes descriptives et les méthodes prédictives.

III.1.3. Méthodes (Algorithmes) de Fouille de données

Résoudre un problème par un processus d'exploration de données impose généralement l'utilisation d'un grand nombre de méthodes et d'algorithmes différents plus ou moins faciles à comprendre et à employer. Il existe deux grandes familles d'algorithmes : les méthodes descriptives et les méthodes prédictives.

III.1.3.1. Méthodes descriptives

Les méthodes descriptives consistent à mettre en évidence les informations cachées par le grand volume de données, en vue de détecter dans ces données des tendances cachées. Cela signifie identifier des régularités qui permettent d'un certain de comprimer l'information présente dans les données et de les décrire de manière synthétique.

Il s'agit donc à simplifier et à aider à comprendre l'information sous-jacente d'un ensemble important de données. Il s'agit essentiellement de synthétiser, de résumer et de structurer l'information contenue dans les données.

Il existe ainsi deux sous-catégories des méthodes descriptives, à savoir :

· Lesméthodes factorielles, qui ont pour but de réduire le nombre des variables statistiques en les résumant en petit nombre des composantes statiques qu'on appelle axe factoriel. Les techniques utilisées sont l'Analyse en Composante Principale (A.C.P), l'Analyse Factorielle des Correspondances (A.F.C), l'Analyse de Correspondances Multiples (ACM), etc. ;

· Lesméthodes de classification ou de segmentation (en anglais clustering), qui ont pour but de regrouper en sous-groupes homogènes les individus d'une population hétérogène de telle manière que les individus d'une même classe se ressemblent de plus en plus et celles des classes différentes se diffèrent de plus en plus. Ces méthodes sont de deux types :

- Lesméthodes hiérarchiques : ce sont des méthodes qui utilisent des hiérarchies pour former ses groupes. On a des méthodes comme : la Classification Ascendante Hiérarchique (C.A.H) et la Classification Descendante Hiérarchique (C.D.H) et

- Lesméthodes de partitionnement : ce sont des méthodes qui utilisent des partitions pour former ses groupes. On a des méthodes comme : le k-means (Centres mobiles), les nués dynamiques, le modèle de mélange gaussien, etc.

III.1.3.2. Méthodes prédictives

Les méthodes prédictives consistent à partir d'une collection des données, produit une prédiction d'une valeur quelconque.Un prédicateur est une procédure, une fonction mathématique ou un algorithme qui, à partir d'un ensemble d'exemples, produit une prédiction d'une valeur quelconque.

Mathématiquement, la base d'apprentissage est un doublet est l'ensemble des observations définies sur décrivant les formes et :

Est la fonction de prédiction. Les sont les sorties et est appelé prédicteur.

§ Si est une fonction continue, on parle alors de régression. Dans ce cas, la fonction de prédiction (ou le prédicteur) est alors appelée un régresseur. Un régresseur est donc une fonction mathématique ou un algorithme qui réalise les tâches de régression.

En clair, le problème de prédiction est dit de régression si la valeur à sortie est numérique, par exemple la température qu'il fera le mois prochain, etc.

Il existe plusieurs modèles de régression actuellement, à savoir : la régression linéaire, la régression non-linéaire, qui peuvent être simple ou multiple, la régression logistique, etc.

§ Si est une fonction discontinue, on parle alors de classement. Dans ce cas, le prédicteur est appelé classifieur. Un classifieur est donc une fonction mathématique ou un algorithme qui réalise les tâches d'affectation.

Ce qui veut dire, le problème de prédiction est dit de classement si la valeur de sortie est catégorielle ou une étiquette, par exemple lors de l'analyse des données fiscales, la valeur, la valeur « frauduleux » ou « non frauduleux ». Plusieurs modèles sont utilisés pour résoudre le problème de classement, à savoir : Réseaux de neurones, l'Arbre de décision, le Séparateur à Vaste Marge (SVM) ou les Réseaux de Bayes, etc.

On peut alors synthétiser les méthodes de Fouille de données sous forme de tableau suivant :

Tableau 3.3: Méthodes de Fouille de données.

Méthodes (Algorithmes)

Types de methodes

Exemples

Méthodes Descriptives

Méthodes factorielles

Analyse en Composante Principale (A.C.P), Analyse Factorielle des Correspondances (A.F.C), Analyse Factorielle Discriminante (A.F.D), Analyse de Correspondances Multiples (ACM).

Méthodes de classification (ou segmentation)

Méthodes de partitionnement :

La méthode de k-means (Centres mobiles), la méthode de nués dynamiques, le modèle de mélange gaussien, les réseaux de Kohonen.

Méthodes hiérarchiques :

La Classification Ascendante Hiérarchique (C.A.H) et la Classification Descendante Hiérarchique (C.D.H)

Méthodes Prédictives

Méthodes de régression

Modèle de régression linéaire, Modèle de régression non linéaire, Modèle de régression logistique, Modèle log-linéaire, Réseaux de neurones, l'Arbre de décision, le Séparateur à Vaste Marge (SVM), les Réseaux de Bayes, Méthode de -plus proche voisin.

Méthodes de classement

Analyse Discriminante Prédictive, Réseaux de neurones, l'Arbre de décision, le Séparateur à Vaste Marge (SVM), les Réseaux de Bayes, Méthode de -plus proche voisin.

III.1.4. Concepts de base de Fouille de données

III.1.4.1. Matrice des données - Individu - Variable

Nous représentons les données sous la forme d'une matrice , avec lignes et colonnes, les lignes correspondant aux entités de l'ensemble de données (entrepôt de données, base de données, tableur, etc.)) et des colonnes représentant des attributs ou propriétés appelées variables. Chaque ligne de la matrice de données enregistre les valeurs d'attribut observées pour une entité donnée qu'on appelle individu ou instance ou encore exemple. Cette matrice est donnée par :

 

,

 

désigne la -ème ligne, qui est un n-tuple donné par

Le nombre d'individus est appelé la taille des données, alors que le nombre de variables est appelé la dimension des données.

Une variable qualitative est une variable pour laquelle la valeur mesurée sur chaque individu ne représente pas une quantité. Les différentes valeurs que peut prendre cette variable sont appelées les catégories, modalités ou niveaux.

Une variable est quantitative si elle reflète une notion de grandeur, c'est-à-dire si les valeurs qu'elle peut prendre sont des nombres pouvant être classés en utilisant la relation =.

III.1.4.2. Ressemblance

Une ressemblance (ou proximité) est un opérateur capable d'évaluer précisément les ressemblances ou les dissemblances qui existent entre ces données. Cet opérateur permet alors de mesurer le lien entre les individus d'un même ensemble.

III.1.4.3. Dissimilarité

Un opérateur de ressemblance défini sur l'ensemble d'individus

est dit indice de dissimilarité (ou dissimilarité), si et seulement vérifie les propriétés suivantes :

(P1)

 

(Symétrie)

(P2)

 

(Positivité)

III.1.4.4. Distance

Un opérateur de ressemblance défini sur l'ensemble d'individus

est dit distance ou métrique, si et seulement, en plus de propriétés (P1) et (P2), il vérifie les propriétés suivantes :

(P3)

 

(Identité)

(P4)

 

(Positivité)

La distance la plus utilisée pour les données de type quantitatives continues ou discrètes est la distance de Minkowski d'ordre á définie dans par :

 
 

(1.1)

.

En particulier si :

est la distance de city-block ou Manhattan.

 
 

(1.2)

est la distance Euclidienne classique.

 
 

(1.3)

est la distance de Tchebychev définie comme suit :

 
 

(1.4)

NOTA 

Dans la pratique, c'est la distance euclidienne qui est le plus souvent utilisée, mais la distance de Manhattan est aussi parfois utilisée, notamment pour l'atténuement de l'effet de larges différences dues aux points atypiques ou aberrants pour la simple raison que puisque leurs coordonnées ne sont pas élevées au carré.

III.1.4.5. Similarité

Un opérateur de ressemblance défini sur l'ensemble d'individus est dit indice de similarité (ou similarité), si et seulement si, en plus de la propriété (P1), il vérifie les deux propriétés suivantes :

(P5)

 

(Positivité)

(P6)

 

(Maximisation)

III.2. ALGORITHME DE -MEANS [2], [15]

III.2.1. Introduction

Les algorithmes des centres mobilesvisent à diviser un ensemble de données en différents « paquets » homogènes, en ce sens que les données de chaque sous-ensemble partagent des caractéristiques communes, qui correspondent le plus souvent à des critères de proximité (ou similarité) que l'on définit en introduisant des mesures et classes de distance entre individus.

 Étant donnés des points et un entier  , le problème est de diviser l'ensemble de individus du nuage des points en groupes, souvent appelés clusters ou classes, de façon à minimiser une certaine fonction. On considère la distance d'un individu à la moyenne des individus de sa classe ; la fonction à minimiser est la somme des carrés de ces distances.

Ainsi, la similarité à l'intérieur d'un même groupe est élevée mais faible entre les différentes classes. Pour ce faire ces algorithmes itèrent en deux étapes, d'abord ils calculent les centres des groupes, deuxièmement, ils assignent chaque objet au centre le plus proche. Chaque classe est caractérisée par le centre ou prototype et par ses éléments. Le prototype des classes est le point de l'espace de dimension ( correspond au nombre de descripteurs) où la somme des distances à tous les objets d'un même groupe est minimale. Avec la méthode de centre mobile classique, lors d'une itération donnée, le calcul des centres se fait après l'affectation des individus dans leurs classes respectives. Mais avec -means qui est une variante de centre mobile, dès qu'on affecte un individu dans une classe, on recalcule directement le centre, ce qui accélère convergence de l'algorithme.

Le -means repose généralement sur des algorithmes simples, et permet de traiter rapidement des ensembles d'effectif assez élevé en optimisant localement un critère. Il consiste à minimiser le critère suivant :

, est le centre de la classe zk. Rappelons que le critère W(z,g), qui est simplement la somme des inerties des c classes, est appelé inertieintra classe. La méthode des centres mobiles consiste à chercher la partition telle que le W soit minimal pour avoir en moyenne des classes bien homogènes, ce qui revient à chercher le maximum de l'inertie interclasse,

Avec le centre de gravité du nuage et est le poids de la classe zk.

In fine, l'inertie intraclasse est la mesure de la dispersion d'individus dans la même classe, tandis que l'inertie interclasse est la mesure de la dispersion de centres de classes différentes.

III.2.2. Théorème de Hyugens

On appelle inertie totale d'un nuage la somme pondérée des carrés des distances de ses points au centre de gravité du nuage. Donc, si est le centre de la classe zk, l'inertie totale de est donnée par :

L'idée de l'algorithme de -means est de partitionner les données de afin de:

· Minimiser l'inertie interclasse pour obtenir des classes (cluster en anglais) les plus homogènes possibles ;

· Maximiser l'inertie interclasse afin d'obtenir des sous-ensembles bien différenciés.

III.2.3. Principe général des méthodes des centres mobiles

La méthode des centres mobiles due à Forgy [Forgy, 1965] est la plus classique et très utilisée. Elle procède comme suit : dans une première étape, elle consiste à tirer aléatoirement individus de la population. Ces individus représentent les centres provisoires des classes qui formeront la partition initiale. Ensuite, les autres individus sont regroupés autour de ces centres en affectant chacun d'eux au centre le plus proche.

L'étape suivante consiste à recalculer les nouveaux centres (dites aussi centroïdes ou centres de gravité) des classes, sachant qu'un centre n'est pas nécessairement un individu de la population. Le processus est répété plusieurs fois jusqu'à stabilité des centres des classes (les centres ne bougent plus). Comme tout les algorithmes de partitionnement, la méthode des centres mobiles cherche à minimiser l'inertie intraclasse définie par la somme des écarts des centroïdes aux points de leurs classes et donc à maximiser aussi l'inertie interclasse de la partition donnée par la somme des écarts entre les centres des classes et le centre de la population totale (d'après le théorème de Huygens : inertie totale = inertie intraclasse + inertie interclasse). En minimisant l'inertie intraclasse, la méthode des centres mobiles a tendance à chercher des classes sphériques, d'égal volume et de faible inertie.

Cette méthode a connu des améliorations comme la méthode des -moyennes ( -means) de Mac Queen. Avec l'approche -means, les centres sont recalculés après chaque affectation d'un individu dans une classe, plutôt que d'attendre l'affectation de tous les individus avant de mettre à jour les centres. Cette approche conduit généralement à de meilleurs résultats que la méthode des centres mobiles et la convergence est également plus rapide.

III.2.4. Déroulement de l'algorithme

Figure 14: Déroulement de l'algorithme de centre mobile.

Cet algorithme se déroule de la façon suivante :

1. Initialisation  : points tirés au hasard pour les centres de gravités (ou centroïdes)

de chaque classe ;

2. Affectation : On affecte les points à la classe la plus proche ;

3. Représentation  : On recalcule les nouveaux centres de gravités,

4. Itération : On répète les étapes d'affectation et de représentation jusqu'à la

convergence de l'algorithme (i.e. plus de changement de partition).

Les expériences montrant que le nombre d'itérations nécessaires à l'algorithme pour converger est assez fiable. Cet algorithme est adapté à des tableaux des grandes tailles, sa complexité étant linéaire.

III.3. RESEAUX DE NEURONES

III.3.1.Historique

Depuis plusieurs années, certains scientifiques ont cherché à comprendre le rôle du cerveau humain et le comportement de l'homme. On croyait jadis communément que l'activité mentale avait son siège au centre du corps humain, dans le coeur. Aristote défendait ce point de vue contre Hippocrate, par exemple, pour qui déjà pensées, sentiments et émotions étaient gouvernés par le cerveau. Après les travaux expérimentaux de Galien, il n'était déjà plus possible de douter que le siège de l'âme dirigeante était le cerveau.

Une étape cruciale fut franchie avec la mise en évidence des cellules du système nerveux que l'on appellera neurones par Golgi et Cajal, Grâce à une nouvelle technique de coloration qui permit également des études successives sur la forme, les propriétés, les fonctions et les connections des neurones. Sherrington décrit le fonctionnement des systèmes réflexes, Sperry montre que les parties droite et gauche du cerveau sont impliquées différemment dans ses fonctions et Penfield établit une carte des localisations de sensibilité somatique dans le cortex cérébral.

Grâce aux avancés de la science (médecine, psychologie, informatique, physique, etc...), que le réseau des neurones artificiels a vu le jour. L'histoire des réseaux de neurones est donc tissée à travers des découvertes conceptuelles et des développements technologiques survenus à diverses époques.

Brièvement, les premières recherches remontent à la fin du 19ième et au début du 20ième siècle. Elles consistent en de travaux multidisciplinaires en physique, en psychologie et en neurophysiologie par des scientifiques tels Hermann Von Helmholtz, Ernst Mach et Ivan Pavlov. À cette époque, il s'agissait de théories plutôt générales sans modèle mathématique précis d'un neurone. On s'entend pour dire que la naissance du domaine des réseaux de neurones artificiels remonte aux années 1940 avec les travaux de Warren McCulloch et Walter Pitts qui ont montré qu'avec de tels réseaux, on pouvait, en principe, calculer n'importe quelle fonction arithmétique ou logique. Vers la fin des années 1940, Donald Hebb a ensuite propose une théorie fondamentale pour l'apprentissage.

La première application concrète des réseaux de neurones artificiels est survenue vers la fin des années 1950 avec l'invention du réseau dit « perceptron » par un dénommé Frank Rosenblatt. Rosenblatt et ses collègues ont construit un réseau et démontré ses habilités à reconnaître des formes. Malheureusement, il a été démontrépar la suite que ce perceptron simple ne pouvait résoudre qu'une classe limitée de problème. Environ au même moment, Bernard Widrow et Ted Hoff ont proposé un nouvel algorithme d'apprentissage pour entraýner un réseau adaptatif de neurones linéaires, dont la structure et les capacités sont similaires au perceptron.

Vers la fin des années 1960, un livre publié par Marvin Minsky et Seymour Papert est venu jeter beaucoup d'ombre sur le domaine des réseaux de neurones. Entre autres choses, ces deux auteurs ont démontré les limitations des réseaux développés par Rosenblatt et Widrow-Hoff. Beaucoup de gens ont été influencés par cette démonstration qu'ils ont généralement mal interprétée. Ils ont conclu à tort que le domaine des réseaux de neurones était un cul de sac et qu'il fallait cesser de s'y intéresser (et de financer la recherche dans ce domaine), d'autant plus qu'on ne disposait pas à l'époque d'ordinateurs suffisamment puissants pour effectuer des calculs complexes.

Heureusement, certains chercheurs ont persévéré en développant de nouvelles architectures et de nouveaux algorithmes plus puissants. En 1972, TeuvoKohonen et James Anderson ont développé dépendamment et simultanément de nouveaux réseaux pouvant servir de mémoires associatives. Egalement, Stephen Grossberg a investigué ce qu'on appelle les réseaux' auto-organises.

Dans les années 1980, une pierre d'achoppement a été levée par l'invention de l'algorithme de retro-propagation des erreurs. Cet algorithme est la réponse aux critiques de Minsky et Papert, formulées à la fin des années 1960. C'est ce nouveau développement, généralement attribué à David Rumelhart et James McClelland, mais aussi découvert plus ou moins en même temps par Paul Werbos et par Yann LeCun, qui a littéralement ressuscité le domaine des réseaux de neurones. Depuis ce temps, c'est un domaine ou bouillonne constamment de nouvelles théories, de nouvelles structures et de nouveaux algorithmes.

III.3.2. Présentation des réseaux de neurones

Les méthodes neuronales se sont développées depuis ces trente dernières années simultanément au paradigme de l'apprentissage (machine learning). Selon ce paradigme, les machines ne sont pas programmées à l'avance pour une taches donnée (par exemple, la reconnaissance d'une forme), mais « apprennent » à effectuer cette tâche à partir d'exemples.

Un problème typique d'apprentissage consiste à apprendre à prédire une variable Y, appelée réponse ou variable de sortie, à partir d'une variable X (appelée variable d'entrée ou vecteur de caractéristiques). En général, la relation entre Y et X est stochastique. Le couple (X, Y) obéit à une certaine loi de probabilité, notée p, et on dispose d'un ensemble d'apprentissage (x1,y1), ..., (xn, yn) constitué de données indépendantes observées à partir de la loi p. dans cet échantillon, yi est la réponse correspondant à l'entrée xi.

Le problème d'apprentissage consiste à construire une fonction f (ou machine) à partir des données (x1, y1), ..., (xn, yn) de sorte que f(X) soit une bonne approximation de la réponse souhaitée Y. souvent, on choisit f de manière à minimiser un critère fonctionnel.

Les réseaux de neurones sont utilisés comme outils de modélisation par apprentissage, qui permettent d'ajuster des fonctions non linéaires très générales à des ensembles de points ; comme toute méthode qui s'appuie sur des techniques statistiques, l'utilisation de réseaux de neurones nécessite que l'on dispose de données suffisamment nombreuses et représentatives. Le neurone artificiel est calqué sur le modèle biologique. Nous allons donc commencer par donner un petit aperçu sur le neurone biologique. Ces données nous sont nécessaires pour aborder la suite de notre chapitre sur le réseau de neurones artificiels.

III.3.3. Neurone biologique

Le cerveau se compose d'environ 1012 neurones (mille milliards), avec 1000 à 10000 synapses (connexions) par neurone. Le neurone est une cellule composée d'un corps cellulaire et d'un noyau. Le corps cellulaire se ramifie pour former ce que l'on nomme les dendrites. Celles-ci sont parfois si nombreuses que l'on parle alors de chevelure dendritique ou d'arborisation dendritique. La figure ci-dessous reprend l'hypothèse proposée par de nombreux biologistes pour recréer le comportement intelligent du cerveau.

Figure 3.15: Hypothèse biologique de génération d'un comportement intelligent.

C'est par les dendrites que l'information est acheminée de l'extérieur vers le soma, corps du neurone. L'information traitée par le neurone chemine ensuite le long de l'axone (unique) pour être transmise aux neurones. La transmission entre deux neurones n'est pas directe. En fait, il existe un espace intercellulaire de quelques dizaines d'Angstrom (10-9m) entre l'axone du neurone afférent et les dendrites (on dit une dendrite) du neurone efférent. La jonction entre deux neurones est appelée la synapse.

III.2.4. Structure du réseau de neurones

Cependant, dans le système nerveux central, essentiellement tous les neurones sont construits suivant le même modèle. Ainsi un neurone standard possède un corps cellulaire, le soma, des ramifications afférentes, les dendrites, et une terminaison efférente qu'on appelle axone.

Le neurone est une cellule composée d'un corps cellulaire et d'un noyau. Le corps cellulaire se ramifie pour former ce que l'on nomme les dendrites. Celles-ci sont parfois si nombreuses que l'on parle alors de chevelure dendritique ou d'arborisation dendritique. C'est par les dendrites que l'information est acheminée de l'extérieur vers le soma, corps du neurone.

L'information traitée par le neurone chemine ensuite le long de l'axone (unique) pour être transmise aux autres neurones. La transmission entre deux neurones n'est pas directe. En fait, il existe un espace intercellulaire de quelques dizaines d'Angströms (10-9 m) entre l'axone du neurone afférent et les dendrites (on dit une dendrite) du neurone efférent. La jonction entre deux neurones est appelée la synapse.

Figure 3.16: Neurone biologique avec son arborisation dendritique.

Selon le type du neurone, la longueur de l'axone peut varier de quelques microns à 1.50 mètres pour un motoneurone. De même les dendrites mesurent de quelques micros à 1.50 mètres pour un neurone sensoriel de la moelle épinière.

Le nombre de synapse par neurone varie considérablement de plusieurs centaines à une dizaine de milliers.

Figure 3.17: Description schématique des divers types structuraux de neurones présents dans le cortex cérébelleux.

Les axones ont été repérés par une fiche.

Les réseaux de neurones biologiques réalisent facilement un certain nombre d'applications telles que la reconnaissance de formes, le traitement du signal, l'apprentissage par l'exemple, la mémorisation, la généralisation. Ces applications sont pourtant, malgré tous les efforts déployés en algorithmique et en intelligence artificielle, à la limite des possibilités actuelles. C'est à partir de l'hypothèse que le comportement intelligent émerge de la structure et du comportement des éléments de base du cerveau que les réseaux de neurones artificiels se sont développés. Telle est la quintessence du point suivant.

III.3.5. Réseaux de neurones artificiels16(*)(RNA)

III.3.5.1. Quelques définitions sur le RNA

Définition 1

Les réseaux de neurones artificiels sont des modèles, à ce titre ils peuvent être décrits par leurs composants, leurs variables descriptives et les interactions des composants.

Nous avons retenu les définitions suivantes :

Définition 2

Un RNA est un ensemble des processeurs (ou neurones, ou unité de calcul) interconnectés fonctionnant en parallèle, chaque processeur calcul le potentiel (ou somme pondérée) sur base des données qu'il reçoit, et applique ensuite la fonction d'activation sur le potentiel, le résultat obtenu est transmis aux processeurs se trouvant en aval.

Définition 3

Un RNA est un graphe pondéré , où est un ensemble non vide et au plus dénombrable dont les éléments sont appelés « neurone, ou processeur, ou unité de calcul » du réseau.A est une famille d'éléments du produit cartésien = les éléments de sont appelés : synapse et sur chaque synapse et associé un poids w. La matrice est appelée « la matrice de pondération, ou la matrices des poids synaptiques, ».

La figure 3.17 montre la structure d'un neurone artificiel17(*). Chaque neurone artificiel est un processeur élémentaire. Il reçoit un nombre variable d'entrées en provenance de neurones amont. À chacune de ces entrées est associé un poids w abréviation de weight (poids en anglais) représentatif de la force de la connexion. Chaque processeur élémentaire est doté d'une sortie unique, qui se ramifie ensuite pour alimenter un nombre variable de neurones avals. À chaque connexion est associé un poids.

Figure 3.18: Mise en correspondance du neurone biologique/neurone artificiel.

251664384

Où les synapses, axones, dendrite et noyau correspondent respectivement au poids de connexion (poids synaptique), signal de sortie, signal d'entrée et la fonction d'activation.

Définition 4

Un RNA est une fonction paramétrée qui est la composition d'opérateurs mathématiques simples appelés neurones formels (ou plus simplement neurones). Un neurone est une fonction algébrique non linéaire, paramétrée, a valeurs bornées, de variables réelles appelées entrées.

Figure 3.19: le fonctionnement d'un RNA.

L'argument de la fonction f est une combinaison linéaire des entrées du neurone (à laquelle on ajoute un terme constant, le « biais »). La combinaison linéaire est appelée potentiel ; les coefficients de pondération {wi} sont fréquemment appelés "poids synaptiques" (ou plus simplement poids) en référence à l'origine "biologique" des réseaux de neurones.

Le potentiel d'un neurone est donc calculé de la façon suivante :

V=wo

Le biais wo peut être envisagé comme le coefficient de pondération de l'entrée n°0, qui prend toujours la valeur 1 :

V =

La valeur de la sortie du neurone est donc :

Y = f(v) = f ( + ) : sortie du neurone

La fonction f est appelée « fonction d'activation ».

III.3.5.2. Comportement du neurone artificiel

On distingue la deuxième phase consiste à appliquer la fonction d'activation sur la valeur v obtenue lors de la deuxième phase, et la valeur f(v) est transmise aux neurones avals. On remarquera qu'à la différence des neurones biologiques dont l'état est binaire, la plupart des fonctions de transfert sont continués, offrant une infinité de valeurs possibles comprises dans l'intervalle [0, +1] (ou [-1, +1]).

Il existe de nombreuses formes possibles pour la fonction de transfert :

1. Fonction à Seuil

2. Fonction par morceaux

3. Fonction sigmoïde

a : fonction à seuil (S, la valeur du seuil)

f(x) = si 01 =

f(x) = 0i

b : linéaire par morceaux

c : Sigmoïde

III.3.6. Neurone formel

Un neurone formel est un automate très simple imitant grossièrement la structure et le fonctionnement d'un neurone biologique. La première version de ce dernier est celle de Mc Culloch et W. Pitts et date de 1943. S'inspirant de leurs travaux sur les neurones biologiques, ils ont proposé le modèle du neurone formel qui se voit comme un opérateur effectuant une somme pondérée de ses entrées suivie d'une fonction d'activation (ou de transfert) comme indiqué par la figure suivante.

Figure 3.20: Neurone formel.

Y= si ixi

Si non Ui

Représente la somme pondérée des entrées du neurone

???? = ? ?????????? + ????

Où : ????????????é????????????'????????é??????o??????????é????????????????????????????????????????????????????????????????????????

????????é??????????????????????????????????????????????????????????????????'????????é????????????????????????

????= ??(????) ????????????????????????????????????????????????????????????????????'????????????????????

III.3.7. Sortes de réseau de neurones

Les types de réseau de neurones différent par plusieurs paramètres :

· La topologie des connexions entre les neurones, on distingue deux types de réseau neuronaux : le réseau de neurone bouclé et non bouclé

· La fonction d'agrégation utilisée (somme pondérée, distance pseudo euclidienne, indice d'agrégation de Ward,)

· La fonction de seuillage utilisée (sigmoïde, échelon, fonction gaussienne, ...)

· L'algorithme d'apprentissage (rétro propagation du gradient, cascade corrélation...)

· Méthodes de dégradation des pondérations (weightdecay), permettant d'éviter les effets de bord et de neutraliser le sur-apprentissage.

· Types d'apprentissage : apprentissage supervisé, non supervisé ou apprentissage par renforcement.

III.3.8. Topologie d'un réseau de neurones

III.3.8.1. Perceptron et son fonctionnement

Avant d'aborder le comportement collectif d'un ensemble de neurones, nous allons présenter le perceptron (un seul neurone) en phase d'utilisation. L'apprentissage ayant été réalisé, les poids sont fixes. Le neurone de la figure 1.12 réalise une simple somme pondérée de ces entrées, compare une valeur de seuil, et fourni une réponse binaire en sortie.

Les connexions des deux entrées e1 et e2 au neurone sont pondérées par les poids w1 et w2. La valeur de sortie du neurone est notée x. Elle est obtenue après somme pondérée des entrées (a) et comparaison à une valeur de seuil S.

Dans le cadre de ce travail, nous pouvons interpréter le résultat de la manière suivante :

· La transaction sera frauduleuse si la valeur de x est 0

· La transaction sera normale si la valeur de x est +1.

III.3.8.2. Réseau multicouche en phase d'association

Les connexions entre les neurones qui composent le réseau décrivent la topologie du modèle. Un réseau de neurones (RN) est un système informatique, constitué de plusieurs unités (neurones) organisées sous forme de niveaux différents appelés couches du réseau. Les neurones appartenant à la même couche possèdent les mêmes caractéristiques et utilisent le même type de fonction d'activation. Entre deux couches voisines les connexions se font par l'intermédiaire de poids qui jouent le rôle des synapses.

L'information est portée par la valeur de ses poids, tandis que la structure du réseau de neurones ne sert qu'à traiter l'information et l'acheminer vers la sortie. La structure ou la topologie d'un réseau de neurones est la manière dont les neurones sont connectés. Les structures résultantes peuvent être très variées mais elles sont souvent réparties en deux grandes familles à savoir : les réseaux de neurones non bouclés et les réseaux de neurones bouclés.

Un réseau de neurone est non bouclé lorsque sont graphe d'interconnexion ne contient pas des circuits tandis qu'un réseau de neurone est bouclé lorsque sont graphe d'interconnexion contient des circuits.

III.3.8.3. Réseaux non bouclés

Dans ce type de structure dite feedforward, la propagation de l'information se fait uniquement de l'entrée vers la sortie. Les neurones de la même couche peuvent se connecter uniquement avec les neurones de la couche suivante. L'architecture la plus utilisée est le Perceptron multicouches. Les neurones composant ce réseau s'organisent en N couches successives (N°=3). Dans la figure ci-dessous, nous présentons un perceptron à trois couches. Les neurones de la première couche, nommée couche d'entrée, voient leur activation forcée à la valeur d'entrée. La dernière couche est appelée couche de sortie.

Elle regroupe les neurones dont les fonctions d'activation sont généralement de type linéaire. Les couches intermédiaires sont appelées couches cachées. Elles constituent le coeur du réseau. Les fonctions d'activation utilisées sont de type sigmoïde.

Les réseaux de neurones disposés suivant cette architecture sont aussi appelés "perceptrons multicouche" (ou MLP pour Multi-Layer Perceptrons). Où la fonction d'activation des neurones peut s'écrire les équations ci - dessus sous forme matricielle comme suit :

Le perceptron multicouche présente une alternative prometteuse pour la modélisation des systèmes complexes. Avec une seule couche cachée, il constitue une approximation universelle.

Les études menées dans (Hornik et al., 1989 ; Cybenko, 1989) montrent qu'il peut être entrainé de manière à approximer n'importe quelle fonction sous réserve de mettre suffisamment de neurones dans la couche cachée et d'utiliser des sigmoïdes comme fonctions d'activation.

III.3.8.4. Réseaux bouclés

Un réseau dynamique ou récurrent possède la même structure qu'un réseau multicouche munie de rétroactions. Les connexions rétroactives peuvent exister entre tous les neurones du réseau sans distinction, ou seulement entre certains neurones (les neurones de la couche de sortie et les neurones de la couche d'entrée ou les neurones de la même couche par exemple). Les figures suivantes montrent deux exemples de réseaux récurrents. Le premier est un simple multicouche qui utilise un vecteur d'entrée qui contient les copies des activations de la couche de sortie du réseau et le deuxième est un réseau à mémoire se distingue du premier par la présence des unités mémoires.

Figure 3.21: réseau de neurones bouclé.

Le comportement collectif d'un ensemble de neurones permet l'émergence de fonctions d'ordre supérieure par rapport à la fonction élémentaire du neurone. Imaginer de prime abord un tel comportement n'est pas facile, nous nous appuyons sur un exemple illustratif et donc réductionniste.

Soit un réseau multicouche composé de 361 (19 x 19), 25 et 361 neurones. Ce réseau a appris à associer à la lettre « a » présentée en entrée la même lettre en sortie. Présentons au réseau cette lettre avec quelques erreurs : un certain nombre de pixels ont été inversé (ils sont passés de blanc à noir ou inversement). L'image est composée de 19 x 19 pixels, chacun de ces pixels est associé à un neurone de la couche d'entrée. Chacun des 25 neurones de la couche cachée reçoit 361 connexions (une pour chaque neurone d'entrée) et envoie sa sortie à chacun des neurones de la couche de sortie (au nombre de 361). Dans notre exemple, la couche cachée se compose de 25 neurones, mais ce nombre, à la différence des couches d'entrée et de sortie, n'est pas impératif. Il y a donc 2* 361*25= 18050 connexions dans le réseau.

Figure 3.22: Comportement en phase de reconnaissance d'un réseau de neurone multicouche lors d'une tâche d'auto-association.

Les neurones sont binaires. La valeur d'activation de chaque neurone est indiquée par la hauteur de la colonne. Les neurones sont rangés par couche, tous les neurones d'une couche sont connexités à tous les neurones de la couche suivante (avale). La topologie de deux réseaux directement connectés :

Figure 3.23: Réseaux de neurones interconnectés.

III.4. APPRENTISSAGE DES RESEAUX DE NEURONES

L'apprentissage est une phase du développement d'un réseau de neurones durant laquelle le comportement du réseau est modifié jusqu'à l'obtention du comportement désiré. L'apprentissage neuronal fait appel à des exemples de comportement.

L'apprentissage est dit supervisé lorsque le réseau est forcé à converger vers un état final précis, en même temps qu'un motif lui est présenté. A l'inverse lors d'un apprentissage non supervisé, le réseau est laissé libre de converge vers n'importe quel état final lorsqu'un motif lui est présenté. Il arrive souvent que les exemples de la base d'apprentissage comportent des valeurs approximatives ou bruitées. Si on oblige le réseau à répondre de façon quasi parfaite relativement à ses exemples, on peut obtenir un réseau qui est biaisé par des valeurs erronées, et là on parle de sur apprentissage.

III.4.1. Définition

L'apprentissage dans le contexte des réseaux de neurones, est le processus de modification des poids de connexions (y compris les biais) ou plus rarement du nombre de couches et de neurones (Man et Halang, 1997), afin d'adapter le traitement effectué par le réseau à une tache particulière.

III.4.2. Apprentissage par minimisation de l'erreur

Soit E l'ensemble d'apprentissage. On considère un réseau dont la couche de sortie comporte P cellules. Soit () Les poids de la kè cellule à un instant donné. L'erreur commise par cette cellule sur l'ensemble E, (()) est définie comme étant la moyenne des erreurs quadratique commise sur chaque forme.

Xi , ci (wk(t)) :, C(wk(t)) = Ci (wk(t)) = k (Xi't) - Yik)2

Où (????, ??) est la sortie de la Kè cellules au temps t en fonction de l'entrée Xi.

L'apprentissage consiste donc simplement à rechercher un vecteur qui minimise C. La méthode proposée par Widrow et Hoff pour résoudre ce problème consiste à adapter une méthode d'optimisation bien connue : La minimisation par descente en gradient. Le principe en est simple l'opposé du gradient C par rapport

au poids enW(t)k , - wC (w(t)k) pointe dans la direction dans laquelle la diminution de (????) est maximale ; en modifiant le vecteur poids, par itération successives, dans la direction opposée au gradient, on peut espérer aboutir à un minimum de (????).

Le gradient de la fonction coût par rapport à ????se calcul aisément par :

C (wk(t)) = wCi (wk(t)) = k (Xi't) - Yik).Xi

Et l'algorithme d'apprentissage par descente en gradient est donc le suivant :

Etape 0 : t=0

Initialiser aléatoirement les poids (??)

Etape 1 : Pour chaque automate sur l'ensemble d'apprentissage E :

??(????(??))

Etape 2 : Pour chaque automate K, modifier les poids par :

(?? + 1) = ????(??)-?. ???(????(??))

Etape 3 : t = t+1

Si la condition d'arrêt non remplie, aller à l'étape 2.

Avec ? Taux d'apprentissage.

En résumé soit

E( ) = 2

L'erreur d'apprentissage due aux poids. Si la fonction d'activation est linéaire, cette erreur E s'écrit :

E( ) = 2

On voit donc que l'erreur E est un parabolique dans l'espace des poids. Donc, E possède un seul minimum et il s'agit de trouver la valeur des poids correspondant à ce minimum. Pour cela, la technique classique consiste à utiliser un algorithme de descente de gradient. Pour cela, on part d'un point (dans l'espace des poids, espace de dimension P+1): ensuite, itérativement, on corrige ce point pour se rapprocher du minimum de E. Pour cela, on corrige chaque poids d'une quantité proportionnelle au gradient de E en ce point, cela dans chaque direction, donc par rapport à chacun des poids. Ce gradient est donc la dérivée (partielle) de E par rapport à chacun des points. Reste à déterminer le coefficient à appliquer à cette correction.

?? ? ?? - ?????(?? ) ?(?? )

Il nous reste à calculer ce terme général  :

D'où :

??=??

?????= ???(????- ??(????))????.????=1

III.4.1.Algorithmes d'apprentissage

L'apprentissage avec des réseaux de neurones multicouches se fait principalement suivant deux approches :

· Approche par retro propagation de gradient (RPG) La retro propagation de gradient détermine les poids de minimisation d'un cout. Cet algorithme nécessite l'introduction de l'architecture de réseau.

· Approche constructive Avec cette approche, on apprend en même temps le nombre d'unités et les poids, commençant généralement avec une seule unité. Voici quelques exemples des algorithmes d'apprentissage des réseaux de neurones :

III.4.1.1. Algorithme de HEBB

Cet algorithme se déroule en 5 étapes de la manière suivante :

Etape 1 : initialisation des poids

Etape 2 : présentation d'une entrée ?? = (??1,2, ...) de la base d'apprentissage.

Etape 3 : calcul de la sortie x pour l'entrée E telle que :

?? = ? (????*????) - ??

?? = ??????????(??)

??????> 0 ???????????? = +1 ???????????? = -1

Etape 4 : si la sortie calculée x est différente de la sortie désirée alors il y a modification des poids.

Etape 5 : Retour à l'étape 2.

III.4.1.2. Algorithme d'apprentissage du perceptron

Cet algorithme nécessite :

ï Les exemples d'apprentissage ??.

ï Chaque exemple xi possède P attributs dont les valeurs sont notées????.

ï Pour chaque donnée, ????,0 est un attribut virtuel, toujours égal à 1. La classe de l'exemple ???? est ????

Nécessite :

Taux d'apprentissage ????]0,1]

Nécessite :

ï Un seuil ??

Initialiser les ???? aléatoirement Répéter

// E mesure l'erreur courante

?? ? 0

Mélanger les exemples

Pour tous les exemples du jeu d'apprentissage?? faire

?? ? ?? + |????|

Pour tous les poids ????, ??? {0,1, ... ??} faire

???? ? ???? + ????i??i, ??

Fin pour fin pour jusque ??<??

III.4.1.3. Algorithme de propagation de gradient pour un perceptron

Nécessite : les ?? instances d'apprentissage ??

Nécessite : taux d'apprentissage ????]0,1]

Nécessite : un seuil ??

Initialiser les ????,{0, ... ??} aléatoirement Répéter

//E mesure de l'erreur courante

?? ? ??

Pour tous les poids ????,{0,...??} faire (????) ? 0

fin pour mélanger les exemples pour tous les exemples du jeu d'apprentissage ????,{1,??} faire

?? ? ?? + (???? - (????))2

Pour tous les poids ????,{0,...??} faire

??(????) ? ??(????) + ??(????- ??(????)????,??

fin pour tous les poids ????,{0,...??} faire

????? ????+ (????) Avec :?(??) = -???(??) fin pour jusque ??<??

Fin pour Fin tant que

Le choix de l'algorithme à utiliser dépend de l'architecture du réseau des neurones. Si, les données sont linéairement séparables, un perceptron suffit pour faire la prédiction et dans ce cas, l'algorithme de Hebb ou perceptron peuvent s'utiliser mais quand les données ne sont pas linéairement séparables, c'est prouvé par Hornick (1991) que pour la tache de classification, un réseau de neurones avec une seule couche cachée de perceptron Sigmoïdes et une couche de sortie peut résoudre tout problème de classification et dans ce cas , on peut utiliser l'algorithme de retro-propagation du gradient.

CONCLUSION PARTIELLE

Les réseaux de neurones étant un algorithme puissant, il était question pour nous de le souligné dans ce chapitre tout en présentant non seulement quelques définitions mais aussi son fonctionnement. Dans notre étude ce dernier fait le fondement de notre implémentation grâce à ses différentes fonctions mathématiques, partant des analyses a opérées dans le dernier chapitre, il sied de mener une étude sur la structure et le comportement de réseaux de neurones artificiel en vue de ressortir une prédiction quasi réelle.

CHAPITRE IV : IMPLEMENTATION ET INTERPRETATION DE RESULTATS [3], [4], [5], [6]

IV.1. INTRODUCTION

Ce chapitre est spécialement consacré à l'implémentation et interprétation de résultats de notre nouveau système (système prédictif). Il sera question à la suite celui-ci de construire et implémenter notre algorithme qui permettra de classifier d'une manière automatique non seulement les clients éligibles au crédit mais aussi ceux qui ne le sont pas en temps réel grâce aux technologies Big Data qui sera basé sur le réseau de neurones qui est l'un des algorithmes du Data Mining.

IV. 1.1. Langages de programmation, SGBD et Éditeurs utilisés

Pour écrire les différents scripts et lignes de codes de notre application, nous avons fait recours aux différents outils suivants :

· Python et Jupyter Notebook (respectivement le langage de programmation et l'éditeur utilisés pour l'analyse et la prédiction) ;

· R et RStudio (respectivement le langage de programmation et l'éditeur utilisés pour l'intégration des données (ETL), mais aussi pour l'analyse et la prédiction) ;

· MongoDB (pour la partie Stockage de données (Serveur) ;

· Navicat Premium (pour la Visualisation de données du Dataset).

IV. 1.2. Bibliothèques (Modules (Python) ou packages (R) utilisés)

ü PyMongo, qui est une distribution Python contenant des outils permettant de travailler avec MongoDB. Il est recommandé de travailler avec MongoDB à partir de Python.

ü Pandas, qui est un module du langage de programmation Python permettant la manipulation et l'analyse des données. Cette bibliothèque propose en particulier des structures de données et des opérations de manipulation de tableaux numériques et de séries temporelles. 

ü NumPy, qui est une extension du langage de programmation Python, destinée à manipuler des matrices ou tableaux multidimensionnels ainsi que des fonctions mathématiques opérant sur ces tableaux.

ü nnet, qui est un package de langage de programmation R pour les réseaux de neurones avec une seule couche cachée et pour les modèles log-linéaires multinomiaux.

ü readxl, qui est un package permettant de lire un fichier Excel, de type .xls ou .xlsx dans un data frame R; il fournit une interface à la fonction read_excel dans le package readxl.

IV.1.3. Architecture Big Data intégrant les technologies utilisées

En terme d'architecture18(*) Big Data, pour notre projet ci-dessous nous montrons comment est-ce que les données sont récupérées depuis les différente plateformes via le protocole pour être mis dans une zone temporelle, par laquelle elles seront envoyées vers un espace de stockage des données non structuré où seront effectués les différentes analyses enfin de pouvoir visualiser les résultatsdes analyses pour faciliter la compréhension et le traitement.

Figure 4.24: Architecture Big Data intégrant les technologies utilisées.

IV.2. ANALYSE PREALABLE : PRESENTATION DE LA BANQUE COMMERCIALE DU CONGO

IV.2.1. Brève aperçue historique de la BCDC19(*)

À l'initiative des dirigeants de la banque d'outre-mer, institution Belge créée en 1899 en vue de développer des entreprises à l'étranger, nait en 1908 le projet de créer une banque au Congo.

Il n'existait aucune banque sur place lors de la cession à l'État belge des territoires de l'État indépendant du Congo, jusqu'alors propriétés du roi Léopold II.

ü L'année 1909 :

Le 11 janvier 1909, la banque du Congo belge voit le jour, son capital de 2 millions est entièrement souscrit par les principaux actionnaires suivants : la Banque d'outre-mer, la compagnie du Congo pour le commerce et l'industrie, le Baron Léon Lambert, la Banque de paris et de pays bas, FM Philip son et Cie. De nouveaux actionnaires font leur entrée au capital de 1 million de francs parmi lesquels la société Générale de Belgique et la société commerciale et financière.

ü L'année 1910 :

Quasi simultanément, la banque lance ses activités au Katanga pour ouvrir en 1910, une agence à Elisabethville (l'actuelle Lubumbashi), le 1er Août de la même année, l'agence de Léopold ville (aujourd'hui Kinshasa) ouvre ses guichets.

ü L'année 1911 :

En juillet 1911, la banque obtient une période de 25 ans le privilège d'émission qu'elle plus de 40 ans. Ce qui a occasionné la modification des statuts de la banque dont le champ d'activité de banque commerciale se fait réduit. Voit alors le jour la Banque Commerciale du Congo qui reprend les activités auxquelles la BCB doit renoncer.

ü Les années 1919-1928

Dans cette période d'après-guerre, la banque a connu un important essor que son capital est porté à 20 millions, soit 18 millions de plus comparativement à celui du démarrage en 1909.

En 1960 le Congo devient un État souverain. La Banque du Congo belge fait apport de ses activités européennes à la banque belgo Congolaise constituée le 14 avril à Bruxelles. Les deux établissements agissent dorénavant en qualité de correspondants et développent une collaboration étroite. Le 24 avril 1960 la banque du Congo belge prend officiellement la dénomination de la Banque du Congo.

ü Les années 70

La Banque du Congo change de dénomination sociale en novembre 1971 et devient Banque Commerciale du Zaïre. Dans le même temps, elle propose au gouvernement Zaïrois de porter la participation de l'État dans son capital social à celui que détient le groupe bancaire belge de la société Générale de Banque. Et ce 1975 que la banque commerciale du zaïre inaugure son siège au boulevard du 30 juin, après 5 ans de travaux, cela a apporté une nette amélioration du travail.

ü Depuis 2004...

Profitant de l'amélioration du climat sociopolitique et de l'embellie économique consécutive, la BCDC redéploye son réseau sur l'ensemble du territoire et adapte son organisation commerciale aux besoins de sa clientèle de particuliers, de PME/PMI, des grandes entreprises et institutionnels. Comme on peut le constater, la BCDC aujourd'hui est une banque de référence en RDC et active sur l'ensemble du territoire national, a maintenu le cap contre vents et marées. Elle a subsisté malgré les différentes situations sociale, politique et économique tragique qui ont émaillé l'histoire du pays.

IV.2.2. Objectifs & Missions de la BCDC20(*)

Comme établissement de crédit, la BCDC a pour mission principale d'effectuer les opérations de banque, c'est-à-dire la réception des fonds du public, les opérations de crédit ainsi que la gestion des moyens de payement.

Elle a pour mission secondaire :

ï Les opérations de change, l'achat et la vente des matières premières ;

La représentation, à titre de commissionnaire ou d'agent, de tout particulier, sociétés, administrations et établissement privés ou publics ; tous les actes et opérations pour compte des commettants.

Vue la situation socio-économique de la RDC, la BCDC s'est fixée plusieurs objectifs dont :

Ø Augmenter les opérations avec la clientèle, optimiser des possibilités du réseau et une politique très active de recouvrement des créances compromises,

Ø Renforcer sa position de banque de référence des opérations en monnaies étrangères dans le cadre de la relance de l'économie, notamment avec les organismes internationaux et de coopération ainsi qu'avec les entreprises,

Ø Développer et mettre en oeuvre les moyens techniques, humains et administratifs performant permettant l'amélioration des services,

Ø Respecter les normes de gestion prudentielles et la croissance des résultats,

Procéder à la restructuration des agences des territoires sortant de la guerre et réhabiliter celles à maintenir dans le réseau.

IV.2.3. Quelques directions de la BCDC21(*)

ü Direction des crédits

ü Direction de Kinshasa

ü Direction organisation et informatique

ü Direction des agences

ü Direction du sud

ü Direction commerciale

ü Direction private et retail banking

ü Direction finances et contrôle

ü Direction des risques

IV.2.4. Siège22(*)

Le siège social de la Banque Commerciale Du Congo est à Kinshasa en RDC, sur 856 Boulevard Du 30 Juin, 2798, dans la commune de la Gombe.

Figure 4.25:Logo de la BCDC.[www.bcdc.cd]

IV.2.5. Organigramme de la BCDC23(*)

Figure 4.26: Organigramme de la Banque Commerciale Du Congo.[Département Informatique et DSI]

IV.3. LE CHURN [3], [17]

IV.3.1. Notions

Le churn est un terme anglais24(*) qui désigne la perte de clientèle ou d'abonnés. Le terme équivalent au churn est celui d'attrition désignant également la perte de client, de substance ou d'autres éléments non forcément matériels. L'attrition est le contraire de la fidélisation ou de la rétention.

Le churn (de l'anglais to churn up, agiter) se traduit en français par attrition, exprime le taux de déperdition de clients pour une entreprise ou un produit.

Le phénomène est généralement mesuré par le taux d'attrition ou le churn rate. Ce taux d'attrition ou le churn rate est un indicateur qui permet de mesurer le phénomène de perte de clientèle ou d'abonnés. Il est le ratio (nombre de clients perdus/nombre de clients total) mesuré sur une période donnée qui est le plus souvent l'année25(*).

L'observation du taux d'attrition est une donnée très importante quand on connait l'impact de la fidélisation sur la rentabilité26(*).

A n'est pas confondre le churn avec le turn-over (La rotation de l'emploi en français ou renouvellement du personnel) qui est également un indicateur décrivant le rythme de renouvellement des effectifs dans une organisation27(*).

Le taux de churn représente donc le pourcentage de clients perdus, sur une période donnée (en général une année) par rapport au nombre total de clients au début de cette période.

À ce titre, le taux de churn est un indicateur majeur dans tous les secteurs où un contrat au long cours engage le client et le fournisseur. La banque aussi doit surveiller son taux de churn.

On parle également de mesures anti-churn ou de plan d'actions anti-churn, dont l'objectif est de réduire le taux de résiliation (est le fait de rompre les effets d'un contrat de prestation de service à partir d'une date donnée sans annuler ce qui a déjà été exécuté. Contrairement à la résolution qui efface les effets du contrat à son origine.). On y inclut les actions de fidélisation, de prévention, et de rétention :

ü Actions de fidélisation28(*) : elle vise à satisfaire le client, et lui donner envie de rester, sans pour autant qu'il soit lié contractuellement par une durée d'engagement.

ü Actions de prévention : réengager le client pour une nouvelle période, avant que sa période d'engagement en cours n'expire.

ü Actions de rétention : tenter de conserver un client qui souhaite résilier en lui proposant généralement des avantages qu'il n'aurait pas eu en temps normal.

En Churn, on dit que conquérir un prospect (est un client ou un fournisseur potentiel ou acquis) coûte beaucoup plus cher que de fidéliser un client.

IV.3.2. Définitions

Le phénomène churn peut se définir du pont vue les domainesd'applications tels que :

1. Du point de vue général

L'attrition29(*) désigne la perte30(*) de client, de substance ou d'autres éléments non forcément matériels.

2. Du point de vue quantitatif

L'attrition est la diminution naturelle d'une quantité de choses ou de personnes.

3. Du point de vue bancaire

L'attrition ou le churn est le fait qu'un client n'effectue plus les activités génératrices pendant un certain temps telles que le dépôt, retrait et transfert d'argent, utilisation de monnaie électronique, carte de débit etc. On parle souvent du candidat au churn c'est-à-dire le client voulait arriver au seuil du temps fixer pour être déclarer churner.

IV.4. Présentation des Outils utilisés[10], [11]

IV.4.1. Langages de programmation : Python et R[10]

a) Langage de programmationPython31(*)

Python est développé depuis 1989 par Guido van Rossum à Amsterdam et de nombreux contributeurs bénévoles. Sa première version fut publiée le 20 février 1991 et sa dernière version date du 18 mars 2019.

Python est un langage de programmation interprété. Son origine est le langage de script du système d'exploitation Amoeba. Donc Python est un langage de script de haut niveau portable et gratuit, doté d'un typage dynamique fort, d'une gestion automatique de la mémoire et d'un système de gestion des exceptions.

Depuis, Python est devenu un langage de programmation généraliste (comp.lang.python est créé en 1994). Il offre un environnement complet de développement comprenant un interpréteur performant et de nombreux modules. Un atout indéniable est sa disponibilité sur la grande majorité des plates-formes courantes (BeOS, Mac OS X, Unix, Windows). Python est un langage open source supporté, développé et utilisé par une large communauté : 300 000 utilisateurs et plus de 500 000 téléchargements par an.

v Caractéristiques32(*) du langage Python

Détaillons un peu les principales caractéristiques de Python, plus précisément, du langage.

· Python est portable, non seulement sur les différentes variantes d'UNiX, mais aussi sur les OS propriétaires : MacOS, BeOS, NeXTStep, MS-DOS et les différentes variantes de Windows. Un nouveau compilateur, baptisé JPython, est écrit en Java et génère du byte code Java.

· Python est gratuit, mais on peut l'utiliser sans restriction dans des projets commerciaux.

· Python convient aussi bien à des scripts d'une dizaine de lignes qu'à des projets complexes de plusieurs dizaines de milliers de lignes.

· La syntaxe de Python est très simple et, combinée à des types de données évolués (listes, dictionnaires,), conduit à des programmes à la fois très compacts et très lisibles. A fonctionnalités égales, un programme Python (abondamment commenté et présenté selon les canons standards) est souvent de 3 à 5 fois plus court qu'un programme C ou C++ (ou même Java) équivalent, ce qui représente en général un temps de développement de 5 à 10 fois plus court et une facilité de maintenance largement accrue.

· Python gère ses ressources (mémoire, descripteurs de fichiers...) sans intervention du programmeur, par un mécanisme de comptage de références (proche, mais différent, d'un garbage collector).

· Il n'y a pas de pointeurs explicites en Python.

· Python est (optionnellement) multi-threadé.

· Python est orienté-objet. Il supporte l'héritage multiple et la surcharge des opérateurs. Dans son modèle objets, et en reprenant la terminologie de C++, toutes les méthodes sont virtuelles.

· Python intègre, comme Java ou les versions récentes de C++, un système d'exceptions, qui permettent de simplifier considérablement la gestion des erreurs.

· Python est dynamique (l'interpréteur peut évaluer des chaînes de caractères représentant des expressions ou des instructions Python), orthogonal (un petit nombre de concepts suffit à engendrer des constructions très riches), réflectif (il supporte la méta programmation, par exemple la capacité pour un objet de se rajouter ou de s'enlever des attributs ou des méthodes, ou même de changer de classe en cours d'exécution) et introspectif (un grand nombre d'outils de développement, comme le debugger ou le profiler, sont implantés en Python lui-même).

· Comme Scheme ou SmallTalk, Python est dynamiquement typé. Tout objet manipulable par le programmeur possède un type bien définit à l'exécution, qui n'a pas besoin d'être déclaré à l'avance.

· Python possède actuellement deux implémentations. L'une, interprétée, dans laquelle les programmes Python sont compilés en instructions portables, puis exécutés par une machine virtuelle (comme pour Java, avec une différence importante : Java étant statiquement typé, il est beaucoup plus facile d'accélérer l'exécution d'un programme Java que d'un programme Python). L'autre, génère directement du bytecode Java.

· Python est extensible : comme Tcl ou Guile, on peut facilement l'interfacer avec des librairies C existantes. On peut aussi s'en servir comme d'un langage d'extension pour des systèmes logiciels complexes.

· La librairie standard de Python, et les paquetages contribués, donnent accès à une grande variété de services : chaînes de caractères et expressions régulières, services UNIX standard (fichiers, pipes, signaux, sockets, threads...), protocoles Internet (Web, News, FTP, CGI, HTML...), persistance et bases de données, interfaces graphiques.

· Python est un langage qui continue à évoluer, soutenu par une communauté d'utilisateurs enthousiastes et responsables, dont la plupart sont des supporters du logiciel libre. Parallèlement à l'interpréteur principal, écrit en C et maintenu par le créateur du langage, un deuxième interpréteur, écrit en Java, est en cours de développement.

Le langage de programmation python comme tout autre langage a un logo, on reconnait ce dernier par son logo ci-dessous :

Figure 4.27: Logo du langage de programmation python.

Figure 4.28: Installation Python.[Nous même]

Figure 29: Configuration Python.

b) Langage de programmation R33(*)

R est un logiciel libre permettant de traiter les données. Ce logiciel est un interpréteur permettant de programmer avec le langage de programmation S (On parle communément du langage R). Ce logiciel fait partie de projet GNU conçu dans les laboratoires Bell par John Chambers, un statisticien de l'université de Harvard avec l'aide de ses collègues.

Grâce à son panoplie des paquets (packages en anglais), le langage R est aujourd'hui un outil puissant pour aider dans plusieurs types d'applications, notamment la statistique multivariée (analyse des données), l'économétrie, la biométrie, l'épidémiologie, la modélisation, le traitement d'image, l'analyse des graphes, l'analyse numérique, le Data mining, le Big Data, et tant d'autres. De plus, il permet le graphisme de haute qualité.

Il sied de signaler que ces différents packages permettent aussi d'interagir directement R avec des systèmes de gestion de bases de données (cas de PostgreSQL via le langage PL/R et MySQL), avec des systèmes d'information géographique (cas de GRASS), ou ceux qui permettent d'exporter ses résultats en LATEX ou OpenDocument.

v Caractéristiques du langage R

L'utilisation de R est aussi motivée par les caractéristiques qu'il renferme. On peut citer quelques-unes d'entre elles :

· R est un logiciel libre.

· R est un langage de programmation multi-paradigme. Il est orientée-objet, impératif, fonctionnel et procédural.

· R est un langage de programmation multi plate-forme. Il est disponible sous GNU/Linux, Windows, NetBSD, FreeBSD et MacOS.

· R est un langage de programmation comportant en standard de très nombreuses fonctionnalités de calcul statistique ainsi que de représentation graphique.

· R est un langage de programmation comportant un bon nombre des librairies (open-source).

IV.4.2. Environnement de développement intégré (EDI)

Un environnement de développement « Intégré » (abrégé EDI en français ou en anglaisintegrated development environment (IDE34(*))), est un ensemble d'outils qui permet d'augmenter la productivité des programmeurs qui développent des logiciels. Il comporte un éditeur de texte destiné à la programmation, des fonctions qui permettent, par pression sur un bouton, de démarrer le compilateur ou l'éditeur de liens ainsi qu'un débogueur en ligne, qui permet d'exécuter ligne par ligne le programme en cours de construction. Certains environnements sont dédiés à un langage de programmation en particulier.

Dans le cadre de notre travail nous avons adopté pour les EDI Jupyter et RStudio.

Figure 4.30: Quelques IDE dédiés au langage de programmation Python.

IV.4.2.1.Jupyter[10]

Jupyter est une application web utilisée pour programmer dans plus de 40 langages de programmation, dont Python, Julia, Ruby, R, ou encore Scala.

Jupyter est une évolution du projet IPython. Jupyter permet de réaliser des calepins ou
notebooks , c'est-à-dire des programmes contenant à la fois du texte en markdown et du code en Julia, Python, R...

Ces notebooks sont utilisés en science des données pour explorer et analyser des données.

Jupyter s'appuie sur un noyau IPython pour Python 2, un noyau IPython pour Python 3, IRkernel, un noyau pour le langage R et un noyau pour le langage Julia, IPyLua, noyau pour le langage Lua, IRuby, noyau pour le langage Ruby, etc. Seuls les noyaux pour les langages Julia, Python, R et Scala sont maintenus par les développeurs principaux du projet, les autres sont développés par différentes communautés de développeurs. Jupyter peut être installé sur un ordinateur personnel. JupyterHub peut être installé sur un serveur et permet de définir des comptes utilisateurs.

Figure 4.31: Logo de l'environnement de développement intégré Jupyter-IDE.

IV.4.2.2. RStudio[11]

RStudio est un environnement de développement gratuit, libre et multiplateforme pour R35(*), un langage de programmation utilisé pour le traitement de données et l'analyse statistique. Il est disponible sous la licence libre AGPLv3, ou bien sous une licence commerciale, soumise à un abonnement annuel.

RStudio est disponible en deux versions : RStudio Desktop, pour une exécution locale du logiciel comme tout autre application, et RStudio Server qui, lancé sur un serveur Linux, permet d'accéder à RStudio par un navigateur web. Des distributions de RStudio Desktop sont disponibles pour Microsoft Windows, OS X et GNU/Linux.

RStudio a été écrit en langage C++, et son interface graphique utilise l'interface de programmation Qt36(*).

Depuis la version 1.0 sorti en novembre 2016 , RStudio intègre la possibilité d'écrire des notebooks combinant de manière interactive du code R, du texte mis en forme en markdown et des appels à du code Python37(*) ou Bash. Ci-dessous l'image de l'environnement de développement intégré dit Rstudio.

Figure 4.32: Logo de l'EDI RStudio.

Figure 4.33: Espace de travail pour l'environnement de développement intégré Rstudio version 3.4.

IV.4.3. Système de gestion de base de données : MongoDB[8], [9]

MongoDB vient du mot anglais humongous qui signifie « énorme ». Il est un SGBD faisant partie de la mouvance NoSQL qui n'est plus fondée sur l'architecture classique des bases relationnelles où l'unité logique n'y est plus la table, et les données ne sont en général pas manipulées avec SQL.

MongoDB est un Système de Gestion de Bases de Données orientées documents, répartissables sur un nombre quelconque d'ordinateurs (Scalabilité ou Scalability en anglais), à performance raisonnable et ne nécessitant pas de schéma prédéfini des données. Il est écrit en C++ et distribué sous licence AGPL et vise à fournir des fonctionnalités avancées.

IV. 4.3.1. Administration de Big Data sous le SGBD MongoDB38(*)

Selon Julian Browne, « Lead IT architect » au sein de la célèbre compagnie de télécommunications britannique O2, « Pour des raisons évidentes, il ne vaut vraiment pas la peine d'entreprendre un projet avec n'importe quel produit NoSQL, sauf si vous en avez besoin pour résoudre un problème ».

La technologie NoSQL répond à de nombreux problèmes, mais généralement elle répond à deux besoins c'est la gestion de gros volumes de données etla montée en charge. Si aucun de ces deux problèmes n'est identifié dans un domaine d'exploitation, il serait erroné d'adopter une solution NoSQL.

Le serveur MongoDB deviens plus facile à installer une fois télécharger depuis le site officiel, comme vous pouvez le constaté ci-dessous dans quelques étapes voici comment progresse l'installation du serveur MongoDB sous Windows :

Figure 4.34: Préparation de l'installation du serveur MongoDB.

Figure 4.35: Lancement de l'installation du serveur MongoDB.

Figure 4.36: Configuration du Serveur MongoDB.

À l'issue de la configuration du serveur nous commençons ici par l'alimentation de notre serveur. Pour ce faire, nous allons d'abord démarrer le serveur pour permettre aux modules clients de bien fonctionner. La figure ci-dessous, présente le démarrage du serveur MongoDB, qui écoute au port 27017 sur la machine locale, grâce à la commande « mongod.exe ».

Figure 4.37: Démarrage du Serveur MongoDB avec la commande mongod.exe [Serveur MongoDB]

Après avoir démarré le serveur, celui-ci est à l'attente d'une connexion cliente. Nous allons à présent nous connecter au serveur entant qu'un client grâce à la commande mongo.exe et créer une Base de données nommée « DB_ABONNES » qui va récupérer les données (documents) d'analyse provenant des sources variées, ces derniers (documents) seront stockés dans la collection « Customer ».

Figure 4.38: Création de la base de données.

IV.5. Présentation des données

L'ensemble de données exploitées pour l'implémentation et interprétation de résultats de notre modèle prédictif sont issues d'un environnement bancaire en se basant sur la réalité existante au sein de la Banque Commerciale Du Congo, sur la politique de gestion des clients précisément ceux qui souscrivent au crédit (un emprunt, ...). Eu égard à la réalité, nous avons donc constitué un ensemble de données servant à la simulation du dit modèle.

Reste à signaler que cet ensemble de données à simuler contiennent des enregistrements décrivant chacun les comportements des clients provenant desdifférentes sources des données. En fin dans cet ensemble de données, nous avons retenus quelques variables descriptives que nous synthétisons dans le tableau ci-dessous :

NOM VARIABLE

DESCRIPTION VARIABLE

TYPE

CHOIX

1

CUSTOMER_ID

Identifiant du client

Numérique

-

2

OLDNESS

Ancienneté client

Numérique

-

3

AVG_TRANSACT_MONTH

Transaction moyenne par mois du client

Numérique

-

4

AVG_TRANSACT_YEAR

Transaction moyenne par AN du client

Numérique

-

5

BALANCE_USD

Solde actuel du client en USD

Money

-

6

BALANCE_CDF

Solde actuel du client en CDF

Money

-

7

GENDER

Genre du client

Boolean

Homme or Femme

8

AGE

Age du client

Numérique

-

9

TYPE_COUNT

Type du compte client

Text

-

10

JOB

Profession du client

Text

-

11

OLDNESS_JOB

Ancienneté dans la profession

Numérique

-

12

ESTIMATED_SALARY_USD

Estimation Salaire en USD

Money

-

13

CLAIMS

Plaintes

Text

-

14

STATUT_CHURN

Statut churn du client

Text

 

Tableau 4.4: Dictionnaire des variables descriptives utilisées.

IV.5.1. Présentation des données existantes d'analyse

Étant donné que l'algorithme doit prédire sur base des données existantes, nous présentons quelques graphiques qui expriment les comportements des clients dans les différents cas c'est-à-dire les clients non actifs (churner) et les clients actifs (non churner). Autrement dit, nous présentons le deux classes (Churner et Non Churner) d'appartenance à laquelle seront classifier les nouveaux clients. Pour le statut d'un churner nous utiliserons1 « Oui », quant au statut du Non churner nous utiliserons tout simplement 0« Non ».

a) Présentation du statut churn selon les types de compte

Ci-dessous nous représentons en histogramme rouge, les clients qui ont churner ou perdus par rapport au compte ouvert au sein de la BCDC et en vert, les clients non churner (clients actifs)

Figure 4.39: Statut churn selon les types de compte.

b) Présentation du statut churn selon le sexe

Nous représentons dans le graphique ci-dessous en histogramme rouge, les clients churner et non churner selon le sexe, du coup le statut churn peut etre interprété par rapport aux couleurs : rouge pour les clients perdus et vert pour les clients actifs.

Figure 4.40: Statut churn selon le sexe.

c) Présentation du statut churn selon l'âge

Selon l'âge des clients, les clients actifs sont représentés en histogramme vert et en histogramme rouge les clients perdus.

Figure 4.41:Statut churn selon l'âge des clients.

d) Présentation du statut churn selon l'ancienneté

Selon l'ancienneté, les clients actifs sont représentés en histogramme vert et en histogramme rouge les clients perdus. Il sied de signaler que le graphique ci-dessous est réparti sur une période allant de 1 - 5 ans.

Figure 4.42: Statut churn selon l'ancienneté des clients dans l'institution.

e) Présentation du statut churn selon les réclamations ou plaintes

Plusieurs clients affichent un statut de churn d'où le churner. Par rapport aux plaintes nos résolues, la BCDC court un risque de perte de ses clients d'autant plus que la boite à suggestion ainsi que celle de réclamations ne sont pas régulièrement mise à jours. Ci-dessous voici le graphique reprenant en histogramme rouge les clients perdus quant à ce.

Figure 4.43: Statut churn selon les réclamations des clients.

f) Présentation du statut churn selon la profession

Selon la profession, l'institution peut également perdre ses clients, la BCDC n'est pas exclue. Ci-dessous voici le graphique reprenant les clients perdus en histogramme rouge, en histogramme vert, les clients fidélisés malgré leurs professions.

Figure 4.44: Statut churn selon la profession des clients.

g) Extrait de données d'apprentissage

Ci-dessous nous présentons l'extrait des données que nous allons s'en servir pour notre système prédictif.

Figure 4.45: Extrait de données d'apprentissage depuis MongoDB. Vue n°1 [Client Navicat Premium-MongoDB].

Figure 4.46: Extrait de données d'apprentissage depuis MongoDB. Vue n°2 [Client Navicat Premium-MongoDB].

Figure 4.47: Visualisation des données d'apprentissage.[RStudio]

IV.6. Implémentation et Analyse des résultats

1. Phase d'apprentissage

Notre problème étant l'analyse de churn, nous voulons ici évaluer le risque de départ d'un client en implémentant un modèle d'apprentissage en vue d'etablir un classement par rapport à un nouveau client s'il est churner ou pas.

Figure 4.48:Phase d'apprentissage pour le classement d'un nouveau client (individu).[RStudio]

À travers la figure ci-dessus figure nous avons importé le package « nnet » qui est une bibliothèque puissante pour la prédiction avec le réseau de neurones. Cette bibliothèque marche de pair avec la fonction « size » : ce dernier représente le nombre de la couche cachée.

Nota : La convergence et le temps d'exécution sont très rapides. Ce sont des caractéristiques fortes de ce package.

2. Phase de prédiction

a) Premier cas

Figure 4.49: Nouvel individu à prédire cas 1. [RStudio]

Ci-dessous le résultat de la prédiction, le vecteur « predict » contient la sortie de la fonction d'activation (Sigmoïde) du neurone de sortie. On binarise le resultat avec un seuil à 0.5 :

Code illustratif :

> nouvelIndividu_ <- data.frame(CUSTOMER_ID=11113129, OLDNESS=8, AVG_TRANSACT_MONTH=5, AVG_TRANSACT_YEAR=21, BALANCE_USD =1250, BALANCE_CDF=0, GENDER="Homme", AGE=32, TYPE_COUNT="Courant", JOB="Enseignant",OLDNESS_JOB=2, ESTIMATED_SALARY_USD=400, CLAIMS="FTC")

> Decision.neuralnet <- predict(model.neuralnet, newdata = nouvelIndividu_1)

> print(Decision.neuralnet)

Figure 4.50: Classement du nouvel individu premier cas (1).[RStudio]

Interprétation cas 1 :Après avoir exécuter les codes ci haut, nous remarquons que le résultat dans la figure 4.49, montre que le classifieur prédit le nouvel individu dans la classe 1 à un taux de 0.5292369. Donc cet individu présente un statut de « Churner ».

b) Deuxième cas

Figure 4.51: Nouvel individu à prédire deuxième cas (2). [RStudio].

Comme dans le cas précédent, le vecteur « predict » contient la sortie de la fonction d'activation (Sigmoïde) du neurone de sortie. On binarise toujours le resultat avec un seuil à 0.5 :

Code illustratif :

nouvelIndividu_4 <- data.frame(CUSTOMER_ID=10, OLDNESS=1, AVG_TRANSACT_MONTH=0, AVG_TRANSACT_YEAR=200, BALANCE_USD =6000, BALANCE_CDF=0, GENDER="Homme", AGE=70, TYPE_COUNT="Epargne", JOB="Professeur",OLDNESS_JOB=30, ESTIMATED_SALARY_USD=3000, CLAIMS="Lenteur")

> Decision.neuralnet <- predict(model.neuralnet, newdata = nouvelIndividu_4)

> print(Decision.neuralnet)

Figure 4.52: Classement du deuxième nouvel individu deuxième cas 2. [RStudio]

Interprétation cas 2 :Dans le second cas remarquons que le résultat dans la figure 4.51, le classifieur prédit le nouvel individu dans la classe 1 à un taux de 0.4831004. Ceci prouve que l'individu ne peut pas appartenir dans cette classe mais plutôt dans la classe 0 « NonChurner ».

CONCLUSION PARTIELLE

Au cours de ce dernier chapitre de notre travail intitulé implémentation et interprétation des résultats, nous avons eu à concevoir et à implémenter notre modèle de prédiction tout en commençant par une intégration de données qui étaient des sources plus variées et non structurées dans une base de données NoSQL orientées docuent (MongoDB) avec une importation d'un Dataset. Après cette intégration, nous avons également intégré d'autres outils Big Data tels que Navicat-premium, Jupyter RStudio pour les analyses et intégration des données. Ensuite, nous avons exporté notre Datasetvers excel pour la présentation des différents graphiques expriment les comportements des clients selon le cas des variables prédictives définies dans notre travail, d'une part.

D'autre part, nous avons eu à appliquer, à l'aide d'un Dataset, l'algorithme des réseaux de neurones pour pouvoir prédire le nouveau comportement des nouveaux individus. Bref, nous avons utilisé l'algorithme des réseaux de neurones de sorte que celui-ci puisse classifier d'une manière automatique la classe à laquelle appartiennent les nouveaux individus. Et enfin, nous avons interpréter le résultat.

CONCLUSION GENERALE

Nous voici à la fin de notre travail qui a consisté à la mise oeuvre d'un outil d'aide à la décision à temps réel. Le présent travail repose sur la construction d'un modèle prédictif à partir du Big Data basé sur l'administration d'un Big Data sous MongoDB et extraction de connaissance par réseau de neurones : application de l'analyse de churn dans une institution bancairequi nous a permis de prédire les risques de départ des clients.

Sur ce, pour atteindre nos fins, nous avons parlé des Big Data au premier chapitre. Au chapitre second, nous avons traité sur les SGBDs orientés document et MongoDB ; ici nous avons parlé des différentes bases des données NoSQL qui existent actuellement, MongoDB qui étaient d'ailleurs le noeud de notre question. Au chapitre troisième, on a parlé de fouille de données et réseau de neurones. En fin le quatrième et dernier chapitre, consacré à l'implémentation et interprétation de résultats. Dans ce dernier nous avons proposé les outils Big Data pour différentes analyses et les langages de programmation python et R, pour l'implémentation de notre système prédictif.

Sachant qu'il existe plusieurs technologies permettant de résoudre les problématiques, les bases de données NoSQL orientées-documents, nous nous sommes servi du système de gestion des bases des données orientées-documents de la firme MongoDB foundation, qu'on appelle MongoDB.

Comme tout oeuvre humaine, ce travail n'est pas scellé par un seau d'achèvement, nous osons croire que les différentes personnes qui auront l'opportunité de nous lire à travers celui-ci, les feront avec bienveillance, dévouement et voudrons bien apporter leurs suggestions et remarques en vue de permettre à la science d'évoluer à travers d'autres esprits curieux car l'informatique évolue du jour le jour dit-on.

BIBLIOGRAPHIE

I. OUVRAGES

1. BENSABAT Patrick, GAULTIER Didier, Livre blanc du Big Data au Big Business, Ed. Eyrolles, Paris, 2017.

2. CORNUÉJOLS Antoine, Apprentissage artificiel : Concepts et algorithmes, Ed. Eyrolles Deuxième tirage, Paris, 2003.

II. MEMOIRES

3. BALANGA Joe K., Apprentissage artificiel à partir le Big Data basé sur les supports vector (SVM), Mémoire de licence en Sciences, Département de Mathématique et Informatique, Faculté des Sciences, Université Pédagogique Nationale, 2016-2017.

4. KAMINGU Gradi L.,Base des données orientées-graphe : Migration du Relationnel vers le NoSQL, Mémoire de licence en Sciences Informatiques, Département deMathématique et Informatique, Faculté des Sciences, Université de Kinshasa, 2014-2015.

5. ILUNGA Hervé K., Extraction des connaissances dans un Big Data à l'aide des outils B.I pour l'analyse des ventes, Mémoire de licence en Sciences, Département de Mathématique et Informatique, Faculté des Sciences, Université Pédagogique Nationale, 2015-2016.

III. NOTES DE COURS, GUIDES ET SYLLABUS

6. BRUCHEZ Rudi, Les bases de données NoSQL et le Big Data, Ed. Eyrolles 2è édition, Paris, 2016.

7. DIKOUE, Approche de migration d'une base de données relationnelles vers une base, Guide du SGBDR et NoSQL, France, 2014-2015.

8. DRISSI Noureddine, MongoDB Administration, Support de formation MongoDB Administration, 2015.

9. FOUCRET A., NoSQL une nouvelle approche du stockage et la manipulation des données. Guide administration du Big Data, France, 2011.

10. KAMINGU Gradi L., Cours de Programmation en Python, Académie des Sciences et de Technologie, Kinshasa, 2018-2019.

11. KAMINGU Gradi L., Cours de programmation en R pour Économistes, Département d'Analyse des données et Recherche Opérationnelle, Laboratoire d'Analyse-Recherche en Économie Quantitative, 2015.

12. LAMBERGER Pirmin, BATTY Marc, Big Data et Machine Learning : Manuel du data Scientist,Ed. DUNOD, 5è rue Laromiguière, Paris,2015.

13. PREUX Philippe, Fouille de données, Notes de cours destiné aux étudiants de master, Informatique, Faculté des sciences,Université de Lille 3, 2009-2010.

14. TAFFAR Mokhtar,Initiation à l'apprentissageautomatique, Support de Cours destiné aux étudiants de Master en Intelligence Artificielle, Informatique, Faculté des sciences Exactes, Université de Jijel, Nantes, 2010.

IV. ARTICLES ET CONFERENCES

15. AL-AMRANI Yasine, « Algorithme de K-moyennes », Café scientifique, vol.1, pp.5-7, 2014.

16. FROIDEFOND Éric A., « Le Big Data dans l'assurance », travaux de l'Ecole Nationale d'Assurances, Paris, Mai 2018.

17. NDEYE Niang, "Big Data Seminar", Clustering, AIMS-Sénégal, vol.2, pp.7, Décembre 2016.

18. NDEYE Niang, "Big Data Seminar»,Introduction-Big Data Analystics fundementals, AIMS-Sénégal vol.1, pp.7-20, Décembre 2016.

19. TREGUIER V., « Très courte histoire du Big Data », Congres d'économétrie vol.3, pp.45, 2013-2014

V. SITES WEB, BLOGS, FORUMS

1. https://fr.m.wikipédia.org/wiki/Jupyter(11/09/2019)

2. https://www.mongodb.org(11/09/2019)

3. https://blog.mongodb.org(12/09/2019)

4. https://fr.m.wikipédia.org/wiki/Orange/Data-mining(02/08/2019)

5. https://fr.m.wikipédia.org/wiki/Anaconda(05/08/2019)

6. https://fr.m.wikipédia.org/wiki/Rstudio(18/07/2019)

7. http://www.decideo.fr/bruley/(13/10/2019)

8. http://www.wikipédia.com(16/06/2019)

9. http://www.grappa.univ-lille3.fr(15/09/2019)

10. http://www.asterdata.com/product/faq.php(22/08/2019)

11. http://www.axiodis.com(16/07/2019)

12. http://www.enass.fr(04/07/2019)

13. www.reportingbusiness.fr(17/07/2019)

14. www.ledicodumarketing.fr(10/10/2019)

15. https://fr.m.wikipédia.org/wiki(11/10/2019)

16. www.definitions-marketing.com(13/10/2019)

17. www.e-marketing.fr(10/10/2019)

18. www.inetrnaute.com(12/09/2019)

19. https://fr.mailjet.com(06/10/2019)

20. www.marketing-etudiant.fr/memoires(15/05/2019

21. www.custup.com/calcul-attrition-portefeuille-abonnes(26/09/2019)

22. www.1min30.com/dictionnaire-du-web/churn-rate-taux-attrition(22/09/2019)

23. www.memoireonline.com(22/09/2019)

24. https://www.businessdecision-university.com/datas(18/07/2019)

25. www.datacamp.com/community/(18/08/2019)

26. http://en.wikipedia.org/wiki/Nosql(05/09/2019)

27. http://en.wikipedia.org/wiki/Nosql-oriented-document(05/09/2019)

28. http://en.wikipedia.org/wiki/Big Data/aspect (03/08/2019)

TABLE DES MATIERES

IN MEMORIAM i

ÉPIGRAPHE ii

DÉDICACE iii

REMERCIEMENTS iv

AVANT-PROPOS vi

LISTE DES ABRÉVIATIONS UTILISÉES vii

LISTE DES FIGURES viii

LISTE DES TABLEAUX x

INTRODUCTION GENERALE 1

1. CONTEXTE 1

2. PROBLEMATIQUE 2

3. HYPOTHESE 3

4. CHOIX ET INTERET DU SUJET 3

4.1. Choix du sujet 3

4.2. Intérêt du sujet 3

5. METHODES ET TECHNIQUES UTILISEES 4

5.1. Méthodes 4

5.2. Techniques 4

6. SUBDIVISION DU TRAVAIL 4

CHAPITRE I: BIG DATA [1], [6], [12], [16], [19] 5

I.1. INTRODUCTION 5

I.2. APERÇU HISTORIQUE 6

I.3. PRESENTATION DE L'ASPECTS BIG DATA 7

I.4. OBJECTIFS 8

I.5. CARACTERISTIQUES 9

I.6. DEFINITION DU BIG DATA 10

I.6.1. Première définition de Big Data 10

I.6.2. Deuxième définition de Big Data 11

I.7. TYPES DES DONNEES DU BIG DATA 11

I.7.1. Données structurées 11

I.7.2. Données non structurées 12

I.8. TECHNIQUES D'ANALYSE ET DE VISUALISATION DU BIG DATA 12

I.8.1. Visualisation 13

I.9. DIFFERENCES AVEC L'INFORMATIQUE TRADITIONNELLE OU DECISIONNELLE 13

I.10. BIG DATA ET SES TECHNOLOGIES 14

I.10.1. Solutions de stockage 14

I.10.1.1. Bases des Données NoSQL 15

1) Théorème du CAP (d'Eric Brewer) 15

2) Principes ACID et BASE 16

3) Critères de Migration vers le principe CAP NoSQL 18

I.11. TYPES DE BASE DE DONNEES NoSQL 19

I.11.1. Bases de données orientées-document 19

I.11.2. Bases de données orientées-colonne 20

I.11.3. Bases de données orientées-graphe 20

I.11.4. Bases de données orientées-clé-valeur 21

4) Outils MapReduce et Hadoop 23

a) MapReduce 23

b) Hadoop 24

I.12. SOLUTIONS LOGICIELLES 24

I.12.1. Moteurs Sémantiques (Text Mining) 24

I.12.2. Solutions d'Analytiques 24

I.12.3. Solutions matérielles et/ou architecturales 25

I.12.3.1. Cloud Computing 25

I.12.3.2. Super Calculateurs Hybrides (HPC : High Performance Computing) 26

I.12.3.3. Stockage des Données en Mémoire : 26

I.12.3.4. Serveurs des Traitements Distribués : 26

I.13. CHOIX DU BIG DATA [1] 26

I.13.1. Big Data et recrutement 26

I.13.2. Métiers du Big Data 27

CONCLUSION PARTIELLE 28

CHAPITRE II : SYSTÈME DE GESTION DE BASE DE DONNEES ORIENTE DOCUMENT ET MONGODB [7],[9] 29

II.1. SGBD ORIENTE DOCUMENT 29

II.1.1. Introduction 29

II.1.2. Définition 29

II.1.3. Types de modèle de SGBD NoSQL [7] 30

II.1.4. Comparaison des outils de gestion des BD NoSQL 30

II. 2. MongoDB 31

II.2.1. Présentation 31

II.2.2. Schéma 32

II.2.2.1. Document 32

II.2.2.2. Collection 32

II.2.2.3. Documents intégrés 33

II.2.3. Caractéristiques 33

II.2.4. Structure des données 33

II.2.5. Stockage des objets larges 34

II.2.6. Traitement des données 35

II.2.7. Mise en oeuvre 35

II.2.7. Installation 35

II.2.7.2. Invite interactive 35

II.2.7.3. Programmation cliente 36

II.2.7.4. Administration 36

II.2.7.5. Sécurité 37

II.2.7.6. Réplication 37

II.2.7.7. Répartition (sharding) 37

CONCLUSION PARTIELLE 38

CHAPITRE III : FOUILLE DE DONNEES ET RESEAUX DE NEURONES [13], [14], [18] 39

III. 1. FOUILLE DE DONNEES 39

III.1.1. Présentation 39

III.1.2. Objectifs de la Fouille de données 39

III.1.3. Méthodes (Algorithmes) de Fouille de données 40

III.1.4. Concepts de base de Fouille de données 43

III.2. ALGORITHME DE -MEANS [2], [15] 45

III.2.1. Introduction 45

III.2.2. Théorème de Hyugens 46

III.2.3. Principe général des méthodes des centres mobiles 46

III.2.4. Déroulement de l'algorithme 47

III.3. RESEAUX DE NEURONES 48

III.3.1. Historique 48

III.3.2. Présentation des réseaux de neurones 49

III.3.3. Neurone biologique 50

III.2.4. Structure du réseau de neurones 51

III.3.5. Réseaux de neurones artificiels (RNA) 52

III.3.5.1. Quelques définitions sur le RNA 52

III.3.5.2. Comportement du neurone artificiel 54

III.3.6. Neurone formel 55

III.3.7. Sortes de réseau de neurones 56

III.3.8. Topologie d'un réseau de neurones 56

III.4. APPRENTISSAGE DES RESEAUX DE NEURONES 59

III.4.1. Algorithmes d'apprentissage 61

III.4.1.1. Algorithme de HEBB 62

III.4.1.2. Algorithme d'apprentissage du perceptron 62

III.4.1.3. Algorithme de propagation de gradient pour un perceptron 63

CONCLUSION PARTIELLE 64

CHAPITRE IV : IMPLEMENTATION ET INTERPRETATION DE RESULTATS [3], [4], [5], [6] 65

IV.1. INTRODUCTION 65

IV.2. ANALYSE PREALABLE : PRESENTATION DE LA BANQUE COMMERCIALE DU CONGO 66

IV.2.1. Brève aperçue historique de la BCDC 66

IV.2.2. Objectifs & Missions de la BCDC 68

IV.2.3. Quelques directions de la BCDC 68

IV.2.4. Siège 69

IV.2.5. Organigramme de la BCDC 69

IV.3. LE CHURN [3], [17] 70

IV.3.1. Notions 70

IV.3.2. Définitions 71

IV.4. Présentation des Outils utilisés [10], [11] 71

IV.4.1. Langages de programmation : Python et R [10] 71

IV.4.2. Environnement de développement intégré (EDI) 75

IV.4.2.1. Jupyter [10] 76

IV.4.2.2. RStudio [11] 77

IV.4.3. Système de gestion de base de données : MongoDB [8], [9] 78

IV. 4.3.1. Administration de Big Data sous le SGBD MongoDB 78

IV.5. Présentation des données 81

IV.5.1. Présentation des données existantes d'analyse 81

IV.6. Implémentation et Analyse des résultats 85

1. Phase d'apprentissage 85

2. Phase de prédiction 86

CONCLUSION PARTIELLE 85

CONCLUSION GENERALE 86

BIBLIOGRAPHIE 87

TABLE DES MATIERES 89

* 1Traduction française : « La plupart des connaissances dans le monde à venir vont être extraites par des machines et résideront dans des machines ».

* 2 http://en.wikipedia.org/wiki/Big Data/aspect

* 3Ceci d'autant plus que les Big data impliquent de nouvelles formes de raisonnements, qui embrassent notamment les formes de raisonnements inductifs. On peut sans grand risque parler des Big data comme d'une nouvelle philosophie et une nouvelle façon de penser le marketing.

* 4Pour la paternité des 3V et les nombreux prétendants à leur invention, voir l'article de Doug Laney : « Deja VVVu: Others Claiming Gartner's Construct for Big Data » : http://blogs.gartner.com/doug-laney/deja-vvvue-others-claiming-gartners-volume-velocity-variety-construct-for-big-data

* 5Il est à noter cependant que des progrès notables restent à faire dans le domaine de l'exploitation de ces données multimédia.

* 6Exemples de données semi structurées : messages mail, log etc.) ; et non structurées : photo, vidéo, son.

* 7IaaS : Infrastructure as a Service, c'est-à-dire la capacité d'acheter de l'infrastructure déportée et de la consommer à la demande, de la même manière que ce que l'on fait pour les logiciels SaaS (Software as a Service).

* 8BENSABAT Patrick, 2017 Op cit.

* 9 KAMINGU Gradi L., 2014 Op cit.

* 10Le théorème d'une conjecture d'Eric Brewer, informaticien, de l'Université de Californie à Berkeley lors du Symposium sur les principes de l'informatique distribuée (Symposium on Principles of Distributed Computing (PODC)). En 2002, Seth Gilbert et Nancy Lynch du MIT ont publié une preuve formelle de la vérifiabilité de la conjecture de Brewer et en ont fait un théorème établi.

* 11KAMINGU Gradi L., 2014 Op cit.

* 12KAMINGU Gradi L., 2014 Op cit.

* 13Framework logiciel : est un ensemble méthodologique et d'outillage lié à un langage de programmation. Cf. http://fr.wikipedia.org/wiki/Framework

* 14Patrick Bensabat et Didier Gaultier, Du Big Data au Business, phénomène de mode facteur de performance.

* 15Éric Alain FROIDEFOND, Le Big Data dans l'assurance, travaux de l'Ecole Nationale d'Assurances.

* 16 KITONDUA L.N.N Richard : Intelligence artificiel et systèmes d'aide, Note de cours L1 CSI/UPN, 2015-2016, inédit.

* 17 Antoine Cornuéjols, Une Introduction à l'apprentissage artificiel, Tom Mitchell, 2006.

* 18ILUNGA KAYEMBE Hervé : Extraction des connaissances dans un Big Data à l'aide des outils B.I pour l'analyse des vents. Cas de canal plus, Mémoire de licence, UPN, Faculté des sciences, Département Math-Info, septembre 2016.

* 19 www.bcdc.cd/ historique

* 20 www.bcdc.cd /mission

* 21 www.bcdc.cd/a propos

* 22 www.bcdc.cd/ localisation

* 23 Organigramme de la Banque Commerciale Du Congo depuis 2014.

* 24 www.definitions-marketing.com/definition/churn/

* 25www.wikipédia.com

* 26www.definitions-marketing.com

* 27www.wikipédia.com

* 28 www.definitions-marketing.com/glossaire/fidelisation-crm-crc/

* 29 www.definitions-marketing.com/definition/attrition/

* 30www.custup.com/calcul-attrition-portefeuille-abonnes/

* 31 KAMINGU Gradi. L., Cours de Programmation en Python, Académie des Sciences et de Technologie, 2018-2019.

* 32 https://fr.wikipedia.org/wiki/Python_(langage)/Caracteristiques

* 33 KAMINGU, G. L., Guide de Programmation R pour Économistes, Laboratoire d'Analyse-Recherche en Économie Quantitative, 2017, inédit.

* 34Traduction française de IDE : Environnement de Développement Intégré : Éditeur des codes et scripts pour le langages de programmation.

* 35R est un langage de programmation et un logiciel libre destiné aux statistiques et à la science des données soutenu par la R Foundation for Statistical Computing.

* 36Une API orientée objet et développée en C++, conjointement par The Qt Company et Qt Project.

* 37Un langage de programmation interprété, multi- paradigme et multiplateformes.

* 38 Noureddine DRISSI, Guide MongoDB, Administration,2019, inédit.






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Je voudrais vivre pour étudier, non pas étudier pour vivre"   Francis Bacon