Partie3 MARS2023
Partie3 MARS2023
Mastère SIDATA
RAHMA BOUJELBANE
[email protected]
M1 SIDATA
DATA MINING
Recherche de l’information
D’autre part…….
POURQUOI LE DATA MINING
• Exemple introductif : demande de crédit bancaire
L’expert se fonde sur son « expérience »
pour prendre la bonne décision
• Divorcé
• 5 enfants à charge
• chômeur en fin de droit
• compte à découvert
POURQUOI LE DATA MINING
Outils et techniques
UN EXEMPLE DE DÉCOUVERTE D’INFORMATION
ET DE CONNAISSANCE
Q2 : A-t-on vendu plus d'abonnements de magazines de sport cette année que l'année ?
! nécessite de conserver toutes les dates de souscription même pour les abonnements résiliés
UN EXEMPLE DE DÉCOUVERTE D’INFORMATION
ET DE CONNAISSANCE
Q4 : Quelles sont les caractéristiques principales de mes lecteurs de magazines de voiture ? ! question
beaucoup plus ouverte :
Il s’agit de trouver une règle et non plus de la vérifier ou de l'utiliser c'est pour ce type de question que
sont mis en œuvre des outils de fouille de données
Q5 : Peut-on prévoir les pertes de clients et prévoir des mesures pour les diminuer ? ! question ouverte :
Il faut disposer d'indicateurs comme : durées d'abonnement, délais de paiement, ... ! question (classique
dans le bancaire) avec une forte composante temporelle et nécessite des données historiques
• Comment produire les connaissances????
COMMENT PRODUIRE LES CONNAISSANCES
Nous, les êtres humains, sommes quotidiennement confronté à des problèmes que nous cherchons à
résoudre.
Par exemple : Comment augmenter nos bénéfices ? Comment détecter une fraude? Comment
acquérir un nouveau client? ……
Ou tout simplement quelle route emprunter pour aller au travail ?
COMMENT PRODUIRE LES CONNAISSANCES
Solution 1 : Ordinateur !!!
Pour nous aider dans nos recherches, on utilise l’ordinateur, qui permet de résoudre en
quelques minutes des calculs qui nous prendraient des millions d’années à effectuer.
Mais il faut savoir qu’un ordinateur ne sait en réalité faire qu’une chose : résoudre les
calculs qu’on lui donne.
COMMENT PRODUIRE LES
CONNAISSANCES
À partir de là, 2 situations possibles :
1. On connait le calcul à effectuer pour résoudre notre problème.
Dans ce cas, facile ! On entre ce calcul dans l’ordinateur, c’est ce qu’on appelle la
programmation, et l’ordinateur nous donne le résultat.
Exemple :
• Déterminer la structure d’un pont
Doit-on donc perdre tout espoir de voir un jour un ordinateur nous aider à Prédire le cours de la Bourse
? À reconnaitre un visage …
?
Bien sûr que non !
Solution 2 :
Le Data mining ( et notamment les techniques de machine learning/ apprentissage automatique) a justement
été inventé pour venir débloquer la situation 2 (quand on ne connait pas le calcul) en utilisant des
techniques de Data mining
SOLUTION 2
Apprentissage
Machine Learning
13
Laisser la Machine apprendre à partir d’expériences
Bonjour
Apprentissage
Apprentissage supervisé Non supervisé
15
IL Y A AUSSI
Apprentissage par renforcement
Apprentissage semi supervisé
→Le data mining est l’art d’extraire des connaissances à partir des données.
→Le data mining ne se limite pas au traitement des données structurées sous
forme de tables numériques; il offre des moyens pour aborder les corpus en
langage naturel (text mining), les images (image mining), le son (sound mining) ou
la vidéo et dans ce cas, on parle alors plus généralement de multimedia mining.
PROCESSUS D’EXTRACTION DE CONNAISSANCE À PARTIR DE DONNÉES
ECD
→L’Extraction de Connaissances à partir des Données est un processus non
trivial d’identification de structures inconnues, valides et potentiellement
exploitables dans les bases de données » (Fayyad et al., 1991)
Algorithme de machine learningRègles d‘associations
Statistique descriptive
ECD
Modèles
Nouvelles
Connaissances
4–
1- 2- Prétraitements 3–
Mise en forme de connaissances
Données Fouille de données/datamining
DATA MINING : BRASSAGE DES CULTURES ET
DES TECHNIQUES
LES MÉTHODES SELON LES FINALITÉS
Les méthodes
sont le plus
souvent
complémentair
es !
LES LOGICIELS DE FOUILLES DE DONNÉES
Orange : est développé par Blaz Zupan, à la Faculty of Computer and Information
Science, de lʼUniversité de Ljubljana en Slovenie
! Il est destiné à lʼenseignement et à la recherche, et téléchargeable à lʼadresse :
http://www.ailab.si/orange
Il implémente aussi diverses méthodes de fouilles de données issues du domaine de la
statistique exploratoire, de lʼapprentissage automatique et des bases de données, …
LES LOGICIELS DE FOUILLES DE DONNÉES
Python
Langages de programmation pour l’analyse des données
RAHMA BOUJELBEN
4. Les 4 librairies à maîtriser pour le Machine Learning
Le plus souvent,
Pour importer une librairie dans Python, rien de plus simple. Il suffit
d’écrire le nom de la librairie précédé de « import » en tête de votre
programme. Il est également possible d’importer certaines fonctions de la
librairie en écrivant from « librairie » import « truc ».
4. LES 4 LIBRAIRIES À MAÎTRISER POUR LE
MACHINE LEARNING
RAHMA BOUJELBEN
4. LES 4 LIBRAIRIES À MAÎTRISER POUR LE
MACHINE LEARNING
import pandas as pd
4. LES 4 LIBRAIRIES À MAÎTRISER POUR LE
MACHINE LEARNING
4. Créer le modele
Modèle
5. Apprendre le modele
6. Evaluer le modele
7. Enregistrer le modele
Déploiement
6. Faire les prédictions
Données : Datasets
tabulaires
NOTION 1 – DATASET
Exemples d’appartements avec leur prix 𝒚 ainsi que certaines de leurs caractéristiques
(features).
=descripteurs=Attributs
Features
Target
classe X1 X2 X3 X4
Problème de regression
Objectif : Partant des données, l’objectif est de déterminer à quel groupe l’individu ω∗ a le plus chance d’appartenir.
Exemple : Dans une classe, un professeur considère deux groupes d’élèves, G1 et G2, en fonction de leur compétence. On
dispose uniquement des notes et de l’affectation de 6 élèves :
Mohamed 20 20 0 0 G1
Ali 8 8 12 12 G2
Farah 20 20 0 0 G1
Lilia 0 0 20 20 G2
Mariem 10 10 10 10 G1
Mouna 2 2 18 18 G2
Problème de classification
• Data pre processing
DATA MINING : MULTIPLICITÉ DES SUPPORTS ET
DES SOURCES
ANOMALIES!
Attribut nominal ordinal
Descripteurs/ Features/Attribut
Attribut nominale
2 /06 /2021
35 NAN Grand oui 3 400 3 60 non
Outliers
Case vide
NAN NAN NAN NAN NAN NAN NAN NAN 34 OUI
Distribution de valeurs variées
3 oui Moyen Non 5 6 3 2 /04 /2013 75 non
Attribut classe nominal
40
7 oui Petit Non 5 6 3 01 /02 /2012 75 oui
PRÉPARATION DES DONNÉES
Transformation de données
Réduction des données
41
NETTOYAGE DES DONNÉES
Etude Exploratoire
42
DÉTECTION D’ANOMALIES
43
DÉTECTION D’ANOMALIES
Nominales
Numérique
44
DÉTECTION DES CASES VIDES
import numpy as np
np.where(df.applymap(lambda x: x == ''))
45
DÉTECTION DES VALEURS MANQUANTES NAN
Valeurs
Exploration des valeurs manquantes manquante
data.xlsx
import pandas as pd
import numpy as np
df=pd.read_excel(r'chemin\data.xlsx')
df.isnull().sum() X1 1
⋮ ⋮ ⋮ ⋮ ⋮
X2 1
X3 2
X4 2
46
TRAITEMENT DES VALEURS ABERRANTES
Détection des valeurs aberrantes: Boxplot / Boite à moustache
47
TRAITEMENT DES VALEURS ABERRANTES
Détection des valeurs aberrantes: Boxplot / Boite à moustache
Médiane = 248
→ Si N est impair (N=2n+1) la médiane est la donnée de rang n+1
→ Si N est pair ( N=2n) la médiane est la demi somme des données de rang
n et de rang n+1 .
TRAITEMENT DES VALEURS ABERRANTES
Q1 = 239
→ Le premier quartile ( Q1 ) est la plus petite donnée de la liste telle qu’au
moins un quart des données de la liste sont inférieures ou égales à Q1.
Rang Q1= 30/4, Rang Q1= 7,5, Rang Q1 =8 , Q1 = 239
Q3 = 251
→ Le premier quartile ( Q3 ) s est la plus petite donnée de la liste telle qu’au
49
moins les trois quarts des données de la liste sont inférieures ou égales à
Q3 .Rang Q3= 30*3/4, Rang Q3= 22,5, Rang Q3 =23 , Q3 = 251
TRAITEMENT DES VALEURS ABERRANTES
Détection des valeurs aberrantes: Boxplot / Boite à moustache
12
269
218
239
251
TRAITEMENT DES VALEURS ABERRANTES
Détection des valeurs aberrantes: Boxplot / Boite à moustache
Python
percentile25 = train['Age'].quantile(0.25)
percentile75 = train['Age'].quantile(0.75)
upper_limit = percentile75 + 1.5 * (percentile75-percentile25)
lower_limit = percentile25 - 1.5 * (percentile75-percentile25)
TRAITEMENT DES VALEURS ABERRANTES
Remplacer les valeurs aberrantes par une valeur significative
52
TRAITEMENT DES VALEURS MANQUANTES
NAN
53
TRAITEMENT DES VALEURS MANQUANTES A B C
B NAN 3 NAN
2 4 NAN
Solution 1 : Suppression 3
4 5 NAN
4
→ dataframe .dropna (how=« any », axis =1) NAN 6 NAN
Si une seule valeur de la ligne est égale à NAN alors toute la ligne 5
va être supprimer 6 A B
→ dataframe .dropna (how=« all »,axis =1) NAN 3
Si la valeur NAN est présente dans toutes la lignes
2 4
my_data=my_data.dropna(axis=0,thresh=my_data.shape[1]*0.7)
my_data=my_data.dropna(axis=1,thresh=my_data.shape[0]*0.7)
TRAITEMENT DES VALEURS MANQUANTES
Solution 3 : Remplissage des valeurs manquantes par une valeur fictive
df.fillna(0)
strategy='mean' ?
strategy='median' ?
57
TRAITEMENT DES VALEURS MANQUANTES
Solution 3 : Remplissage des valeurs manquantes par une
valeur fictive
Backfill/bfill : Remplir les NAN avec la prochaine observation valide
58
TRAITEMENT DES VALEURS MANQUANTES
Solution 3 : Remplissage des valeurs manquantes par une valeur fictive
ffill : Remplir les NAN avec la dernière observation valide
59
Remplissage de NAN bfill, backfill or ffill which fills the place with value in the Forward index or Previous/B
ack respectively.
-axis: 0 = lignes or 1 =colonnes
Dataframe . Drop_duplicates(inplace=true)
SUPPRIMER DES COLONNES
train.drop('Cabin',axis=1,inplace=True)
Traitement de string
df_covid['Douleur']=df_covid['Douleur'].replace("oui",1.)
df_covid.head()
Traitement de string
pd.crosstab(train['Title'], train['Sex'])
Prétraitements des données
Traitement des
anomalies :NAN
Encodage Normalisation
valeurs aberrantes
,vides , etc ????
Sklearn.preprocessing
1- Etoile 0 0
2- Cercle 1 1
3- Triangle 2 0.25
0.33
Rahma Boujelbane
Liste des transformer : Sklearn.preprocessing
Rahma Boujelbane
Liste des transformer : Sklearn.preprocessing
Train set
Train set transformé
Rahma Boujelbane
Liste des transformer : Sklearn.preprocessing
Principe
X_train X_train
2
Triangle
1
Cercle
0
Etoile
2
Triangle
Rahma Boujelbane
Encodage
Encodage : transformer les variables nominales en variables catégorielles
Rahma Boujelbane
Encodage
- Ordinal encoding
Rahma Boujelbane
Encodage
Lors de la prédiction
enc.inverse_transf=orm (np.array([0]))
→ Covid 19
Rahma Boujelbane
Encodage
Principe : Associe chaque catégorie ou classe d’une variable à une valeur décimale unique
X_train
Triangle 2
Cercle 1
Etoile 0 Df = ordinal encoder ( )
Triangle 1
Cercle 1 Encoder .fit_transform ()
Triangle 2
Encodage binaire : encode chaque valeur d’une variable categorielle en une variable binaire
→ LabelBinarizer ()
→ Multilabel Binarizer ( )
→ One HotEncoder()
Rahma Boujelbane
Encodage
Rahma Boujelbane
Encodage
Rahma Boujelbane
Encodage
Rahma Boujelbane
Encodage
Rahma Boujelbane
Encodage
Résumé
Erreur
Rahma Boujelbane
Normalisation
La normalisation
La mise à l'échelle consiste à altérer les données afin de réduire leur variance ou leur valeur absolue. Elle
est utile pour les cas suivants :
•Lorsque les variables d'un jeu de données ont des ordres de grandeur différents, elles peuvent fausser les
estimations des algorithmes d'apprentissage automatique.
•Les classificateurs utilisant la distance euclidienne seront affectés si un des composant est distribué sur un
espace beaucoup plus grand que les autres.
Rahma Boujelbane
La normalisation des données
Rahma Boujelbane
La normalisation des données
Rahma Boujelbane
La normalisation des données
Rahma Boujelbane
La normalisation des données
Rahma Boujelbane
La normalisation des données
Standard scaler
Moyenne
Ecart type
Rahma Boujelbane
La normalisation des données
Rahma Boujelbane
La normalisation des données
Rahma Boujelbane
Les pipelines
La classe Pipeline
Pour créer une pipeline , 2 options :
Classe Pipeline
Fonction make _ pipeline
Standard scaler
Moyenne
Ecart type
Liste des transformer : Sklearn.preprocessing
→ LabelBinarizer ()
→ Multilabel Binarizer ( )
→ One HotEncoder()
TRANSFORMATION DES DONNÉES
La mise à l'échelle consiste à altérer les données afin de réduire leur variance ou leur valeur absolue. Elle est utile pour
les cas suivants :
•Lorsque les variables d'un jeu de données ont des ordres de grandeur différents, elles peuvent fausser les estimations
des algorithmes d'apprentissage automatique.
•Les classificateurs utilisant la distance euclidienne seront affectés si un des composant est distribué sur un espace
beaucoup plus grand que les autres.
96
TRANSFORMATION DES DONNÉES
𝐱𝟏 … 𝐱𝐢 𝐱𝐩
aji −min 𝐱 𝐢 𝐨𝐛𝐬𝟏 𝐚𝟏𝟏 ⋮ 𝐚𝟏𝐢 𝐚𝟏𝐩
aji =
max 𝐱 𝐢 − min 𝐱 𝐢 ⋮ ⋮ ⋮ ⋮ ⋮
𝐨𝐛𝐬𝐣 𝐚𝐣𝟏 ⋮ 𝐚𝐣𝐢 𝐚𝐣𝐩
𝐨𝐛𝐬𝐍 𝐚𝐍𝟏 … 𝐚𝐍𝐢 𝐚𝐍𝐩
arr= enc.fit_transform(df_outlook)
df_outlook=pd.DataFrame(arr, columns= ['outlook'])
98
TRANSFORMATION DES DONNÉES ENCODING CATEGORIAL DATA
99
RÉDUCTION DE DIMENSIONNALITÉ
F Sélection
F : feature space
F′
sélection de
descripteurs
100
RÉDUCTION DE DIMENSIONNALITÉ
o Dispersion ratio
Méthodes Méthodes Méthodes ⋮
Filtres Wrappers Embedded
101
SÉLECTION DES ATTRIBUTS
•
from sklearn.ensemble import ExtraTreesClassifier
RandomasForest
import matplotlib.pyplot plt importance
model = ExtraTreesClassifier()
model.fit(x_reduced_train,y_train)
print(model.feature_importances_)
102
SÉLECTION DES ATTRIBUTS
• Variance
variances = df.var()
varres=pd.DataFrame(variances)
varres[varres[0] < 0.025]
103
ECHANTILLONNAGE : SPLIT DE DONNÉES
70% -80%
20% -30%
104
ECHANTILLONNAGE : SPLIT DE DONNÉES
Descripteurs Classe (Label)=Target
Observation A1 A2 A3 Classe
1 1 0.001 12.134 1
Ensemble 2 0 0.023 12.001 0
d’apprentissage 3 1 0.456 9.0073 1
4 0 0.114 4.0017 0 C.Désirée C.Prédite
5 0 0.555 19.771 1 1 1
6 1 0.551 6.9912 0 0 1
0 0
Modèle 0 1
Classe
1 0
1
7 0 0.020 14.478 ? 1 1
Ensemble de test
0
8 1 0.003 8.1238 ? 0 0
0
7 0 0.020 13.478 ? 1 1
105 0
8 1 0.003 2.1238 ?
APPRENTISSAGE
106
EVALUATION
désirée
Classe
⋮ ⋮
CM(i,i): Nombre d’observations désirées CM(i,j)
Ci
comme Ci et prédites comme Ci CN CM(N,N)
❑Rappel recallCi
La proportion des items pertinents proposés parmi l'ensemble des Classe prédite
𝐂𝐌 C1 … Ci CN
items pertinents
C1 CM(1,1) CM(1,i)
désirée
Classe
CM(i,i) ⋮ ⋮
recallCi = N Ci CM(i,i)
σj=1 CM(i,j) CN CM(N,N)
désirée
Classe
𝐓𝐏+𝐅𝐍
no 𝐅𝐏 𝐓𝐍
désirée
Précision =
Classe
𝐅𝐍+𝐓𝐍 𝐅𝐏 𝐓𝐍
no
109
Evaluation
❑F-mesure
110
Evaluation
111