Cours DM Afef Kacem Math Séance1
Cours DM Afef Kacem Math Séance1
DATA MINING
FOUILLE DE DONNEES
DESCRIPTION
2
1
18/09/2025
FONCTIONNEMENT
3
Chaque semaine
Un cours et des travaux dirigés et pratiques
Au cours du semestre
Un mini-projet (mise en application en R de notions du
cours pour résoudre un problème)
En fin de semestre
Evaluation du mini-projet
Rendre un rapport et une implémentation
Evaluation des connaissances
Sans documents
Novembre: Devoir surveillé d’1h30
Décembre: Examen de 2h00
Note finale: (DS + mini-projet + 2*Examen)/4
OBJECTIFS PÉDAGOGIQUES
4
* Un DW est une BD relationnelle hébergée sur un serveur dans un Data Center ou dans le Cloud. Il recueille des données de sources
variées et hétérogènes dans le but principal de soutenir l'analyse et faciliter le processus de prise de décision
2
18/09/2025
OBJECTIFS PÉDAGOGIQUES
5
3
18/09/2025
RÉFÉRENCES
7
PLAN DU COURS
8
Chapitre 1: Introduction au DM
Chapitre 2: Initiation au langage R pour le DM
Chapitre 3: Préparation de données dans R
Chapitre 4: Classification de données
Chapitre 5: Classification non supervisée ou Clustering
Chapitre 6: Classification supervisée
4
18/09/2025
Introduction au DM
9
CHAPITRE 1
1. Qu’est-ce que le DM ?
2. A quoi sert le DM ?
3. Quelles sont les principales tâches?
4. Comment ça marche?
5. Quels sont les principales méthodes ?
6. Comment représenter les données ?
Avec évaluation des compétences
10
5
18/09/2025
11
12
6
18/09/2025
13
Donnée
Notion abstraite typée (numériques, symboliques, textuelles, logiques,…)
La donnée ne porte pas de sens en elle-même
Exemple de donnée brute: 1008
Information
Notion abstraite, mais d’un niveau d’abstraction supérieur à celui de la donnée
Information=Donnée + un sens
Exemple : la donnée 1008 est un code postal.
Connaissance
Notion abstraite, d’un niveau d’abstraction supérieur à celui de l’information.
La connaissance à la différence de l’information est partagée et s’appuie sur un
référentiel collectif.
Exemple : Si je vous communique le code postal 1008, je n’ai pas besoin de vous
expliquer ce dont il s’agit, vous disposez d’un référentiel pour interpréter ce code,
pour savoir que ca concerne Bab Mnera – La Medina, Tunis. Le code postal
s’apparente à une connaissance largement partagée en Tunis.
14
7
18/09/2025
15
16
8
18/09/2025
2. A quoi sert le DM ?
17
• DM : Ensemble de méthodes
o destinées à l’exploration et l’analyse de grandes bases de données
informatiques
o en vue de détecter dans ces données des règles, des associations,
des structures particulières restituant de façon concise l’essentiel
de l’information utile
o pour l’aide à la décision.
• Ces informations peuvent ensuite être utilisées par les entreprises pour
o augmenter un chiffre d’affaires,
o réduire des coûts.
o mieux comprendre une clientèle afin d’établir de meilleures
stratégies marketing.
17
3.
2. A quoi sert le DM ?
Plus précisément
18
18
9
18/09/2025
2. A quoi sert le DM ?
Plus précisément
19
Ainsi, il est possible de stocker nos observations dans un tableau dans
lequel chaque ligne représente un individu, et chaque colonne
représente une variable.
Exemple: étudier des relevés bancaires
Chaque individu (en ligne) est une opération bancaire, et chaque
variable (en colonne) est une caractéristique de l’opération (comme
sa date, son libellé, son montant, etc.) :
19
2. A quoi sert le DM ?
20
Prédiction de l’attrition dans la téléphonie mobile
attrition = départ d’un client pour un concurrent
Analyse du ticket de caisse dans les grandes surfaces
pour déterminer les produits souvent achetés simultanément,
agencer les rayons
et organiser les promotions en conséquence
Organisme de crédit pour décider
d’accorder ou non un crédit en fonction du profil du demandeur de crédit, de sa demande et
des expériences passées de prêts,
Optimisation
du nombre de places dans les avions, hôtels,
Diagnostic médical
«les patients ayant tels symptômes et demeurant dans des agglomérations de plus de 104
habitants développent couramment telle pathologie »
Moteur de recherche sur internet
o fouille du Web ou Webmining.
…
20
10
18/09/2025
Segmentat
ion
Règles
Prédictio
d’associati
n on
Estimati
on
Classificati
on
Dr. A. Kacem Echi
21
La segmentation
Former des groupes (clusters) homogènes à l'intérieur d'une population.
Tâche souvent effectuée avant les précédentes pour construire des
groupes sur lesquels on applique des tâches de classification ou
d'estimation.
La classification
Examiner les attributs d'une donnée et lui attribuer une classe
La classe est un attribut particulier à valeurs discrètes.
Attribuer ou non un prêt à un client, établir un diagnostic, accepter ou
refuser un retrait dans un distributeur, attribuer un sujet principal à un
article de presse, etc.
22
11
18/09/2025
La prédiction
Estimer une valeur future. En général, les valeurs connues sont historiées.
On cherche à prédire la valeur future d'un attribut.
Prédire, au vu de leurs actions passées, les départs de clients.
L'estimation
Estimer la valeur d'un attribut manquant.
L’attribut à estimer est à valeurs continues.
Estimer les revenues d’un client.
Estimer les risques.
23
24
12
18/09/2025
4. Comment ça marche ?
25
25
4. Comment ça marche?
Méthodologies de gestion de projets
26
26
13
18/09/2025
4. Comment ça marche?
Méthodologie KDD
27
Découverte de connaissances dans les bases de données
(Knowledge Discovery in Databases : KDD)
27
4. Comment ça marche?
Méthodologie KDD
28
28
14
18/09/2025
4. Comment ça marche?
Méthodologie SEMMA
29
29
4. Comment ça marche?
Méthodologie SEMMA
30
30
15
18/09/2025
4. Comment ça marche?
Méthodologie CRISP-DM
31
31
4. Comment ça marche?
Méthodologie CRISP-DM
32
32
16
18/09/2025
4. Comment ça marche?
Méthodologie CRISP-DM
33
Modélisation :
phase de Data Science proprement dite.
Elle comprend le choix, le paramétrage et le test de différents algorithmes ainsi
que leur enchaînement, qui constitue un modèle.
Evaluation :
tester la robustesse et la précision des modèles obtenus.
vérifier le(s) modèle(s) afin de s’assurer qu’ils répondent aux objectifs formulés
au début du processus.
Elle contribue aussi à la décision de déploiement du modèle ou, si besoin est, à
son amélioration.
Déploiement :
mise en production pour les utilisateurs finaux des modèles obtenus.
Son objectif peut aller de la simple génération d’un rapport décrivant les
connaissances obtenues jusqu’à la mise en place d’une application, permettant
l’utilisation du modèle obtenu, pour la prédiction de valeurs inconnues d’un
élément d’intérêt.
Dr. A. Kacem Echi
33
34
17
18/09/2025
35
36
18
18/09/2025
37
38
19
18/09/2025
39
Qualitatives
décriventdes qualités
De nature symbolique (non mesurables)
40
20
18/09/2025
41
42
Evaluation des
compétences
Chapitre 1:
Introduction au DM
42
21
18/09/2025
Evaluation de compétences
43
Pouvez-vous distinguer les variables ? celles qualitatives et quantitatives
discrètes ou continues?
43
44
22
18/09/2025
45
46
23
18/09/2025
47
Evaluation des
compétences
Chapitre 1:
Introduction au DM
47
48
24
18/09/2025
49
50
25
18/09/2025
51
52
26
18/09/2025
53
54
Evaluation des
compétences
Chapitre 1:
Introduction au DM
54
27
18/09/2025
55
56
28
18/09/2025
Distance euclidienne :
(3−−5.1)2+(3.5−−5.2)2
Distance de Manhattan :
|3--5.1|+|3.5--5.2|
57
58
29
18/09/2025
Plus le nuage sera dispersé (étalé), plus son inertie sera grande.
Dr. A. Kacem Echi
59
60
30
18/09/2025
L’inertie du nuage de points Ni est aussi la somme des variances sur toutes les p
dimensions
Rappel : la variance est un indicateur de dispersion.
Dr. A. Kacem Echi
61
62
Evaluation des
compétences
Chapitre 1:
Introduction au DM
62
31
18/09/2025
63
d2 (M1,G)2= (1-12/5)2+(0-7/5)2=3.92
d2 (M2,G)2= (0-12/5)2+(1-7/5)2=5.92
d2 (M3,G)2= (3-12/5)2+(1-7/5)2=0.52
d2 (M4,G)2= (4-12/5)2+(2-7/5)2=2.92
d2 (M5,G)2= (4-12/5)2+(3-7/5)2=5.12
I=(3.92+5,92+0,52+2,92+5,12)/5=3.68
64
32
18/09/2025
65
66
33
18/09/2025
67
Evaluation des
compétences
Chapitre 1:
Introduction au DM
67
68
34
18/09/2025
Une variable prenant valeurs peut être représenté dans un vecteur n,
appelé espace des variables.
Dans cet espace, le produit scalaire usuel entre deux vecteurs X et Y, de
coordonnées respectives :
69
Si r(x,y)=1 alors,
les deux vecteurs sont colinéaires: les valeurs prises par yi et xi sont
proportionnelles
il existe une relation linéaire exacte entre deux variables.
L’absence de corrélation se traduit par une valeur nulle pour le coefficient
de corrélation linéaire et donc par un angle droit entre x et y.
70
35
18/09/2025
71
72
36
18/09/2025
73
Evaluation des
compétences
Chapitre 1:
Introduction au DM
73
Déduire la covariance de X et de Y
74
37
18/09/2025
75
76
38
18/09/2025
77
Initiation au langage R
78
CHAPITRE 2
78
39
18/09/2025
79
80
40
18/09/2025
81
82
41
18/09/2025
83
84
42
18/09/2025
85
86
43
18/09/2025
87
88
44
18/09/2025
89
90
45
18/09/2025
4. Les vecteurs
Comment créer et utiliser des vecteurs ?
91
91
4. Les vecteurs
Les vecteurs numériques
92
Les vecteurs numériques permettent de représenter des variables
quantitatives : relevés météorologiques, notes d’une classe, taille de
différentes fleurs, etc.
Il existe différentes méthodes pour construire un vecteur, en fonction de
vos besoins :
Construction par l’opérateur séquence :
Créer un vecteur allant de la première valeur à la deuxième, par pas de 1.
>1:6
[1] 1 2 3 4 5 6
Construction par la fonction seq
Créer un vecteur contenant l’ensemble des valeurs de a à b, soit répartis également si
l’on utilise l’argument length, soit selon un pas donné via l’argument by.
>seq(1,6,by=0.5)
[1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0
>seq(1,6,length=5)
# [1] 1.00 2.25 3.50 4.75 6.00
Dr. A. Kacem Echi
92
46
18/09/2025
4. Les vecteurs
Les vecteurs numériques
93
z <- c(x,y)
z
[1] 1 4 10 1 3 5 7 9
93
4. Les vecteurs
Les vecteurs numériques
94
94
47
18/09/2025
4. Les vecteurs
Les vecteurs de caractères
95
95
4. Les vecteurs
Les vecteurs de caractères
96
Il est également possible de créer un vecteur numérique pour ensuite le
convertir en un vecteur de chaînes de caractères de même longueur, via
la fonction toString.
Création par concaténation : manipuler différents objets R et de les
concaténer (c’est-à-dire les mettre bout à bout) ou d’en extraire une
partie.
Pour la concaténation, on utilise la fonction paste :
>nom <- paste(rep("ind",10),1:10,sep=".")
[1] "ind.1" "ind.2" "ind.3" "ind.4" "ind.5" "ind.6" "ind.7" "ind.8"
[9] "ind.9" "ind.10”
Pour l’extraction, on utilise la fonction substr :
>substr("freerider",5,9)
[1] "rider"
#Cela extrait de "freerider" les caractères en position 5 à 9 ce qui donne "rider".
96
48
18/09/2025
4. Les vecteurs
Les vecteurs logiques
97
Les vecteurs logiques peuvent représenter des vecteurs binaires (pluie
ou beau temps, présence ou non d’une maladie, etc.), mais peuvent aussi
être le résultat d’une fonction appliquée à un autre vecteur (comme avec
la fonction is.na vue précédemment).
Les vecteurs de booléens sont en général générés grâce à des opérateurs
logiques : > , >= , < , <= , == , != , etc.
Ils peuvent aussi être générés par les fonctions seq, rep et c. Ils
permettent des sélections complexes ou des opérations de conditions.
>1>0
TRUE
# Cette commande retourne un vecteur logique de longueur 1 qui est TRUE, puisque 1 est plus grand
que 0.
> x <- c(-1,0,2)
> test <- x>1
> test
[1] FALSE FALSE TRUE
# Nous créons un objet test qui est le vecteur de logiques (FALSE,FALSE,TRUE),
97
5. Les matrices
98
98
49
18/09/2025
5. Les matrices
Comment créer une matrice?
99
Principales façons de créer une matrice:
La plus utilisée est la fonction matrix qui prend en arguments le vecteur d’éléments et
les dimensions - nombre de lignes ou de colonnes - de la matrice.
Par défaut, R range les valeurs dans une matrice par colonne. Pour ranger les éléments
par ligne, on utilise l’argument byrow :
> x <- matrix(c(1:6),nrow=2,ncol=3,byrow=TRUE)
>x
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
>y <- matrix(1:2,ncol=1)
>y
[,1]
[1,] 1
[2,] 2
>z <- matrix(3:1,ncol=3)
>z
[,1] [,2] [,3]
[1,] 3 2 1
99
5. Les matrices
Comment créer une matrice?
100
Lorsque la longueur du vecteur est différente du nombre d’éléments de la
matrice, R remplit toute la matrice.
Si le vecteur est trop grand, il prend les premiers éléments,
si le vecteur est trop petit, R le répète :
>m <- matrix(1:4,nrow=3,ncol=3)
>m
[,1] [,2] [,3]
[1,] 1 4 3
[2,] 2 1 4
[3,] 3 2 1
Il est possible de remplir une matrice d’un élément unique sans avoir à créer
le vecteur des éléments :
>un <- matrix(1,nrow=2,ncol=4)
>un
[,1] [,2] [,3] [,4]
[1,] 1 1 1 1
[2,] 1 1 1 1
Dr. A. Kacem Echi
100
50
18/09/2025
5. Les matrices
Comment créer une matrice?
101
101
5. Les matrices
Comment créer une matrice?
102
102
51
18/09/2025
5. Les matrices
Opérations sur les matrices
103
>m <- matrix(1:4,ncol=2)
>m
[,1] [,2]
[1,] 1 3
[2,] 2 4
>n <- matrix(3:6,ncol=2,byrow=T)
>n
[,1] [,2]
[1,] 3 4
[2,] 5 6
On peut additionner deux matrices de même dimension :
>m+n
[,1] [,2]
[1,] 4 7
[2,] 7 10
Dr. A. Kacem Echi
103
5. Les matrices
Opérations sur les matrices
104
104
52
18/09/2025
5. Les matrices
Autres fonctions utiles
105
Dimensions :
dim(X), nrow(X), ncol(X) donnent respectivement la dimension, le
nombre de lignes et de colonnes de X.
105
5. Les matrices
Autres fonctions utiles
106
Concaténation : par colonne avec la fonction cbind, par ligne avec la fonction
rbind.
>cbind(c(1,2),c(3,4))
[,1] [,2]
[1,] 1 3
[2,] 2 4
La fonction apply permet d’appliquer une fonction choisie aux lignes
(MARGIN=1) ou aux colonnes (MARGIN=2) de la matrice. Par exemple :
>X
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
>apply(X,MARGIN=2,sum) # sommes par colonne
[1] 3 7 11
>apply(X,1,mean) # moyennes par ligne
[1] 3 4
106
53
18/09/2025
6. Les listes
107
107
6. Les listes
Comment créer une liste ?
108
108
54
18/09/2025
6. Les listes
Comment créer une liste ?
109
On peut nommer les composantes de la liste, c’est-à-dire associer un nom à
chaque objet de la liste pour pouvoir y accéder plus facilement via
l’opérateur $. Ceci est faisable via la fonction names :
>names(maliste) # pas de nom actuellement, la fonction retourne un NULL
NULL
>names(maliste) <- c("vec","mat")
>names(maliste)
[1] "vec" "mat«
109
6. Les listes
Comment créer une liste ?
110
Il est également possible de créer une liste en partant d’une liste vide.
>li <- list()
>li
list()
>li[[1]] <- 1:4
>li
[[1]]
[1] 1 2 3 4
>li$nouv <- matrix(1:4,nrow=2)
>li
[[1]]
[1] 1 2 3 4
$nouv
[,1] [,2]
[1,] 1 3
[2,] 2 4
>names(li)
[1] "" "nouv«
#Comme la première composante n’a pas de nom, on retrouve [[1]] dans l’affichage de la liste puis la
composante nouv
110
55
18/09/2025
7. Les dataframes
Comment créer111les dataframes?
Les dataframes sont des listes particulières dont les composantes
sont de même longueur, mais les modes peuvent être différents.
C’est d’ailleurs l’objet privilégié en analyse statistique : en effet, un
tableau de données est constitué de variables quantitatives et/ou
qualitatives mesurées sur les mêmes individus.
Les principales manières de créer un dataframe consistent à utiliser les
fonctions :
data.frame qui permet de concaténer des vecteurs de même taille et
éventuellement de modes différents ;
read.table qui permet d’importer un tableau de données provenant d’un
fichier externe (csv, txt, etc.)
as.data.frame pour la conversion explicite d’un objet à deux dimensions
(comme une matrice).
111
7. Les dataframes
Comment créer les dataframes?
112
Considérons les deux vecteurs x et y suivants :
>x <- c("A","B","C","A")
>y <- 1:4
On peut utiliser ces derniers pour créer un dataframe assemblant ces deux
vecteurs :
>mondf <- data.frame(x,y)
>mondf
x y
1 A 1
2 B 2
3 C 3
4 A 4
>length(mondf)
[1] 2
>attributes(mondf)
$names
[1] "x" "y"
$row.names
[1] 1 2 3 4
Dr. A. Kacem Echi
112
56
18/09/2025
6. Les dataframes
Comment visualiser les dataframes?
113
113
57