Data
Mining
PAR LA PRATIQUE
Presented by:
Prof. Idriss MOUMEN
Date:
Email: 14 Avril 2025
[email protected]
Qu'est-ce que
le Data Mining ?
• Extraction d'informations intéressantes a partir de grandes
bases de données
• C'est analyser les données pour trouver des modèles (patterns)
cachés en utilisant des moyens automatiques.
• C'est un processus non élémentaire de recherche de relations,
corrélations, dépendances, associations, modèles, structures,
tendances, classes (clusters), segments, lesquelles sont
obtenues de grande quantité de données
2
Types
de données
• Fichiers plats
• BD's relationnelles
• Data warehouses
• BD's transactionnelles
• BD's avancées Capteurs → variables quantitatives, qualitatives…
Texte → Chaîne de caractères
• BD's objet et objet-relationnelles
• BD's spatiales Parole → Séries temporelles
Images → données 2D
• Séries temporelles
Videos → données 2D + temps
• BD's Textes et multimédia
• BD's Hétérogènes Réseaux → Graphes
Flux → Logs, coupons. . .
• WWW (web mining)
3
Où le Data Mining
est-il utilisé?
Le Data Mining est utilisé dans de nombreux domaines pour extraire des connaissances,
des modèles ou des relations utiles à partir de grandes quantités de données.
44
Communications
Pour prédire le comportement des
clients afin de proposer des
campagnes très ciblées et
pertinentes.
Assurance
Data Mining aide les compagnies d'assurance a
rentabiliser leurs produits et a promouvoir de
nouvelles offres auprès de leurs clients
existants ou nouveaux.
Education
Data Mining permet aux enseignants d'accéder
aux données des élevés, de prévoir leurs
niveaux de performance et de trouver des
élevés ou des groupes d'élevés qui nécessitent
une attention particulière.
Fabrication
Avec l'aide de Data Mining, les fabricants peuvent
prévoir l'usure des actifs de production. Ils peuvent
anticiper la maintenance, ce qui les aide a les
réduire et a minimiser les temps d'arrêts.
Bancaire
Data Mining aide le secteur banquier a se faire
une idée des risques du marché et a gérer la
conformité règlementaire. Il aide les banques a
identifier les défaillants probables afin de
décider d'émettre des cartes de crédit, des
prêts, etc.
Vente en details
Les techniques de Data Mining aident les centres
commerciaux et les épiceries a identifier et organiser
les articles les plus vendables dans les positions les
plus attentives. Il aide les propriétaires de magasins a
proposer une offre qui encourage les clients a
Service providers
Les fournisseurs de services comme les
industries de la téléphonie mobile et des
services publics utilisent Data Mining pour
prédire les raisons lorsqu'un client quitte son
entreprise.
E-Commerce
Le E-Commerce utilisent Data Mining pour proposer
des ventes croisées et des ventes supplémentaires via
leurs sites web. Amazon utilise des techniques
d'exploration de données pour attirer davantage de
clients dans sa boutique en ligne.
Enquête criminelle
Data Mining aide les agences d'enquêtes
criminelles a déployer des forces de police (ou
un crime est-il le plus susceptible de se
produire et quand ?).
Bio-informatique
Data Mining permet d'exploiter des données biologiques
a partir d'énormes datasets rassembles en biologie et
en médecine.
Data Mining vs
Machine Learning
Machine Learning: C'est un sujet de l'intelligence artificielle (IA)
qui s'occupe de la façon d'écrire des programmes qui peuvent
apprendre.
Data Mining, Machine Learning est habituellement utilises pour
la prédiction et classification.
10
Les étapes du
Data Mining
1. Nettoyage des données (erreurs, données manquantes);
2. Transformation éventuelle des données (normalisation, linéarisation...);
3. Explicitation de l'objectif de l'analyse en terme statistique (régression,
classification, clustering...);
4. Choix de la méthode a utiliser;
5. Mise en œuvre informatique
6. Test (validation de la qualité des résultats);
7. Exploitation
11
Cycle de vie d'un projet de
Data Mining
01 Apprentissage du domaine d'application :
• Connaissances nécessaires et buts de l'application
02 Création du jeu de données cible :
• sélection des données
03 Nettoyage et prétraitement des données
(jusqu'a 60% du travail !)
12
Cycle de vie d'un projet de
Data Mining
04 Réduction et transformation des données:
• Trouver les caractéristiques utiles,
dimensionnalité/réduction des variables
05 Choix des fonctionnalités Data Mining synthèse,
classification régression, association, clustering;
06 Choix des algorithmes;
13
Cycle de vie d'un projet de
Data Mining
07 Data Mining : recherche de motifs (patterns)
intéressants
08 Evaluation des motifs et représentation des
connaissances: visualisation, transformation, élimination
des motifs redondants, etc.
09 Utilisation des connaissances découvertes.
14
Les techniques
du Data Mining
LES TECHNIQUES DU Data Mining
Classification Clustering Regression Outlier Detection
Sequential
Prediction Association rules
patterns
15
Descriptives
Taches en consiste à trouver les caractéristiques
générales relatives aux données
Data Mining Regression fouillées (résumé/synthèse, Clustering,
Règles d’association)
Classification
Predictive
Prediction
Analyse des series
temporelles
Data Mining
Clustering
Prédictives
Régles d’association Consiste à utiliser certaines variables
Descriptive pour prédire les valeurs futures
Discover sequences inconnues de la même variable ou
d’autres variables (Séries temporelles,
Analyse sommaire Régression, Classification).
16
Avantages du
Data Mining
• La technique du Data Mining aide les entreprises a obtenir des informations basées sur les connaissances.
• L'exploration de données aide les organisations a effectuer les ajustements rentables en termes
d'exploitation et de production.
• L'exploration de données est une solution rentable et efficace par rapport a d'autres applications de
données statistiques.
• L'exploration de données facilite le processus de prise de décision.
• Facilite la prédiction automatisée des tendances et des comportements, ainsi que la découverte
automatisée des modelés caches.
• Il peut être implémenté dans de nouveaux systèmes ainsi que sur des plates-formes existantes.
• C'est le processus rapide qui permet aux utilisateurs d'analyser une quantité énorme de données en moins
de temps. 17
Inconvénients du
Data Mining
• Il y a des chances que les entreprises vendent des informations utiles de leurs clients a d'autres
entreprises pour de l'argent.
• Par exemple: American Express a vendu les achats effectués par carte de crédit de ses clients a
d'autres sociétés.
• De nombreux logiciels d'analyse de Data Mining sont difficiles a utiliser et nécessitent une formation
avancée.
• Différents outils d'exploration de données fonctionnent de différentes manières en raison des différents
algorithmes utilisés dans leur conception. Par conséquent, la sélection d'un outil d'exploration de données
correct est une tache très difficile.
18
Scannez le code QR
pour accéder aux
supports de formation
19
What is R?
R est un langage de programmation utilise pour l’analyse statistique. L’analyse des données et la recherché
scientifique.
R est populaire pour les statisticiens, l’analystes des donnes, etc… pour récupérer, nettoyer, analyser,
visualiser, et présenter les données:
• Apprentissage automatique et apprentissage statistique
• Analyse de grappes et modèles de mélanges finis
• Analyse des séries chronologiques
• Statistiques multivariées
• Analyse de données spatiales
• ... 20
What is R?
Le logiciel R (disponible sur http://www.r-project.org/) est un logiciel de Statistique libre ayant un certain
nombre d’atouts :
• il permet l’utilisation des méthodes statistiques classiques à l’aide de fonctions prédéfinies,
• il permet d’utiliser des techniques statistiques innovantes et récentes à l’aide de package développés par
les chercheurs et mis à disposition sur le site du CRAN (http://cran.r-project.org/).
Nous proposons ici de travailler avec l’interface RStudio,
http://www.rstudio.com/
21
RStudio
• Un environnement de développement intégré (IDE) pour R.
• Fonctionne sur différents systèmes d'exploitation tels que Windows, Mac OS X et Linux.
• Suggestion: toujours en utilisant un projet RStudio, avec des sous-dossiers
• code: code source
• données: données brutes, données nettoyées
• figures: tableaux et graphiques
• docs: documents et rapports
• modèles: modèles d'analyse
22
RStudio
R Environment
R Script
R Graphic
R Console
23
Basic Computations in R
N.B. : En R, l'assignation peut se faire avec le symbole <- ou =, qui sont équivalents
24
Objects de R
R a cinq classes d’objets de base ou «atomiques».
Wait, what is an object ?
Tout ce que vous voyez ou créez dans R est un objet (vecteur, matrice, data frame même une variable) est
un objet.
• Character
• Numeric (Real Numbers)
• Integer (Whole Numbers)
• Complex
• Logical (True / False)
25
Les types de
données en R
• Vecteur
• Matrices
• Data frame
• Liste
26
Vecteurs
On appelle vecteur toute séquence d'éléments de même type.
• Logical
• Integer
• Double
• complex 27
Vecteurs
Exemple
Syntaxe :
paste(string1, string2,string3, sep = " ", collapse = NULL)
String1, string2, string3: Les strings a concaténer
sep : Séparateur
Collapse : supprimer les espace entre les strings
28
Syntaxe :
Vecteurs
toupper(x)ou tolower(x)
nchar(x)
substring(x,premier, dernier)]
29
Vecteurs
Exercice 1 Exercice 2
x <- c(4,2,6)
Donner le résultat de:
y <- c(1,0,-1)
Donner le résultat de:
(a) 7:11
(a) length(x)
(b) seq(2,9)
(b) sum(x)
(c) seq(4,10,by=2)
(c) sum(x^2)
(d) seq(3,30,length=10)
(d) x+y
(e) seq(6,-4,by=-2)
(e) x*y
(f) x-2
(g) x^2
30
Vecteurs
Exercice 3 Exercice 4
Donner le résultat de: x<- c(5,9,2,3,4,6,7,0,8,12,2,9)
(a) rep(2,4) Donner le résultat de:
(b) rep(c(1,2),4)
(c) rep(c(1,2),c(4,4)) (a) x[2]
(d) rep(1:4,4) (b) x[2:4]
(e) rep(1:4,rep(3,4)) (c) x[c(2,3,6)]
(d) x[c(1:5,10:12)]
(e) x[-(10:12)]
31
Matrices
32
Matrices
Exercice
Créer dans R les matrices suivantes:
3 2 1 4 0
𝑥= 𝑦=
−1 1 0 1 −1
(a) 2*x (a) x[1,]
(b) x*x (b) x[2,]
(d) x*y (c) x[,2]
(e) t(y) (d) y[1,2]
(f) solve(x) (e) y[,2:3]
33
Tableaux de données
(Data Frame)
• C'est le plus couramment utilisé
• Il est utilisé pour stocker des données tabulaires. C'est différent de la matrice.
• Dans une matrice, chaque élément doit avoir la même classe.
• Dans un data frame, vous pouvez mettre une liste de vecteurs contenant différentes classes.
• Cela signifie que chaque colonne d'un cadre de données agit comme une liste. Chaque fois que vous
lirez des données dans R, elles seront stockées sous la forme d’une trame de données.
34
Tableaux de données
(Data Frame)
etudiant.data <- data.frame(
rollid = c (11:15),
nom_etud = c("Ahmed","Hind","Ali","safae","Mark"),
note_etud = c(13,16,15,11,15),
date_nais = as.Date(c("2000-01-24","1997-09-23","1999-11-
15","1998-05-11","2000-03-27"))
)
35
Tableaux de données
(Data Frame)
Extraction d’information depuis une table de donnée
result <- data.frame(etudiant.data$nom_etud,etudiant.data$note_etud)
result <- etudiant.data[1,]
result <- etudiant.data[1:2,3]
36
Tableaux de données
(Data Frame)
Créer un vecteur et l’ajouter dans la table de données
etudiant.data$cours <- c("datamining","bigdata","BI","ML","Statistique")
37
La fonction apply()
Apply(x,1,sum)
• Le 1er argument X et un data frame ou une matrice
• Le 2eme argument 1 indique traiter par ligne .si 2 alors ont traite par colonne
• Le 3eme argument est une des fonctions d’agregation comme sum, mean etc ou
d’autre fonctions définie par l’utilisateur
38
For vs apply()
x<-1:10
y<-rep(NA,10)
for(i in 1:length(x))
{ tmp <- lapply(x, log)
y[i]<-log(x[i])
}
39
Data Import/Export
.csv
# creation d'un data frame
var1 <- 1:5
var2 <- (1:5) / 10
var3 <- c("R", "and", "Data Mining", "Examples", "Case Studies")
df1 <- data.frame(var1, var2, var3)
names(df1) <- c("VarInt", "VarReal", "VarChar")
# sauvgarder dans un fichier csv
write.csv(df1, "path/Data.csv", row.names = FALSE)
# lire un fichier csv
df2 <- read.csv("path/Data.csv")
40
Qu'est-ce que l’EDA?
L'analyse exploratoire des données (EDA) est l'une des techniques
utilisées pour extraire les caractéristiques et les tendances
essentielles utilisées par les modèles d'apprentissage automatique et
d'apprentissage profond dans le domaine de la science des données.
EDA est donc devenue une étape importante pour tous ceux qui
travaillent dans la science des données.
41
Objectif de l’EDA
L'objectif global de l'analyse exploratoire des données est d'obtenir
des informations essentielles et comprend donc généralement les
sous-objectifs suivants :
• Identifier et supprimer les données aberrantes
• Identifier les tendances dans le temps et l'espace
• Découvrir des modèles liés à la cible
• Créer des hypothèses et les tester par le biais d'expériences
• Identifier de nouvelles sources de données
42
Étapes de l’EDA
Les principales étapes entreprises pour réaliser l’EDA. Elles sont les
suivantes :
1. Collecte des données
2. Trouver toutes les variables et les comprendre
3. Nettoyage de l'ensemble des données
4. Identifier les variables corrélées
5. Choisir les bonnes méthodes statistiques
6. Visualisation et analyse des résultats
43
Le dataset iris
Le dataset iris [Frank et Asuncion, 2010] comprend 50 échantillons de chacune des
trois classes de fleurs d'iris. Il y a cinq attributs dans le dataset:
Petal
• sepal length en cm,
• sepal width en cm,
• petal length en cm,
• petal width en cm
• Species : Iris Setosa, Iris Versicolour, et Iris Virginica.
Sepal
https://archive.ics.uci.edu/ml/datasets/Iris
Taille et nom des variables
# Nombre de lignes
nrow(iris)
# nombre de colonnes
ncol(iris)
# dimension du dataset
dim(iris)
# les noms des colonnes
names(iris)
La structure des données
str(iris)
'data.frame': 150 obs. of 5 variables:
$ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
$ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
$ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
$ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
$ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1
1 1 1 1 1 1 1 1 ...
• 150 observation (lignes) et 5 variables (colonnes).
• Les quatre premières colonnes sont des numeric.
• La dernier, Species est catégorique (appelé factor dans R), et contient trois
niveaux de valeurs.
Les attributs des données
attributes(iris)
$names
[1] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width" "Species"
$class
[1] "data.frame"
$row.names
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
[21] 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
[41] 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
[61] 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
[81] 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
[101] 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
[121] 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
[141] 141 142 143 144 145 146 147 148 149 150
Première/dernière lignes
iris[1:3,]
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
head(iris, 3)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
tail(iris, 3)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
148 6.5 3.0 5.2 2.0 virginica
149 6.2 3.4 5.4 2.3 virginica
150 5.9 3.0 5.1 1.8 virginica
Fonction summary()
Variables numérique: minimum, maximum, mean, median, et le premier quart (25%)
et le trois quart (75%)
summary(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100 setosa :50
1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300 versicolor:50
Median :5.800 Median :3.000 Median :4.350 Median :1.300 virginica :50
Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199
3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800
Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500
Mean, Median, Range et les quarts
• Moyenne, mediane et rang: mean(), median(), range()
• Quartiles and percentiles: quantile()
range(iris$Sepal.Length)
## --------------------------------------------------------------------
quantile(iris$Sepal.Length)
## --------------------------------------------------------------------
quantile(iris$Sepal.Length, c(.1, .3, .65))
Variance et histogram
var(iris$Sepal.Length)
hist(iris$Sepal.Length)
hist(iris$Sepal.Length,
col='steelblue',
main='Histogram',
xlab='Length',
ylab='Frequency')
Densité
library(magrittr)
iris$Sepal.Length %>% density() %>% plot(main='Densité de
Sepal.Length')
Fréquence
library(dplyr)
# calcule de la fréquence
iris2 <- iris %>% sample_n(50)
# afficher le résultat en camembert
iris2$Species %>% table() %>% pie()
Fréquence (suite)
# afficher le résultat en camembert avec pourcentage
tab <- iris2$Species %>% table()
precentages <- tab %>% prop.table() %>% round(3) * 100
txt <- paste(names(tab), '\n', precentages, '%')
pie(tab, labels=txt)
Corrélation
Après avoir vérifié les distributions des variables individuelles, nous examinons
ensuite les relations entre deux variables.
## -----------------------------------------------------
cov(iris$Sepal.Length, iris$Petal.Length)
## -----------------------------------------------------
cor(iris$Sepal.Length, iris$Petal.Length)
## -----------------------------------------------------
cov(iris[,1:4])
## -----------------------------------------------------
cor(iris[,1:4])
Agrégation
Statistiques de Sepal.Length pour chaque espèce avec aggregate()
aggregate(Sepal.Length ~ Species, summary, data=iris)
Boxplot
boxplot(Sepal.Length ~ Species, data = iris)
Scatter Plot
with(iris, plot(Sepal.Length, Sepal.Width, col =
Species, pch = as.numeric(Species)))
Heatmap
distMatrix <- as.matrix(dist(iris[,1:4]))
heatmap(distMatrix)
Visualisation avec le package
ggplot2
library(ggplot2)
qplot(Sepal.Length, Sepal.Width,
data=iris, facets=Species ~.)
Sauvegarder les graphes
Sauvegarder les graphiques au format PDF et PS: pdf () et postscript ()
Fichiers BMP, JPEG, PNG et TIFF: bmp (), jpeg (), png () et tiff ()
# Enregister en fichier pdf
pdf("graphe.pdf")
x <- 1:50
plot(x, log(x))
graphics.off()
# Enregister en fichier pdf
pdf("graphe1.pdf")
x <- -20:20
plot(x, x^2)
graphics.off()
Sauvegarder les graphes
ggsave(): par défaut, enregistre le dernier tracé que vous avez affiché. Il devine
également le type de périphérique graphique à partir de l'extension
ggsave('graphe.png')
ggsave('graphe.pdf')
ggsave('graphe.jpg')
ggsave('graphe.bmp')
ggsave('graphe.ps')
ggsave('graphe.eps')
Chihuahua ou
Muffin?
Ce meme populaire sur Internet montre la
ressemblance alarmante entre les chihuahuas et les
muffins. Ces images sont couramment utilisées dans
les présentations de l'industrie de l'intelligence
artificielle (IA).