Cours
Cours
AU 2024-2025
1 2
3 4
1
17/02/2025
Introduction Introduction
Motivation: Le besoin crée l’invention Motivation: Le besoin crée l’invention
5 6
Introduction Introduction
Motivation: Le besoin crée l’invention Motivation: Le besoin crée l’invention
Problème de l’explosion de données: Développement des TICs Problème de l’explosion de données: Développement des TICs
7 8
2
17/02/2025
Introduction Introduction
Motivation: Le besoin crée l’invention Motivation: Le besoin crée l’invention
Métaphore
Problème de l’explosion de données: Développement des TICs
•Trop de données...
– Paradoxe : trop données mais pas assez d’informations
9 10
- Depuis plus de 50 ans, beaucoup de disciplines se sont développées • 1990 : entrepôts de données, …
11 12
3
17/02/2025
13 14
15 16
4
17/02/2025
⇒ Extraire de la connaissance à partir de grandes bases de données devient possible ▶ Bases de données relationnelles.
▶ Entrepôt de données
▶ Base de données transactionnelles.
▶ Données de type document
▶ Données sous forme de graphe
▶ Base de données multimédia
17 18
Le processus KDD
Le processus KDD
1-«Focussing»
2- « Pré-traitement »
• Gestion des données • Le pré-traitement des données est souvent la tâche la plus coûteuse dans le
• Système de fichiers ou SGBD ? processus KDD!
• Sélection des données pertinentes
Ex. : considérer les 100 000 clients les plus importants et tous
leurs appels sur l’année 2019
19 20
5
17/02/2025
21 22
23 24
6
17/02/2025
Les données
Data Mining: Données, information, connaissance Dans le domaine de la gestion et de la finance, de très nombreuses données
(informations), de types très variés, peuvent être relevées:
• nombre de ventes par mois d’un commercial,
• prix d’achat d’une matière première au cours du temps,
• bénéfices d’une société sur plusieurs exercices,
• préférences d’achat de consommateurs,
• avis de clients sur des produits à commercialiser,
• indicateurs de performance de plusieurs entreprises, à un instant T ou au cours du
temps...
Les données brutes sont en général peu aisées d’interprétation directe: ce sont de
"gros" tableaux remplis de "chiffres"....
C’est pour ces besoins que sont mis en œuvre les outils d’analyse de données
7
17/02/2025
Attribut - valeur
▶ La valeur d’un attribut est un nombre ou
un symbole.
▶ Ne pas confondre attribut et valeur
8
17/02/2025
- Méthode de régression linéaire: prédire la valeur future d’un attribut en fonction - génomique : gènes, patients,
- Méthodes de segmentation : former des groupes homogènes à l’intérieur d’une -fichiers clients
- Méthodes factorielles : réduire le nombre de variables en les résumant par un petit -Achats
34
Données?
Information?
Connaissance?
36
9
17/02/2025
39 40
10
17/02/2025
• Customer
• But : partitionner les consommateurs par rapport à leurs achats
• Motivation :
- product packages
- établir une nouvelle politique tarifaire
• Problème : 50% des clients de Dell achètent leurs machines à travers le site
Web. Mais seulement 0.5% des visiteurs du site deviennent clients.
41 42
11
17/02/2025
45 46
Classification
– Arbres de décision
– Classification bayésienne
– Réseaux neuronaux
– Méthodes SVM (support vector machine)
– Régression
– …
47 48
12
17/02/2025
49 50
Logiciels libres
-R
-Weka ;
- RapidMiner ;
- Orange ;
- SIPINA/Tanagra. Chapitre 2: Modèle de règles
d’association
dans les bases de données
51 52
13
17/02/2025
Règles d’association
La règle utile contenant des informations de qualité qui peuvent être mises en
L’idée principale: la recherche des régularités dans les BD pratique
Objectifs : Exemples :
Transcrire la connaissance sous forme de règle d’association - le samedi, les clients des épiceries achètent en même temps de la bière et des
Utiles : Aide à la décision couches
Efficaces : Algorithmes de recherche - SI achat de riz + vin blanc ALORS achat de poisson (avec une grande probabilité)
Utilité des règles et exemple Résultats inexplicables difficiles à situer et donc à expliquer
- Dans une base de données découvrir des règles de la forme: Exemple :
“95% des étudiants qui ont suivi un cours de géographie et un cours d’histoire lors de l'ouverture d'une quincaillerie, parmi les articles les plus vendus on trouve
économique ont également suivi un cours de droit” les abattants de toilette.
Application typique:
- Détection de corrélations entre descripteurs dans des ensembles de données
Analyser les transactions d’achats des utilisateurs pour dégager les habitudes
Exemple:
Découverte d’associations et de corrélations entre les articles achetés par les d’achat des clients
- Disposition des produits dans le magasin
clients en analysant les achats effectués (panier)
- Quels produits mettre en promotion, gestion de stock, …
53 54
Etant donnée :
•Une base de données de transactions de clients, où chaque transaction est
représentée par un ensemble d’articles -set of items- (ex., produits)
Trouver :
55
•Groupes d’articles (itemset) achetés fréquemment (ensemble) 56
14
17/02/2025
Commentaires:
>> Une observation = Un caddie
>> Ne tenir compte que de la présence des
produits (pas de leur quantité)
>> Nombre variable de produits dans un
caddie
>> La liste des produits est immense ! On cherche des relations entre les mots d'un corpus sous forme de règles :
si les mots x1; : : : ; xm apparaissent dans un texte alors les mots xm+1; : : : ; xn
apparaissent aussi dans le texte
Autre représentation des données de transactions
Données transactionnelles
Données transactionnelles
Exemple1:
Notation ou formalisation du problème
Etant donnés :
(1) une liste d’items I(Ex: item = produit)
(2) une base D de transactions où chaque transaction T est un ensemble d’items
59 60
15
17/02/2025
•“SI achète couches ALORS achète bière dans 60% de cas. Les couches et la bière
sont tous deux achetés dans 0.5% des transactions de la base de données."
61 62
R1 : Si p1 alors p2
1:
2:
3:
4:
RQ:« Bonne » règle = règle avec un support et une confiance élevée
63 64
16
17/02/2025
Exemple:
Soit A={I1,I2}, B={I3} Constructions des règles d’association
Schéma algorithmique de base
Règle: A=>B?
65 66
L’algorithme APRIORI
Principe : générer seulement les candidats pour lesquels tous les sous-ensembles
ont été déterminés fréquents
- Génération des candidats réalisée avant et de manière séparée de l'étape de
comptage
67 68
17
17/02/2025
70
71 72
18
17/02/2025
Min_sup=2/9 (min_freq=2)
73
19
10/03/2025
BD Nosql
Introduction
Depuis les années 70, la BD relationnelle était l'incontournable référence pour gérer les
données d'un système d'information.
Comment gérer une énorme base de données et comment l'interroger efficacement ?
Ces questions, on se les pose dès que le volume devient ingérable et que répondre à
de simples requêtes prend des heures.
Oubliez les SGBD traditionnels, ils peinent à passer à l'échelle ! Vous devez être
capable de choisir la bonne solution parmi les dizaines qui s'offrent à vous.
- "Not Only SQL". Cette approche propose de relâcher certaines contraintes lourdes du
relationnel pour favoriser la distribution
1
10/03/2025
-IL est préférable d'avoir un langage de haut niveau pour interroger les données plutôt que
tout exprimer en Map/Reduce
- le NoSQL est à la fois une autre manière d'interroger les données, mais aussi de les
stocker.
Les clés-valeurs
Un système clé-valeur agit comme une énorme table de hachage distribuée sur le réseau
La clé identifie la donnée de manière unique et permet de la gérer. La valeur contient
n'importe quel type de données.
Stockage Clé/Valeur
2
10/03/2025
3
10/03/2025
- BigTable (Google)
- HBase (Apache Hadoop)
- Spark SQL (Apache)
- Elasticsearch (elastic) -> moteur de recherche
Exemples d'applications :
-Comptage (vote en ligne, compteur, e etc),
-recherche de produits dans une catégorie.
La gestion de documents
Solution: Les bases orientées documents ressemblent sans doute le plus à ce que l'on peut
faire dans une base de données classique pour des requêtes complexes.
Le but : de ce stockage est de manipuler des documents contenant des informations avec
une structure complexe (types, listes, imbrications). Il repose sur le principe du clé/valeur,
mais avec une extension sur les champs qui composent ce document.
4
10/03/2025
Avantage
MongoDB (MongoDB) : ADP, Adobe, Bosch, Cisco, eBay, Electronic Arts, Expedia,
Foursquare
CouchBase (Apache) : AOL, AT&T, Comcast, Disney, PayPal, Ryanair
DynamoDB (Amazon) : BMW, Dropcam, Duolingo, Supercell, Zynga
Cassandra (Facebook -) : NY Times, eBay, Sky, Pearson Education
Exemples d'utilisation :
5
10/03/2025
6
10/03/2025
Passez à l'échelle
La distribution
le but de la distribution est de soulager le serveur central en répartissant les données sur
plusieurs serveurs.
Les bases de données distribuées ne sont pas tolérantes aux pannes, la disponibilité est
problématique en termes de synchronisation multi-serveurs, et il n’y a pas de techniques
pour permettre l’élasticité de la base de données.
L’élasticité
C’est la capacité du système à s’adapter automatiquement en fonction du nombre de
serveurs qu’il dispose et de la quantité de données à répartir.
7
10/03/2025
Le sharding
Le sharding est une technique permettant de distribuer des chunks sur un ensemble de
serveurs, avec la capacité de gérer l’élasticité (serveurs/données) et la tolérance aux
pannes.
Replicatset et sharding
Comment résoudre le problème de la tolérance aux pannes?
MongoDB utilise pour cela une architecture basée sur le principe « M/E».
Réplication en MongoDB
Assure le redondance et augmente la disponibilité des données.
offre un niveau de tolérance aux pannes contre la perte d’un seul serveur de base de
données.
Un réplicatset est un groupe d’instance mongod qui conservent le même jeu de données.
Un replicaSet contient plusieurs nœuds porteurs de données:
Parmi ces nœuds un seul membres est considéré comme le nœud principal et l’autre
secondaire
8
10/03/2025
L’architecture du ReplicaSet
Le serveur primaire "Primary", à qui toutes les requêtes sont envoyées (lecture/écriture),
va s’occuper de gérer la cohérence des données.
Les serveurs secondaires: sont utilisés dans le processus de réplication des données lors
d'une mise à jour."
9
10/03/2025
sharding
Le fait de disposer des mêmes données sur plusieurs serveurs par réplication :implique
la copie de toute la collection sur tous les serveurs.
Lorsqu’une application croît et que le serveur initial n’est plus suffisamment puissant
pour répondre aux sollicitations des utilisateurs, la première option est d’envisager
un scaling vertical.
=>pas une méthode applicable à grande échelle
Ouvre également la voie à la distribution de la charge (en recherche, en insertion) et
donc à la sociabilité.
10
18/03/2025
Origine d’Hadoop
● 2002: Doug Cutting développe Nutch, un moteur de recherche Open Source exploitant le calcul distribué :
l'implémentation peut tourner seulement sur quelques machines et a de multiples problèmes, notamment
en ce qui concerne l'accès et le partage de fichiers.
● 2003/2004: le département de recherche de Google publie deux articles, le premier sur GFS (un système de
fichier distribué Google File System) et le second sur le paradigme Map/Reduce pour le calcul distribué.
● 2004: Doug Cutting développe framework (encore assez primitif) inspiré des papers de Google et porte le
projet Nutch sur ce framework.
● 2006: Doug Cutting (désormais chez Yahoo) est en charge d'améliorer l'indexation du moteur de recherche
de Yahoo. Il exploite le framework réalisé précédemment...
1
18/03/2025
Origine d’Hadoop
● … et créé une nouvelle version améliorée du framework en tant que projet Open Source de la fondation
Apache, qu'il nomme Hadoop (le nom d'un éléphant en peluche de son fils).
● A l'époque, Hadoop est encore largement en développement – un cluster pouvait alors comporter au
maximum 5 à 20 machines, etc.
● 2008 : le développement est maintenant très abouti, et Hadoop est exploité par le moteur de recherche de
Yahoo-‐ ainsi que par de nombreuses autres divisions de l'entreprise.
2
18/03/2025
Hadoop aujourd’hui
● Plusieurs distributions d’Hadoop disponibles – dont celle de
Cloudera (CDH), celle d’Hortonworks (HDP) et MapR
● Hadoop pénètre de plus en plus les entreprises – tout secteur
d’activité (ex banque : HSBC, ING, Crédit Mutuel, …) – avec
l’argument d’un excellent équilibre coût / performance / stockage
/ flexibilité
● Le monde académique utilise aussi Hadoop : MIT, Berkeley, …
● Dans ce contexte, les éditeurs classiques intègrent aussi Hadoop
dans leur offre – comme IBM, Microsoft et Teradata
● Facebook a le plus gros cluster au monde ( en 2010, 40 PB)
● Criteo a le plus gros cluster Hadoop en europe (1200 serveurs / 39
PB)
L’équation Hadoop
Hadoop = excellent équilibre coût / performance / stockage / flexibilité
3
18/03/2025
Map Reduce
Pour pouvoir traiter un grand volume de données sur un cluster de machines, il
faut découper le problème en plusieurs problèmes de taille réduite à exécuter
sur différentes machines (stratégie « diviser pour régner »).
De multiples approches existent et ont existé pour cette division d'un problème
en plusieurs « sous-tâches ».
Map Reduce
Le modèle MapReduce préconise deux opérations distinctes:
● Map () : transforme les données d'entrée en une série de couples
clef/valeur. Cette opération doit être parallélisable: on doit pouvoir
découper les données d'entrée en plusieurs fragments, et faire exécuter
l'opération MAP à chaque machine du cluster sur un fragment distinct.
● Reduce () : applique un traitement à toutes les valeurs de chacune des clefs
distinctes produite par l'opération MAP. Chaque machine du cluster recevra
une des clefs uniques produites par MAP, accompagnées de la liste des
valeurs associées à la clef. Chaque machine effectuera alors l'opération
REDUCE pour cette clef et les valeurs associées.
4
18/03/2025
Map Reduce
Les 4 étapes du traitement MapReduce :
● Split: les données en entrée sont découpées en plusieurs fragments
● Mapper: l’opération Map est appliquée sur chacun de ces fragments afin
d’obtenir les couples (clef;valeur)
● Shuffle: les couples (clef;valeur) sont groupés par clef
Notre problème est ici très simple – on peut par exemple décider de découper
les données d'entrée ligne par ligne. Chacune des lignes du texte sera un
fragment de nos données d'entrée.
5
18/03/2025
Pour simplifier les choses, avant le découpage, nous allons supprimer toute
ponctuation et les caractères accentués. Nous allons également passer
l'intégralité du texte en minuscules.
6
18/03/2025
Puisqu'on s'intéresse aux occurrences des mots dans le texte, et qu'à terme on
aura après l'opération REDUCE un résultat pour chacune des clefs distinctes, la
clef qui s'impose logiquement dans notre cas est: le mot-lui même.
Quand à notre opération MAP, elle sera elle aussi simple: nous allons
simplement parcourir le fragment qui nous est fourni et, pour chacun des
mots, générer le couple clef/valeur: (MOT ; 1). La valeur indique ici l’occurrence
pour cette clef - puisqu'on a croisé le mot une fois, on lui donne la valeur « 1 ».
7
18/03/2025
Une fois notre opération MAP effectuée (de manière distribuée), Hadoop groupera (shuffle) tous les couples par
clef commune.
Cette opération est effectuée automatiquement par Hadoop. Elle est, là aussi, effectuée de manière distribuée en
utilisant un algorithme de tri distribué, de manière récursive. Après son exécution, on obtiendra les 15 groupes
suivants:
Il nous reste à créer notre opération REDUCE, qui sera appelée pour chacun des
groupes/clef distincte.
Dans notre cas, elle va simplement consister à additionner toutes les valeurs
liées à la clef spécifiée:
8
18/03/2025
9
18/03/2025
Conclusion
L’intérêt du modèle MapReduce est qu'il nous suffit de développer les deux opérations
réellement importantes du traitement: MAP et REDUCE, et de bénéficier automatiquement
de la possibilité d'effectuer le traitement sur un nombre variable de machines de manière
distribuée.
10
18/03/2025
11
18/03/2025
12
18/03/2025
Ecosystème Hadoop
13
18/03/2025
HDFS
● HDFS = Hadoop Distributed File System
● Principales caractéristiques :
14
18/03/2025
HDFS
● Dans HDFS, les données sont découpées en « blocks » - 128Mo par défaut
15
18/03/2025
16
18/03/2025
hdfs dfs -cat fichier_sur_hdfs ⇒ afficher le contenu d'un fichier sur HDFS
17
18/03/2025
18
18/03/2025
1
18/03/2025
2
18/03/2025
Min_sup=2/9 (min_freq=2)
Exemple:
Supposons que la table Transaction(Tid, Item). On a :
107 transactions et l’on a 105 items différents.
En moyenne chaque transaction concerne 10 items.
C 45
10
Pour chaque transaction on a paires à regarder ainsi la jointure a 45*107
2
tuples
Remarque: si {item_1} n’est pas fréquent alors certainement la paire {item_1,
item_i} ne l’est pas.
Considérons la requête si seuil = 0,01
Pour qu’un item soit fréquent il faut qu’il apparaisse 0,01 * 107 =105 fois.
3
18/03/2025
Problèmes d’Apriori
• Le principe de l’algorithme:
– Utiliser les (k – 1)-itemsets fréquents pour générer les k-itemsets
candidats
– Scanner la base pour tester le support des candidats
• Là où l’algo pèche : génération des candidats
– Beaucoup:
• 104 1-itemsets fréquents générant 107 2-itemsets candidats
• Pour trouver les 100-itemsets on doit générer 2100 1030
candidats.
– Plusieurs scans de la base:
4
18/03/2025
Règles fortes
Concept de base
Règles fortes
5
18/03/2025
Règles fortes
11
Règles fortes
Exemple:
12
6
18/03/2025
Règles fortes
Complexité temporelle
Théorème 1:
Transférer les éléments d’un ensemble fréquent de l’antécédent d’une règle au
conséquent ne peut pas augmenter son degré de confiance.
Démonstration:
Règles fortes
Ainsi, on peut dégager à partir du théorème 1 les résultats suivants
Théorème 2
Tout sur-ensemble (superset) du ‘conséquent’ d’une règle non-confidente est aussi non-
confident
Tout sous-ensemble du ‘conséquent’ d’une règle confidente est aussi confident
Exemple: ?
7
18/03/2025
15
Règles fortes
Améliorations cherchées
– chercher les règles issues du plus grand k-ensemble fréquent; si on trouve une
règle ayant une condition minimale, on évite de chercher les règles dont la
prémisse contient cette condition minimale.
16
8
18/03/2025
17
18
9
18/03/2025
19
Règles fortes
Mesures d’évaluation des règles
Support et confiance:
En termes probabilistes:
R : p1->p2
Sup ( R ) = prob(p1p2)
Conf( R )= prob(p1/p2)=2/4
Problème: Une règle peut avoir d’excellents supports et confiance sans être pour
autant «intéressante»
20
10
18/03/2025
Règles fortes
Mesures d’évaluation des règles
21
Discussion
22
11