INF371 - EC1 : Introduction à la Fouille de données
Durée : 1 heure
NB : téléphones, ordinateurs, documents fermés
Question de cours : (2+2+2+2 points)
1. Définissez les termes suivants :
— Données étiquetées : Données pour lesquelles chaque exemple est associé
à une étiquette ou une classe connue, souvent utilisées pour l’apprentissage
supervisé.
— Fouille de données : Processus d’extraction de connaissances utiles à partir
de grandes quantités de données, en utilisant des techniques statistiques, de
machine learning et de bases de données.
— Motif fréquent : Ensemble d’éléments, séquences ou structures qui appa-
raissent fréquemment dans un jeu de données.
— Règle d’association : Relation implicite trouvée dans un jeu de données,
exprimée sous la forme ”Si X, alors Y”.
2. Étapes de la fouille de données :
— Compréhension des objectifs métier.
— Préparation des données (nettoyage, transformation).
— Exploration et modélisation des données.
— Évaluation du modèle.
— Déploiement des résultats.
3. Validation croisée d’ordre k et holdout :
— Validation croisée d’ordre k : Diviser les données en k sous-ensembles ;
utiliser k − 1 pour l’entraı̂nement et 1 pour le test, en répétant k fois.
— Holdout : Séparer une partie fixe des données pour l’entraı̂nement et une
autre pour le test.
4. Précision et rappel :
— Précision : Proportion des prédictions positives correctes parmi toutes les
prédictions positives.
— Rappel : Proportion des instances positives correctement identifiées parmi
toutes les instances positives.
Exercice 2 : (1+2+2+2 points)
Soit le jeu de données représenté dans le tableau ci-dessous où x1 et x2 sont les caractères
mesurés sur les individus ”Classe”. La classe ” ?” représente la valeur manquante, stockée
dans le fichier [Link].
1. Commande R pour charger les données :
data <- [Link]("[Link]", header = TRUE, sep = "\t")
2. Méthodes pour remplacer les valeurs manquantes :
— Remplacement par la moyenne :
1
Individu x1 x2 Classe
W1 2.8 2.0 A
W2 7 4.3 B
W3 2.9 ? A
W4 1.2 6 B
W5 ? 4.4 B
Table 1 – Jeu de données
data$x1[[Link](data$x1)] <- mean(data$x1, [Link] = TRUE)
data$x2[[Link](data$x2)] <- mean(data$x2, [Link] = TRUE)
— Remplacement par la médiane :
data$x1[[Link](data$x1)] <- median(data$x1, [Link] = TRUE)
data$x2[[Link](data$x2)] <- median(data$x2, [Link] = TRUE)
3. Normalisation : La normalisation consiste à transformer les données pour qu’elles
soient dans une même échelle, par exemple entre 0 et 1. Cela améliore les perfor-
mances des algorithmes sensibles aux amplitudes.
data$x1 <- (data$x1 - min(data$x1)) / (max(data$x1) - min(data$x1))
data$x2 <- (data$x2 - min(data$x2)) / (max(data$x2) - min(data$x2))
4. Discrétisation et extraction des règles :
library(arules)
discretized_data <- discretizeDF(data)
rules <- apriori(discretized_data, parameter = list(supp = 0.5, conf = 0.8))
inspect(rules)
Exercice 3 : (2+1+2 points)
La figure suivante est un arbre de décision construit pour prédire si le temps est favorable
pour la pratique du sport.
Ciel
Ensoleillé Couvert
Humidité Vent
Élevée → Non Fort → Non
Basse → Oui Faible → Oui
1. Attributs utilisés : Ciel, Humidité, Vent. Non, ils ne sont pas les seuls possibles.
Par exemple, la température pourrait être pertinente.
2. Étiquettes possibles de l’attribut classe : Oui, Non.
3. Algorithme pour construire cet arbre :
— Utiliser l’algorithme ID3 ou C4.5.
— Sélectionner l’attribut avec le plus grand gain d’information à chaque nœud.
— Répéter jusqu’à ce que toutes les instances soient classées ou qu’un critère
d’arrêt soit atteint.