SlideShare une entreprise Scribd logo
1  sur  63
Télécharger pour lire hors ligne
Manipulation des données
en R
(Partie 3)
Master Big Data & Cloud Computing
2021/2022
Data Manipulation en R
Qu'est-ce qu'un arbre de décision?
• Algorithme d'apprentissage supervisé (ayant une variable
cible prédéfinie) qui est principalement utilisé dans les
problèmes de classification.
• Il fonctionne pour les variables d'entrée et de sortie
catégoriques et continues.
• Dans cette technique, nous avons divisé la population ou
l'échantillon en deux ou plusieurs ensembles homogènes (ou
sous-populations) en fonction du facteur de division /
différenciateur le plus significatif dans les variables d'entrée.
2
Data Manipulation en R
Exemple
Disons que nous avons un échantillon de 30 étudiants avec trois variables Sexe
(Garçon / Fille), Groupe (1/3) et Présentation (1 a 20). 15 sur 30 réussiront l'examen.
Maintenant, nous voulons créer un modèle pour prédire qui passera l'examen? Dans
ce problème, nous devons séparer les étudiants qui ont réussi son examen en fonction
d'une variable d'entrée très significative parmi les trois.
3
Split par Sexe
Etudiants = 30
Valider = 15
(50%)
Etudiants = 10
Valider = 2
(20%)
Fille
Etudiants = 20
Valider = 13
(65%)
Garcon
Split par
Presentation
Etudiants = 30
Valider = 15
(50%)
Etudiants = 12
Valider = 5 (42%)
Note <10
Etudiants = 18
Valider = 6 (43%)
Note >10
Split par
Groupe
Etudiants = 30
Valider = 15
(50%)
Etudiants = 14
Valider = 26
(43%)
Groupe 1
Etudiants = 16
Valider = 19
(56%)
Groupe 3
Data Manipulation en R
Types d'arbres de décision
• Variable catégorique: Arbre de décision qui a une variable cible.
• Exemple : Dans le scénario du problème de l’élève, où la variable cible était «L’élève
fera t’il son devoir ou non», c’est-à-dire OUI ou NON.
• Variable continue: L’arbre de décision a une variable cible continue.
• Exemple : Disons qu’il nous est difficile de prédire si un client paiera sa facture de
renouvellement auprès d’une compagnie d’assurance (oui / non).
• Nous savons ici que le revenu du client est une variable significative, mais que la
compagnie d’assurance ne dispose pas de données détaillées sur le revenu de tous les
clients.
4
Data Manipulation en R
Terminologie (1/2)
5
Data Manipulation en R
Terminologie (2/2)
• Nœud racine: il représente la population entière ou un échantillon, divisé en deux ou
plusieurs ensembles homogènes.
• Fractionnement: il s’agit de diviser un nœud en deux sous-nœuds ou plus.
• Nœud de décision: lorsqu'un sous-nœud se divise en plusieurs sous-nœuds, il est alors
appelé nœud de décision.
• Nœud terminal: les nœuds non divisés sont appelés nœuds terminaux ou terminal.
• Élagage(Purning): lorsque nous supprimons des sous-nœuds d’un nœud de décision, ce
processus est appelé élagage.Vous pouvez dire le processus opposé de la scission.
• Branche: Une sous-section de l’arbre entier est appelée branche ou sous-arbre.
• Nœud parent et enfant: un nœud divisé en sous-nœuds est appelé nœud parent de sous-
nœuds, où les sous-nœuds sont l'enfant du nœud parent.
6
Data Manipulation en R
Comment un arbre décide-t-il
où se diviser?
• La décision de division stratégique affecte considérablement la précision d’un arbre.
• Les critères de décision sont différents pour les arbres de classification et de régression.
• Les arbres de décision utilisent plusieurs algorithmes pour décider de diviser un nœud en
deux sous-nœuds ou plus.
• La création de sous-nœuds augmente l'homogénéité des sous-nœuds résultants.
• La sélection de l'algorithme est également basée sur le type de variables cibles.
7
Data Manipulation en R
Algorithme pour l’arbe de decision
 Gini
 Chi-square
 Information gain
 Reduction in Variance
8
Data Manipulation en R
Gini
si nous sélectionnons deux éléments d'une population au hasard, ils doivent
appartenir à la même classe et la probabilité pour cela est de 1 si la population est
pure.
 Cela fonctionne avec la variable cible catégorique «Succès» ou «Échec».
 Il effectue uniquement des divisions binaires
 Plus la valeur de Gini est élevée, plus l'homogénéité est grande.
9
Data Manipulation en R
Gini
10
Split par Sexe
Etudiants = 30
Valider = 15 (50%)
Etudiants = 10
Valider = 2 (20%)
Fille
Etudiants = 20
Valider = 13 (65%)
Garcon
Split par
Presentation
Etudiants = 30
Valider = 15 (50%)
Etudiants = 12
Valider = 5 (42%)
Note <10
Etudiants = 18
Valider = 6 (43%)
Note >10
Data Manipulation en R
Gini
• Calculez Gini pour les sous-nœuds, en utilisant la formule somme du carré de
probabilité de succès et d’échec:
(p ^ 2 + q ^ 2)
• Calculer Gini pour la scission en utilisant le score de Gini pondéré de chaque
nœud de cette scission
Étapes pour calculer Gini pour une division
11
Data Manipulation en R
Gini
Split sur le Sexe:
Calculer, Gini pour le sous-nœud Femme = (0.2) * (0.2) + (0.8) * (0.8) = 0.68
Gini pour le sous-nœud Male = (0,65) * (0,65) + (0,35) * (0,35) = 0,55
Calculer le Gini pondéré pour le sexe divisée = (10/30) * 0,68 + (20/30) * 0,55 = 0,59
Split on Groupe:
Gini pour le sous-noeud de Groupe 1= (0.43) * (0.43) + (0.57) * (0.57) = 0.51
Gini pour le sous-nœud Groupe 3= (0.56) * (0.56) + (0.44) * (0.44) = 0.51
Calculer le Gini pondéré pour le Groupe divisée = (14/30) * 0,51 + (16/30) * 0,51 =
0,51
12
Data Manipulation en R
Chi-Square
C'est un algorithme permettant de déterminer la signification statistique entre les
différences entre les sous-nœuds et le nœud parent. Nous le mesurons par la somme
des carrés des différences standardisées entre les fréquences observées et attendues
de la variable cible.
• Cela fonctionne avec la variable cible catégorique «Succès» ou «Échec».
• Il peut effectuer deux divisions ou plus.
• Plus la valeur de Chi-Square est élevée, plus la signification statistique des différences entre le
sous-nœud et le nœud parent est élevée.
• Le chi-Square de chaque nœud est calculé à l'aide de la formule :
Chi-Square = ((Réel - Attendu) ^ 2 / Attendu) ^1/2
• Il génère une arborescence appelée CHAID (Chi-square Automatic Interaction Detector) 13
Data Manipulation en R
Chi-Square
• Calculer le Chi-Square pour un nœud individuel en calculant la déviation entre
succès et échec.
• Chi-Square d’une division calculé en utilisant la somme de tous les Chi-Square de
succès et d'échec de chaque nœud d’une division.
Étapes pour calculer Chi-Square pour une division
14
Data Manipulation en R
Chi-Square
Split sur le Sexe:
• nœud Femme, remplissez la valeur réelle pour « réussir l’examen » et « ne valide
pas », ici, elles sont 2 et 8 respectivement.
• Calculez la valeur attendue pour « réussir l’examen » et « ne valide pas ». Dans
ce cas, la valeur serait 5 pour les deux, car le nœud parent a une probabilité de
50% et nous avons appliqué la même probabilité au nombre de femmes (10).
• Calculez les écarts en utilisant la formule Réel - Attendu. C'est pour « réussir
l’exam » (2 - 5 = -3) et pour « Ne valide pas » (8 - 5 = 3).
• Calculez le chi carré du nœud pour « réussir l’exam » et « Ne valide pas » à
l'aide d'une formule avec la formule, = ((Réel - Attendu) ^ 2 / Attendu) ^ 1/2.
15
Data Manipulation en R
Chi-Square
16
Node reussir Ne valide pas total
Reussir
attendu
Ne valide pas
attendu
Deviation
reussir
Deviation ne
valide pas
Chi-Square
reussir Ne vaide pas
Fille 2 8 10 5 5 -3 3 1.34 1.34
Garcon 13 7 20 10 10 3 -3 0.95 0.95
total 4.58
Data Manipulation en R
Arbres de décision avec party
Sepal.Length, Sepal.Width, Petal.Length et Petal.Width permettent de prédire Species
des fleurs.
ctree() crée un arbre de décision.
predict() effectue la prédiction pour les nouvelles données.
17
Data Manipulation en R
Arbres de décision avec party
Avant la modélisation, les données sur l'iris sont divisées ci-dessous en deux sous-
ensembles: training (70%) et test (30%).
> set.seed(1500)
> ind <- sample(2, nrow(iris), replace=TRUE, prob=c(0.7,0.3))
> trainData <- iris[ind==1,]
> testData <- iris[ind==2,]
18
Data Manipulation en R
Arbres de décision avec party
spécifie que Species est la variable cible et que toutes les autres variables sont des
variables indépendantes.
> library(party)
> Formule <- Species~Sepal.Length + Sepal.Width + Petal.Length +
Petal.Width
> iris_ctree <- ctree(Formule, data=trainData)
> # Verifie la prediction
> table(predict(iris_ctree), trainData$Species)
setosa versicolor virginica
setosa 33 0 0
versicolor 0 34 3
virginica 0 1 34 19
Data Manipulation en R
> print(iris_ctree)
Conditional inference tree with 3 terminal nodes
Response: Species
Inputs: Sepal.Length, Sepal.Width, Petal.Length, Petal.Width
Number of observations: 105
1) Petal.Length <= 1.9; criterion = 1, statistic = 98.359
2)* weights = 33
1) Petal.Length > 1.9
3) Petal.Width <= 1.7; criterion = 1, statistic = 49.408
4)* weights = 37
3) Petal.Width > 1.7
5)* weights = 35
20
Data Manipulation en R
> plot(iris_ctree)
le diagramme en barres de chaque
feuille indique les probabilités qu'une
instance tombe dans les trois espèces.
21
Data Manipulation en R
> plot(iris_ctree, type="simple")
Par exemple, le nœud 2 est étiqueté avec
«n = 33, y = (1, 0, 0)», ce qui signifie qu'il
contient 33 instances d'apprentissage et
qu'elles appartiennent toutes à la
première classe «setosa».
22
Data Manipulation en R
Après cela, l’arbre construite doit être testé avec des données de test.
> testPred <- predict(iris_ctree, newdata = testData)
> table(testPred, testData$Species)
testPred setosa versicolor virginica
setosa 17 0 0
versicolor 0 15 2
virginica 0 0 11
23
Data Manipulation en R
Arbres de décision avec rpart
La fonction rpart () est utilisée pour créer un arbre de décision. L'arbre avec l'erreur
de prédiction minimale est sélectionné. Il est ensuite appliqué aux nouvelles données
pour effectuer une prédiction avec function predict ().
> library(rpart)
> iris_rpart <- rpart(Formule, data = trainData, control =
rpart.control(minsplit = 10))
24
Data Manipulation en R
> print(iris_rpart$cptable)
CP nsplit rel error xerror xstd
1 0.4852941 0 1.00000000 1.2205882 0.06132631
2 0.4558824 1 0.51470588 0.8235294 0.07517761
3 0.0100000 2 0.05882353 0.1029412 0.03758880
> print(iris_rpart)
n= 105
node), split, n, loss, yval, (yprob)
* denotes terminal node
1) root 105 68 virginica (0.31428571 0.33333333 0.35238095)
2) Petal.Length< 2.6 33 0 setosa (1.00000000 0.00000000
0.00000000) *
3) Petal.Length>=2.6 72 35 virginica (0.00000000 0.48611111
0.51388889)
6) Petal.Width< 1.75 37 3 versicolor (0.00000000 0.91891892
0.08108108) *
7) Petal.Width>=1.75 35 1 virginica (0.00000000 0.02857143
0.97142857) *
25
Data Manipulation en R
> plot(iris_rpart)
> text(iris_rpart, use.n=T)
26
Data Manipulation en R
Ensuite, nous sélectionnons l’arbre avec l’erreur de prédiction minimale
> opt <- which.min(iris_rpart$cptable[,"xerror"])
> cp <- iris_rpart$cptable[opt, "CP"]
> iris_prune <- prune(iris_rpart, cp = cp)
> print(iris_prune)
n= 105
node), split, n, loss, yval, (yprob)
* denotes terminal node
1) root 105 68 virginica (0.31428571 0.33333333 0.35238095)
2) Petal.Length< 2.6 33 0 setosa (1.00000000 0.00000000
0.00000000) *
3) Petal.Length>=2.6 72 35 virginica (0.00000000 0.48611111
0.51388889)
6) Petal.Width< 1.75 37 3 versicolor (0.00000000 0.91891892
0.08108108) *
7) Petal.Width>=1.75 35 1 virginica (0.00000000 0.02857143
0.97142857) *
27
Data Manipulation en R
Tree Pruning
o la technique de mise en contrainte est une approche gourmande.
o il recherche instantanément la meilleure répartition et avance jusqu’à atteindre
l’une des conditions d’arrêt spécifiées.
28
Data Manipulation en R
Tree Pruning
C'est exactement la différence entre un arbre de décision normal et Pruning. Un arbre
de décision avec des contraintes ne verra pas le camion en avant et adoptera une
approche gourmande en prenant à gauche. D'autre part, si nous utilisons Pruning,
nous examinons en fait quelques étapes et faisons un choix.
1. Nous prenons d’abord l’arbre de décision à une grande profondeur.
2. Nous commençons par le bas et commençons à enlever les feuilles qui nous
donnent des rendements négatifs par rapport au haut.
3. Supposons qu’une Division nous donne un gain de -10 (perte de 10), puis que la
Division suivante nous donne un gain de 20.
29
Data Manipulation en R
Qu'est-ce que Radom Forest ?
• Random Forest est une méthode d’apprentissage automatique polyvalente capable
d’exécuter des tâches de régression et de classification.
• Il met également en œuvre des méthodes de réduction dimensionnelle, traite les
valeurs manquantes, et d'autres étapes essentielles de l'exploration des données.
• C'est un type de méthode d'apprentissage d'ensemble, dans laquelle un groupe de
modèles faibles se combine pour former un modèle puissant.
30
Data Manipulation en R
Comment ça marche?
nous cultivons plusieurs arbres par opposition à un seul arbre dans le modèle CART.
Pour classer un nouvel objet en fonction d'attributs, chaque arbre donne une
classification et on dit que l'arbre «vote» pour cette classe.
La forêt choisit la classification ayant le plus de voix et en cas de régression, elle
prend la moyenne des sorties de différents arbres.
31
Data Manipulation en R
Chaque arbre est planté et cultivé comme suit:
• Supposons que le nombre de cas dans l'ensemble d'apprentissage est N.
• Ensuite, un échantillon de ces N cas est pris au hasard, mais avec
remplacement. Cet échantillon constituera l’entraînement nécessaire à la
croissance de l’arbre.
• S'il y a M variables d'entrée, un nombre m <M est spécifié de telle sorte qu'à
chaque nœud, m variables soient sélectionnées de manière aléatoire sur M.
• La meilleure répartition sur ces m est utilisée pour scinder le nœud.
• La valeur de m est maintenue constante pendant la croissance de la forêt.
• Chaque arbre est cultivé dans la plus grande mesure possible et il n'y a pas
Pruning.
• Prédisez de nouvelles données en agrégeant les prédictions des arbres de niveau
supérieur 32
Data Manipulation en R
Random Forest dans R
Il existe deux limitations à la fonction randomForest ().
1. il ne peut pas gérer les données avec des valeurs manquantes, et les utilisateurs
doivent attribuer des données avant de les introduire dans la fonction.
2. une limite de 32 au nombre maximal de niveaux de chaque attribut qualitatif. Les
attributs avec plus de 32 niveaux doivent d’abord être transformés avant d’utiliser
randomForest ().
33
Data Manipulation en R
Random Forest dans R
la formule est définie sur "Espèce∼.", ce qui signifie prédire les espèces avec tous les
autres variables dans les données
library(randomForest)
rf <- randomForest(Species~., data=trainData,
ntree=100,proximity=TRUE)
> table(predict(rf), trainData$Species)
setosa versicolor virginica
setosa 33 0 0
versicolor 0 32 4
virginica 0 3 33
print(rf)
attributes(rf)
34
Data Manipulation en R
le résultat est vérifié avec les fonctions table () et margin (). La marge d'un point de
données est la proportion de votes pour la classe correcte moins la proportion
maximale de votes pour les autres classes.
> irisPred <- predict(rf, newdata=testData)
> table(irisPred, testData$Species)
> plot(margin(rf, testData$Species))
35
Data Manipulation en R
Qu'est-ce que l'analyse de régression?
L’analyse de régression est une technique de modélisation prédictive qui étudie la
relation entre une variable dépendante (cible) et une ou plusieurs variables
indépendantes (prédicteur).
Cette technique est utilisée pour la prévision, time series modelling et la recherche
du lien de causalité entre les variables. Par exemple, la relation entre la conduite
imprudente et le nombre d'accidents de la route causés par un conducteur est mieux
étudiée par la régression.
36
Data Manipulation en R
Pourquoi utiliser l'analyse de régression?
Comme mentionné ci-dessus, l'analyse de régression estime la relation entre deux
variables ou plus.
• Estimer la croissance des ventes d’une entreprise en fonction des conditions
économiques actuelles.
• Les données récentes sur les entreprises indiquent que la croissance des
ventes est environ deux fois et demie supérieure à celle de l’économie. En
utilisant cette information, nous pouvons prédire les ventes futures de la
société en fonction des informations actuelles et passées.
37
Data Manipulation en R
Pourquoi utiliser l'analyse de régression?
L'utilisation de l'analyse de régression présente de nombreux avantages.
• Il indique les relations significatives entre variable dépendante et variable
indépendante.
• Il indique la force de l'impact de plusieurs variables indépendantes sur une
variable dépendante.
38
Data Manipulation en R
Quels sont les types de régressions?
Linear Regression
Logistic Regression
Polynomial Regression
Stepwise Regression
Ridge Regression
Lasso Regression
ElasticNet Regression
39
Data Manipulation en R
Régression linéaire
La régression linéaire consiste à prédire la réponse avec une fonction linéaire des
prédicteurs comme suit:
y=c0+c1 x1+c2 x2+···+ck xk
où x1, x2,···, xk sont des prédicteurs et y est la réponse à prédire.
40
Data Manipulation en R
Régression linéaire en R
From Australian Bureau of Statistics http://www.abs.gov.au
> year <- rep(2008:2010, each = 4)
> quarter <- rep(1:4, 3)
> cpi <- c(162.2, 164.6, 166.5, 166.0,166.2, 167.0, 168.6,
169.5,171.0, 172.1, 173.3, 174.0)
> plot(cpi, xaxt="n", ylab="CPI", xlab="")
> axis(1, labels=paste(year,quarter,sep="Q"), at=1:12, las=3)
41
Data Manipulation en R
> fit <- lm(cpi˜year + quarter)
> fit
Call:
lm(formula = cpi ~ year + quarter)
Coefficients:
(Intercept) year quarter
-7644.488 3.888 1.167
Le modèle de régression linéaire est construit avec la fonction lm () sur les données,
en utilisant un year et quarter comme prédicteurs et un cpi en réponse.
Régression linéaire en R
42
Data Manipulation en R
> (cpi2011 <- fit$coefficients[[1]] + fit$coefficients[[2]]*2011 +
fit$coefficients[[3]]*(1:4))
[1] 174.4417 175.6083 176.7750 177.9417
Avec le modèle linéaire ci-dessus, l’cpi est calculé comme suit:
cpi=c0+c1∗year+c2∗quarter
ou c0 , c1, et c2 sont les coefficients de l'ajustement du modèle. Par conséquent, les cpi
de 2011 peuvent être calculés comme suit.
Régression linéaire en R
43
Data Manipulation en R
> data2011 <- data.frame(year=2011, quarter=1:4)
> cpi2011 <- predict(fit, newdata=data2011)
> style <- c(rep(1,12), rep(2,4))
> plot(c(cpi, cpi2011), xaxt="n", ylab="CPI", xlab="", pch = style,
col = style)
> axis(1, at=1:16, las=3, labels=c(paste(year,quarter,sep="Q"),
"2011Q1", "2011Q2", "2011Q3", "2011Q4"))
> abline(a=0, b=1)
Régression linéaire en R
44
Data Manipulation en R
Régression logistique
chances = p/(1-p) = probabilité d'occurrence de l'événement /
probabilité de ne pas se produire
ln(chances) = ln(p/(1-p))
logit(p) = ln(p/(1-p)) = b0+b1X1+b2X2+b3X3....+bkXk
• La régression logistique est utilisée pour trouver la probabilité d'un événement =
succès et d'un événement = échec.
• Utiliser la régression logistique lorsque la variable dépendante est binaire (0/1,
Vrai / Faux, Oui / Non). Ici, la valeur de Y va de 0 à 1 et peut être représentée par
l’équation suivante
45
Data Manipulation en R
Clustering
Clustering consiste à diviser la population ou les points de données en un certain
nombre de groupes de manière à ce que les points de données des mêmes groupes
soient plus similaires aux autres points de données du même groupe que ceux des
autres groupes.
L’objectif est de séparer les groupes ayant des traits similaires et de les affecter au
clusters.
46
Data Manipulation en R
Applications du clustering
 Recommendation engines
 Market segmentation
 Social network analysis
 Search result grouping
 Medical imaging
 Image segmentation
 Anomaly detection
47
Data Manipulation en R
k-Means Clustering
K-Means est un algorithme de classification itératif qui vise à trouver des maxima
locaux dans chaque itération. Cet algorithme fonctionne en 5 étapes:
1. Spécifiez le nombre souhaité de clusters K
2. Attribuer aléatoirement chaque point de données à un cluster
3. Calculer les centroïdes de cluster
4. Réassignez chaque point au centre du cluster le plus proche
5. Recalculer les centroïdes de cluster
6. Réassignez chaque point au centre du cluster le plus proche
48
Data Manipulation en R
k-Means Clustering en R
nous retirons les espèces des données à regrouper. Après cela, nous appliquons la
fonction kmeans () à iris2 et stockons le résultat du clustering dans kmeans.result. Le
numéro de cluster est défini sur 3 dans le code ci-dessous.
> iris2 <- iris
> iris2$Species <- NULL
> (kmeans.result <- kmeans(iris2, 3))
49
Data Manipulation en R
k-Means Clustering en R
Le résultat du regroupement est ensuite comparé à l'étiquette de classe (Species)
pour vérifier si des objets similaires sont regroupés.
> table(iris$Species, kmeans.result$cluster)
1 2 3
setosa 0 50 0
versicolor 48 0 2
virginica 14 0 36
Le résultat ci-dessus montre que le groupe «setosa» peut être facilement séparé des
autres groupes.
50
Data Manipulation en R
> plot(iris2[c("Sepal.Length", "Sepal.Width")],col =
kmeans.result$cluster
> points(kmeans.result$centers[,c("Sepal.Length",
"Sepal.Width")], col=1:3, pch=8, cex=2
51
Data Manipulation en R
Il existe quatre dimensions dans les données et que seules les deux premières
dimensions sont utilisées pour tracer le tracé ci-dessous.
Certains points noirs proches du centre vert (astérisque) sont en réalité plus proches
du centre noir dans l'espace à quatre dimensions.
52
Data Manipulation en R
k-Medoids Clustering
Clustering de k-medoids avec les fonctions pam () et pamk ().
La classification en kmédoïdes est très similaire à k-means, et la principale différence
entre eux est la suivante:
lorsqu'un cluster est représenté avec son centre dans l'algorithme k-means, il est
représenté avec l'objet le plus proche du centre de la k-medoids clustering.
53
Data Manipulation en R
k-Medoids Clustering
Le regroupement de k-medoids est plus robuste que k-means en présence de valeurs
aberrantes.
PAM (Partitioning Around Medoids) est un algorithme classique pour la mise en
cluster de k-medoids. Bien que l’algorithme PAM soit inefficace pour la mise en
cluster de données volumineuses.
CLARA est une technique améliorée de PAM qui consiste à extraire plusieurs
échantillons de données, à appliquer PAM à chaque échantillon, puis à restituer la
meilleure classification.
54
Data Manipulation en R
k-Medoids Clustering en R
> pamk.result <- pamk(iris2)
> # number of clusters
> pamk.result$nc
[1] 2
> # check clustering against actual species
> table(pamk.result$pamobject$clustering, iris$Species)
setosa versicolor virginica
1 50 1 0
2 0 49 50
> layout(matrix(c(1,2),1,2)) # 2 graphs per page
> plot(pamk.result$pamobject)
> layout(matrix(1)) # change back to one graph per page
55
Data Manipulation en R
k-Medoids Clustering en R
56
Data Manipulation en R
k-Medoids Clustering
Ensuite, nous essayons pam () avec k = 3.
 > library(cluster)
 > pam.result <- pam(iris2, 3)
 > table(pam.result$clustering, iris$Species)

 setosa versicolor virginica
 1 50 0 0
 2 0 48 14
 3 0 2 36
 > layout(matrix(c(1,2),1,2)) # 2 graphs per page
 > plot(pam.result)
 > layout(matrix(1)) # change back to one graph per page
57
Data Manipulation en R
k-Medoids Clustering
58
Data Manipulation en R
k-Medoids Clustering
(1) le groupe 1 est l’espèce «setosa» et est bien séparé des deux autres;
(2) le groupe 2 est principalement composé de «versicolor» et de quelques cas de
«virginica»;
(3) La majorité du groupe 3 sont des «virginica», avec deux cas de «versicolor».
Il est difficile de dire lequel est le meilleur parmi les deux regroupements ci-dessus
produits respectivement avec pamk () et pam (). Cela dépend du problème cible et
du domaine connaissance et expérience. Dans cet exemple, le résultat de pam ()
semble meilleur,
59
Data Manipulation en R
Clustering hiérarchique
• La classification hiérarchique, comme son nom l'indique, est un algorithme
permettant de hiérarchiser les grappes. Cet algorithme commence par tous les
points de données assignés à un cluster qui leur est propre.
• Les deux clusters les plus proches sont fusionnés dans le même cluster.
• Cet algorithme se termine lorsqu'il ne reste plus qu'un seul cluster.
60
Data Manipulation en R
Clustering hiérarchique en R
Le cluster hiérarchique avec hclust () sur des données iris. Nous tirons d’abord un
échantillon de 40 enregistrements à partir des données de l’iris, afin que le graphe du
cluster ne soit pas surchargé.
> idx <- sample(1:dim(iris)[1], 40)
> irisSample <- iris[idx,]
> irisSample$Species <- NULL
> hc <- hclust(dist(irisSample), method="ave")
> plot(hc, hang = -1, labels=iris$Species[idx])
> rect.hclust(hc, k=3)
> groups <- cutree(hc, k=3)
61
Data Manipulation en R
62
Data Manipulation en R
Différence entre K Means
et clustering hiérarchique
• La mise en cluster hiérarchique ne peut pas gérer les données volumineuses, mais
K Means peut le faire. En effet, la complexité temporelle de K Means est linéaire.
• Dans K Moyenne des grappes, puisque nous commençons par un choix aléatoire de
grappes, les résultats obtenus en exécutant l'algorithme plusieurs fois peuvent
différer.
• K Le regroupement des moyens nécessite une connaissance préalable de K
63

Contenu connexe

Similaire à Data Mining (Partie 3).pdf

Introduction to Machine learning
Introduction to Machine learningIntroduction to Machine learning
Introduction to Machine learningQuentin Ambard
 
Amélioration continue - 6 sigma - ibtissam el hassani-chapitre 2015-2016
Amélioration continue - 6 sigma - ibtissam el hassani-chapitre 2015-2016Amélioration continue - 6 sigma - ibtissam el hassani-chapitre 2015-2016
Amélioration continue - 6 sigma - ibtissam el hassani-chapitre 2015-2016ibtissam el hassani
 
Analyse en composantes principales, ACP, sous SPSS (Principal Component Analy...
Analyse en composantes principales, ACP, sous SPSS (Principal Component Analy...Analyse en composantes principales, ACP, sous SPSS (Principal Component Analy...
Analyse en composantes principales, ACP, sous SPSS (Principal Component Analy...Adad Med Chérif
 
fr_Tanagra_Naive_Bayes_Classifier_Explained.pdf
fr_Tanagra_Naive_Bayes_Classifier_Explained.pdffr_Tanagra_Naive_Bayes_Classifier_Explained.pdf
fr_Tanagra_Naive_Bayes_Classifier_Explained.pdfSidiAbdallah1
 
resampling_evaluation.pdf
resampling_evaluation.pdfresampling_evaluation.pdf
resampling_evaluation.pdfSidiAbdallah1
 
Marketing et Big Data
Marketing et Big DataMarketing et Big Data
Marketing et Big DataJeremy Greze
 
Efficacité du processus de mesure (Calcul R$R).pdf
Efficacité du processus de mesure (Calcul R$R).pdfEfficacité du processus de mesure (Calcul R$R).pdf
Efficacité du processus de mesure (Calcul R$R).pdfAyaEss
 
regression_multiple_pour_le_classement.pdf
regression_multiple_pour_le_classement.pdfregression_multiple_pour_le_classement.pdf
regression_multiple_pour_le_classement.pdfSidiAbdallah1
 
Corrélation linéaire chapitre 2 Chap11_Partie2.pdf
Corrélation linéaire chapitre 2 Chap11_Partie2.pdfCorrélation linéaire chapitre 2 Chap11_Partie2.pdf
Corrélation linéaire chapitre 2 Chap11_Partie2.pdfKOUADIOPATRICE1
 
2 solver d'excel
2 solver d'excel2 solver d'excel
2 solver d'excelkkatia31
 
Into_GA.ppt
Into_GA.pptInto_GA.ppt
Into_GA.pptbetadir
 
Exposé segmentation
Exposé segmentationExposé segmentation
Exposé segmentationDonia Hammami
 
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...ENSET, Université Hassan II Casablanca
 
Les 10 plus populaires algorithmes du machine learning
Les 10 plus populaires algorithmes du machine learningLes 10 plus populaires algorithmes du machine learning
Les 10 plus populaires algorithmes du machine learningHakim Nasaoui
 
Ecart type experimental : quelle formule choisir ?
Ecart type experimental : quelle formule choisir ?Ecart type experimental : quelle formule choisir ?
Ecart type experimental : quelle formule choisir ?Jean-Michel POU
 

Similaire à Data Mining (Partie 3).pdf (20)

Introduction to Machine learning
Introduction to Machine learningIntroduction to Machine learning
Introduction to Machine learning
 
Amélioration continue - 6 sigma - ibtissam el hassani-chapitre 2015-2016
Amélioration continue - 6 sigma - ibtissam el hassani-chapitre 2015-2016Amélioration continue - 6 sigma - ibtissam el hassani-chapitre 2015-2016
Amélioration continue - 6 sigma - ibtissam el hassani-chapitre 2015-2016
 
Questionnaire sous spss
Questionnaire sous spssQuestionnaire sous spss
Questionnaire sous spss
 
Statistique bivariée avec R
Statistique bivariée avec RStatistique bivariée avec R
Statistique bivariée avec R
 
Analyse en composantes principales, ACP, sous SPSS (Principal Component Analy...
Analyse en composantes principales, ACP, sous SPSS (Principal Component Analy...Analyse en composantes principales, ACP, sous SPSS (Principal Component Analy...
Analyse en composantes principales, ACP, sous SPSS (Principal Component Analy...
 
Analyzing a churn data set
Analyzing a churn data set Analyzing a churn data set
Analyzing a churn data set
 
fr_Tanagra_Naive_Bayes_Classifier_Explained.pdf
fr_Tanagra_Naive_Bayes_Classifier_Explained.pdffr_Tanagra_Naive_Bayes_Classifier_Explained.pdf
fr_Tanagra_Naive_Bayes_Classifier_Explained.pdf
 
Arbre de décision
Arbre de décisionArbre de décision
Arbre de décision
 
resampling_evaluation.pdf
resampling_evaluation.pdfresampling_evaluation.pdf
resampling_evaluation.pdf
 
Marketing et Big Data
Marketing et Big DataMarketing et Big Data
Marketing et Big Data
 
Efficacité du processus de mesure (Calcul R$R).pdf
Efficacité du processus de mesure (Calcul R$R).pdfEfficacité du processus de mesure (Calcul R$R).pdf
Efficacité du processus de mesure (Calcul R$R).pdf
 
regression_multiple_pour_le_classement.pdf
regression_multiple_pour_le_classement.pdfregression_multiple_pour_le_classement.pdf
regression_multiple_pour_le_classement.pdf
 
Corrélation linéaire chapitre 2 Chap11_Partie2.pdf
Corrélation linéaire chapitre 2 Chap11_Partie2.pdfCorrélation linéaire chapitre 2 Chap11_Partie2.pdf
Corrélation linéaire chapitre 2 Chap11_Partie2.pdf
 
Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1 Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1
 
2 solver d'excel
2 solver d'excel2 solver d'excel
2 solver d'excel
 
Into_GA.ppt
Into_GA.pptInto_GA.ppt
Into_GA.ppt
 
Exposé segmentation
Exposé segmentationExposé segmentation
Exposé segmentation
 
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
 
Les 10 plus populaires algorithmes du machine learning
Les 10 plus populaires algorithmes du machine learningLes 10 plus populaires algorithmes du machine learning
Les 10 plus populaires algorithmes du machine learning
 
Ecart type experimental : quelle formule choisir ?
Ecart type experimental : quelle formule choisir ?Ecart type experimental : quelle formule choisir ?
Ecart type experimental : quelle formule choisir ?
 

Plus de OuailChoukhairi

Plus de OuailChoukhairi (10)

the-blockchain-innovation-hub.pptx
the-blockchain-innovation-hub.pptxthe-blockchain-innovation-hub.pptx
the-blockchain-innovation-hub.pptx
 
BI_Part1_2020.pdf
BI_Part1_2020.pdfBI_Part1_2020.pdf
BI_Part1_2020.pdf
 
_3_expo_MM.pdf
_3_expo_MM.pdf_3_expo_MM.pdf
_3_expo_MM.pdf
 
Data Mining (Partie 2).pdf
Data Mining (Partie 2).pdfData Mining (Partie 2).pdf
Data Mining (Partie 2).pdf
 
Data Mining (Partie 1).pdf
Data Mining (Partie 1).pdfData Mining (Partie 1).pdf
Data Mining (Partie 1).pdf
 
_2_expo_DW_DM.pdf
_2_expo_DW_DM.pdf_2_expo_DW_DM.pdf
_2_expo_DW_DM.pdf
 
_1_expo_SIAD.pdf
_1_expo_SIAD.pdf_1_expo_SIAD.pdf
_1_expo_SIAD.pdf
 
___WS_Chap-3__RDF.pdf
___WS_Chap-3__RDF.pdf___WS_Chap-3__RDF.pdf
___WS_Chap-3__RDF.pdf
 
___WS_Chap-5__SPARQL.pdf
___WS_Chap-5__SPARQL.pdf___WS_Chap-5__SPARQL.pdf
___WS_Chap-5__SPARQL.pdf
 
___WS_Chap-4__RDFS.pdf
___WS_Chap-4__RDFS.pdf___WS_Chap-4__RDFS.pdf
___WS_Chap-4__RDFS.pdf
 

Data Mining (Partie 3).pdf

  • 1. Manipulation des données en R (Partie 3) Master Big Data & Cloud Computing 2021/2022
  • 2. Data Manipulation en R Qu'est-ce qu'un arbre de décision? • Algorithme d'apprentissage supervisé (ayant une variable cible prédéfinie) qui est principalement utilisé dans les problèmes de classification. • Il fonctionne pour les variables d'entrée et de sortie catégoriques et continues. • Dans cette technique, nous avons divisé la population ou l'échantillon en deux ou plusieurs ensembles homogènes (ou sous-populations) en fonction du facteur de division / différenciateur le plus significatif dans les variables d'entrée. 2
  • 3. Data Manipulation en R Exemple Disons que nous avons un échantillon de 30 étudiants avec trois variables Sexe (Garçon / Fille), Groupe (1/3) et Présentation (1 a 20). 15 sur 30 réussiront l'examen. Maintenant, nous voulons créer un modèle pour prédire qui passera l'examen? Dans ce problème, nous devons séparer les étudiants qui ont réussi son examen en fonction d'une variable d'entrée très significative parmi les trois. 3 Split par Sexe Etudiants = 30 Valider = 15 (50%) Etudiants = 10 Valider = 2 (20%) Fille Etudiants = 20 Valider = 13 (65%) Garcon Split par Presentation Etudiants = 30 Valider = 15 (50%) Etudiants = 12 Valider = 5 (42%) Note <10 Etudiants = 18 Valider = 6 (43%) Note >10 Split par Groupe Etudiants = 30 Valider = 15 (50%) Etudiants = 14 Valider = 26 (43%) Groupe 1 Etudiants = 16 Valider = 19 (56%) Groupe 3
  • 4. Data Manipulation en R Types d'arbres de décision • Variable catégorique: Arbre de décision qui a une variable cible. • Exemple : Dans le scénario du problème de l’élève, où la variable cible était «L’élève fera t’il son devoir ou non», c’est-à-dire OUI ou NON. • Variable continue: L’arbre de décision a une variable cible continue. • Exemple : Disons qu’il nous est difficile de prédire si un client paiera sa facture de renouvellement auprès d’une compagnie d’assurance (oui / non). • Nous savons ici que le revenu du client est une variable significative, mais que la compagnie d’assurance ne dispose pas de données détaillées sur le revenu de tous les clients. 4
  • 5. Data Manipulation en R Terminologie (1/2) 5
  • 6. Data Manipulation en R Terminologie (2/2) • Nœud racine: il représente la population entière ou un échantillon, divisé en deux ou plusieurs ensembles homogènes. • Fractionnement: il s’agit de diviser un nœud en deux sous-nœuds ou plus. • Nœud de décision: lorsqu'un sous-nœud se divise en plusieurs sous-nœuds, il est alors appelé nœud de décision. • Nœud terminal: les nœuds non divisés sont appelés nœuds terminaux ou terminal. • Élagage(Purning): lorsque nous supprimons des sous-nœuds d’un nœud de décision, ce processus est appelé élagage.Vous pouvez dire le processus opposé de la scission. • Branche: Une sous-section de l’arbre entier est appelée branche ou sous-arbre. • Nœud parent et enfant: un nœud divisé en sous-nœuds est appelé nœud parent de sous- nœuds, où les sous-nœuds sont l'enfant du nœud parent. 6
  • 7. Data Manipulation en R Comment un arbre décide-t-il où se diviser? • La décision de division stratégique affecte considérablement la précision d’un arbre. • Les critères de décision sont différents pour les arbres de classification et de régression. • Les arbres de décision utilisent plusieurs algorithmes pour décider de diviser un nœud en deux sous-nœuds ou plus. • La création de sous-nœuds augmente l'homogénéité des sous-nœuds résultants. • La sélection de l'algorithme est également basée sur le type de variables cibles. 7
  • 8. Data Manipulation en R Algorithme pour l’arbe de decision  Gini  Chi-square  Information gain  Reduction in Variance 8
  • 9. Data Manipulation en R Gini si nous sélectionnons deux éléments d'une population au hasard, ils doivent appartenir à la même classe et la probabilité pour cela est de 1 si la population est pure.  Cela fonctionne avec la variable cible catégorique «Succès» ou «Échec».  Il effectue uniquement des divisions binaires  Plus la valeur de Gini est élevée, plus l'homogénéité est grande. 9
  • 10. Data Manipulation en R Gini 10 Split par Sexe Etudiants = 30 Valider = 15 (50%) Etudiants = 10 Valider = 2 (20%) Fille Etudiants = 20 Valider = 13 (65%) Garcon Split par Presentation Etudiants = 30 Valider = 15 (50%) Etudiants = 12 Valider = 5 (42%) Note <10 Etudiants = 18 Valider = 6 (43%) Note >10
  • 11. Data Manipulation en R Gini • Calculez Gini pour les sous-nœuds, en utilisant la formule somme du carré de probabilité de succès et d’échec: (p ^ 2 + q ^ 2) • Calculer Gini pour la scission en utilisant le score de Gini pondéré de chaque nœud de cette scission Étapes pour calculer Gini pour une division 11
  • 12. Data Manipulation en R Gini Split sur le Sexe: Calculer, Gini pour le sous-nœud Femme = (0.2) * (0.2) + (0.8) * (0.8) = 0.68 Gini pour le sous-nœud Male = (0,65) * (0,65) + (0,35) * (0,35) = 0,55 Calculer le Gini pondéré pour le sexe divisée = (10/30) * 0,68 + (20/30) * 0,55 = 0,59 Split on Groupe: Gini pour le sous-noeud de Groupe 1= (0.43) * (0.43) + (0.57) * (0.57) = 0.51 Gini pour le sous-nœud Groupe 3= (0.56) * (0.56) + (0.44) * (0.44) = 0.51 Calculer le Gini pondéré pour le Groupe divisée = (14/30) * 0,51 + (16/30) * 0,51 = 0,51 12
  • 13. Data Manipulation en R Chi-Square C'est un algorithme permettant de déterminer la signification statistique entre les différences entre les sous-nœuds et le nœud parent. Nous le mesurons par la somme des carrés des différences standardisées entre les fréquences observées et attendues de la variable cible. • Cela fonctionne avec la variable cible catégorique «Succès» ou «Échec». • Il peut effectuer deux divisions ou plus. • Plus la valeur de Chi-Square est élevée, plus la signification statistique des différences entre le sous-nœud et le nœud parent est élevée. • Le chi-Square de chaque nœud est calculé à l'aide de la formule : Chi-Square = ((Réel - Attendu) ^ 2 / Attendu) ^1/2 • Il génère une arborescence appelée CHAID (Chi-square Automatic Interaction Detector) 13
  • 14. Data Manipulation en R Chi-Square • Calculer le Chi-Square pour un nœud individuel en calculant la déviation entre succès et échec. • Chi-Square d’une division calculé en utilisant la somme de tous les Chi-Square de succès et d'échec de chaque nœud d’une division. Étapes pour calculer Chi-Square pour une division 14
  • 15. Data Manipulation en R Chi-Square Split sur le Sexe: • nœud Femme, remplissez la valeur réelle pour « réussir l’examen » et « ne valide pas », ici, elles sont 2 et 8 respectivement. • Calculez la valeur attendue pour « réussir l’examen » et « ne valide pas ». Dans ce cas, la valeur serait 5 pour les deux, car le nœud parent a une probabilité de 50% et nous avons appliqué la même probabilité au nombre de femmes (10). • Calculez les écarts en utilisant la formule Réel - Attendu. C'est pour « réussir l’exam » (2 - 5 = -3) et pour « Ne valide pas » (8 - 5 = 3). • Calculez le chi carré du nœud pour « réussir l’exam » et « Ne valide pas » à l'aide d'une formule avec la formule, = ((Réel - Attendu) ^ 2 / Attendu) ^ 1/2. 15
  • 16. Data Manipulation en R Chi-Square 16 Node reussir Ne valide pas total Reussir attendu Ne valide pas attendu Deviation reussir Deviation ne valide pas Chi-Square reussir Ne vaide pas Fille 2 8 10 5 5 -3 3 1.34 1.34 Garcon 13 7 20 10 10 3 -3 0.95 0.95 total 4.58
  • 17. Data Manipulation en R Arbres de décision avec party Sepal.Length, Sepal.Width, Petal.Length et Petal.Width permettent de prédire Species des fleurs. ctree() crée un arbre de décision. predict() effectue la prédiction pour les nouvelles données. 17
  • 18. Data Manipulation en R Arbres de décision avec party Avant la modélisation, les données sur l'iris sont divisées ci-dessous en deux sous- ensembles: training (70%) et test (30%). > set.seed(1500) > ind <- sample(2, nrow(iris), replace=TRUE, prob=c(0.7,0.3)) > trainData <- iris[ind==1,] > testData <- iris[ind==2,] 18
  • 19. Data Manipulation en R Arbres de décision avec party spécifie que Species est la variable cible et que toutes les autres variables sont des variables indépendantes. > library(party) > Formule <- Species~Sepal.Length + Sepal.Width + Petal.Length + Petal.Width > iris_ctree <- ctree(Formule, data=trainData) > # Verifie la prediction > table(predict(iris_ctree), trainData$Species) setosa versicolor virginica setosa 33 0 0 versicolor 0 34 3 virginica 0 1 34 19
  • 20. Data Manipulation en R > print(iris_ctree) Conditional inference tree with 3 terminal nodes Response: Species Inputs: Sepal.Length, Sepal.Width, Petal.Length, Petal.Width Number of observations: 105 1) Petal.Length <= 1.9; criterion = 1, statistic = 98.359 2)* weights = 33 1) Petal.Length > 1.9 3) Petal.Width <= 1.7; criterion = 1, statistic = 49.408 4)* weights = 37 3) Petal.Width > 1.7 5)* weights = 35 20
  • 21. Data Manipulation en R > plot(iris_ctree) le diagramme en barres de chaque feuille indique les probabilités qu'une instance tombe dans les trois espèces. 21
  • 22. Data Manipulation en R > plot(iris_ctree, type="simple") Par exemple, le nœud 2 est étiqueté avec «n = 33, y = (1, 0, 0)», ce qui signifie qu'il contient 33 instances d'apprentissage et qu'elles appartiennent toutes à la première classe «setosa». 22
  • 23. Data Manipulation en R Après cela, l’arbre construite doit être testé avec des données de test. > testPred <- predict(iris_ctree, newdata = testData) > table(testPred, testData$Species) testPred setosa versicolor virginica setosa 17 0 0 versicolor 0 15 2 virginica 0 0 11 23
  • 24. Data Manipulation en R Arbres de décision avec rpart La fonction rpart () est utilisée pour créer un arbre de décision. L'arbre avec l'erreur de prédiction minimale est sélectionné. Il est ensuite appliqué aux nouvelles données pour effectuer une prédiction avec function predict (). > library(rpart) > iris_rpart <- rpart(Formule, data = trainData, control = rpart.control(minsplit = 10)) 24
  • 25. Data Manipulation en R > print(iris_rpart$cptable) CP nsplit rel error xerror xstd 1 0.4852941 0 1.00000000 1.2205882 0.06132631 2 0.4558824 1 0.51470588 0.8235294 0.07517761 3 0.0100000 2 0.05882353 0.1029412 0.03758880 > print(iris_rpart) n= 105 node), split, n, loss, yval, (yprob) * denotes terminal node 1) root 105 68 virginica (0.31428571 0.33333333 0.35238095) 2) Petal.Length< 2.6 33 0 setosa (1.00000000 0.00000000 0.00000000) * 3) Petal.Length>=2.6 72 35 virginica (0.00000000 0.48611111 0.51388889) 6) Petal.Width< 1.75 37 3 versicolor (0.00000000 0.91891892 0.08108108) * 7) Petal.Width>=1.75 35 1 virginica (0.00000000 0.02857143 0.97142857) * 25
  • 26. Data Manipulation en R > plot(iris_rpart) > text(iris_rpart, use.n=T) 26
  • 27. Data Manipulation en R Ensuite, nous sélectionnons l’arbre avec l’erreur de prédiction minimale > opt <- which.min(iris_rpart$cptable[,"xerror"]) > cp <- iris_rpart$cptable[opt, "CP"] > iris_prune <- prune(iris_rpart, cp = cp) > print(iris_prune) n= 105 node), split, n, loss, yval, (yprob) * denotes terminal node 1) root 105 68 virginica (0.31428571 0.33333333 0.35238095) 2) Petal.Length< 2.6 33 0 setosa (1.00000000 0.00000000 0.00000000) * 3) Petal.Length>=2.6 72 35 virginica (0.00000000 0.48611111 0.51388889) 6) Petal.Width< 1.75 37 3 versicolor (0.00000000 0.91891892 0.08108108) * 7) Petal.Width>=1.75 35 1 virginica (0.00000000 0.02857143 0.97142857) * 27
  • 28. Data Manipulation en R Tree Pruning o la technique de mise en contrainte est une approche gourmande. o il recherche instantanément la meilleure répartition et avance jusqu’à atteindre l’une des conditions d’arrêt spécifiées. 28
  • 29. Data Manipulation en R Tree Pruning C'est exactement la différence entre un arbre de décision normal et Pruning. Un arbre de décision avec des contraintes ne verra pas le camion en avant et adoptera une approche gourmande en prenant à gauche. D'autre part, si nous utilisons Pruning, nous examinons en fait quelques étapes et faisons un choix. 1. Nous prenons d’abord l’arbre de décision à une grande profondeur. 2. Nous commençons par le bas et commençons à enlever les feuilles qui nous donnent des rendements négatifs par rapport au haut. 3. Supposons qu’une Division nous donne un gain de -10 (perte de 10), puis que la Division suivante nous donne un gain de 20. 29
  • 30. Data Manipulation en R Qu'est-ce que Radom Forest ? • Random Forest est une méthode d’apprentissage automatique polyvalente capable d’exécuter des tâches de régression et de classification. • Il met également en œuvre des méthodes de réduction dimensionnelle, traite les valeurs manquantes, et d'autres étapes essentielles de l'exploration des données. • C'est un type de méthode d'apprentissage d'ensemble, dans laquelle un groupe de modèles faibles se combine pour former un modèle puissant. 30
  • 31. Data Manipulation en R Comment ça marche? nous cultivons plusieurs arbres par opposition à un seul arbre dans le modèle CART. Pour classer un nouvel objet en fonction d'attributs, chaque arbre donne une classification et on dit que l'arbre «vote» pour cette classe. La forêt choisit la classification ayant le plus de voix et en cas de régression, elle prend la moyenne des sorties de différents arbres. 31
  • 32. Data Manipulation en R Chaque arbre est planté et cultivé comme suit: • Supposons que le nombre de cas dans l'ensemble d'apprentissage est N. • Ensuite, un échantillon de ces N cas est pris au hasard, mais avec remplacement. Cet échantillon constituera l’entraînement nécessaire à la croissance de l’arbre. • S'il y a M variables d'entrée, un nombre m <M est spécifié de telle sorte qu'à chaque nœud, m variables soient sélectionnées de manière aléatoire sur M. • La meilleure répartition sur ces m est utilisée pour scinder le nœud. • La valeur de m est maintenue constante pendant la croissance de la forêt. • Chaque arbre est cultivé dans la plus grande mesure possible et il n'y a pas Pruning. • Prédisez de nouvelles données en agrégeant les prédictions des arbres de niveau supérieur 32
  • 33. Data Manipulation en R Random Forest dans R Il existe deux limitations à la fonction randomForest (). 1. il ne peut pas gérer les données avec des valeurs manquantes, et les utilisateurs doivent attribuer des données avant de les introduire dans la fonction. 2. une limite de 32 au nombre maximal de niveaux de chaque attribut qualitatif. Les attributs avec plus de 32 niveaux doivent d’abord être transformés avant d’utiliser randomForest (). 33
  • 34. Data Manipulation en R Random Forest dans R la formule est définie sur "Espèce∼.", ce qui signifie prédire les espèces avec tous les autres variables dans les données library(randomForest) rf <- randomForest(Species~., data=trainData, ntree=100,proximity=TRUE) > table(predict(rf), trainData$Species) setosa versicolor virginica setosa 33 0 0 versicolor 0 32 4 virginica 0 3 33 print(rf) attributes(rf) 34
  • 35. Data Manipulation en R le résultat est vérifié avec les fonctions table () et margin (). La marge d'un point de données est la proportion de votes pour la classe correcte moins la proportion maximale de votes pour les autres classes. > irisPred <- predict(rf, newdata=testData) > table(irisPred, testData$Species) > plot(margin(rf, testData$Species)) 35
  • 36. Data Manipulation en R Qu'est-ce que l'analyse de régression? L’analyse de régression est une technique de modélisation prédictive qui étudie la relation entre une variable dépendante (cible) et une ou plusieurs variables indépendantes (prédicteur). Cette technique est utilisée pour la prévision, time series modelling et la recherche du lien de causalité entre les variables. Par exemple, la relation entre la conduite imprudente et le nombre d'accidents de la route causés par un conducteur est mieux étudiée par la régression. 36
  • 37. Data Manipulation en R Pourquoi utiliser l'analyse de régression? Comme mentionné ci-dessus, l'analyse de régression estime la relation entre deux variables ou plus. • Estimer la croissance des ventes d’une entreprise en fonction des conditions économiques actuelles. • Les données récentes sur les entreprises indiquent que la croissance des ventes est environ deux fois et demie supérieure à celle de l’économie. En utilisant cette information, nous pouvons prédire les ventes futures de la société en fonction des informations actuelles et passées. 37
  • 38. Data Manipulation en R Pourquoi utiliser l'analyse de régression? L'utilisation de l'analyse de régression présente de nombreux avantages. • Il indique les relations significatives entre variable dépendante et variable indépendante. • Il indique la force de l'impact de plusieurs variables indépendantes sur une variable dépendante. 38
  • 39. Data Manipulation en R Quels sont les types de régressions? Linear Regression Logistic Regression Polynomial Regression Stepwise Regression Ridge Regression Lasso Regression ElasticNet Regression 39
  • 40. Data Manipulation en R Régression linéaire La régression linéaire consiste à prédire la réponse avec une fonction linéaire des prédicteurs comme suit: y=c0+c1 x1+c2 x2+···+ck xk où x1, x2,···, xk sont des prédicteurs et y est la réponse à prédire. 40
  • 41. Data Manipulation en R Régression linéaire en R From Australian Bureau of Statistics http://www.abs.gov.au > year <- rep(2008:2010, each = 4) > quarter <- rep(1:4, 3) > cpi <- c(162.2, 164.6, 166.5, 166.0,166.2, 167.0, 168.6, 169.5,171.0, 172.1, 173.3, 174.0) > plot(cpi, xaxt="n", ylab="CPI", xlab="") > axis(1, labels=paste(year,quarter,sep="Q"), at=1:12, las=3) 41
  • 42. Data Manipulation en R > fit <- lm(cpi˜year + quarter) > fit Call: lm(formula = cpi ~ year + quarter) Coefficients: (Intercept) year quarter -7644.488 3.888 1.167 Le modèle de régression linéaire est construit avec la fonction lm () sur les données, en utilisant un year et quarter comme prédicteurs et un cpi en réponse. Régression linéaire en R 42
  • 43. Data Manipulation en R > (cpi2011 <- fit$coefficients[[1]] + fit$coefficients[[2]]*2011 + fit$coefficients[[3]]*(1:4)) [1] 174.4417 175.6083 176.7750 177.9417 Avec le modèle linéaire ci-dessus, l’cpi est calculé comme suit: cpi=c0+c1∗year+c2∗quarter ou c0 , c1, et c2 sont les coefficients de l'ajustement du modèle. Par conséquent, les cpi de 2011 peuvent être calculés comme suit. Régression linéaire en R 43
  • 44. Data Manipulation en R > data2011 <- data.frame(year=2011, quarter=1:4) > cpi2011 <- predict(fit, newdata=data2011) > style <- c(rep(1,12), rep(2,4)) > plot(c(cpi, cpi2011), xaxt="n", ylab="CPI", xlab="", pch = style, col = style) > axis(1, at=1:16, las=3, labels=c(paste(year,quarter,sep="Q"), "2011Q1", "2011Q2", "2011Q3", "2011Q4")) > abline(a=0, b=1) Régression linéaire en R 44
  • 45. Data Manipulation en R Régression logistique chances = p/(1-p) = probabilité d'occurrence de l'événement / probabilité de ne pas se produire ln(chances) = ln(p/(1-p)) logit(p) = ln(p/(1-p)) = b0+b1X1+b2X2+b3X3....+bkXk • La régression logistique est utilisée pour trouver la probabilité d'un événement = succès et d'un événement = échec. • Utiliser la régression logistique lorsque la variable dépendante est binaire (0/1, Vrai / Faux, Oui / Non). Ici, la valeur de Y va de 0 à 1 et peut être représentée par l’équation suivante 45
  • 46. Data Manipulation en R Clustering Clustering consiste à diviser la population ou les points de données en un certain nombre de groupes de manière à ce que les points de données des mêmes groupes soient plus similaires aux autres points de données du même groupe que ceux des autres groupes. L’objectif est de séparer les groupes ayant des traits similaires et de les affecter au clusters. 46
  • 47. Data Manipulation en R Applications du clustering  Recommendation engines  Market segmentation  Social network analysis  Search result grouping  Medical imaging  Image segmentation  Anomaly detection 47
  • 48. Data Manipulation en R k-Means Clustering K-Means est un algorithme de classification itératif qui vise à trouver des maxima locaux dans chaque itération. Cet algorithme fonctionne en 5 étapes: 1. Spécifiez le nombre souhaité de clusters K 2. Attribuer aléatoirement chaque point de données à un cluster 3. Calculer les centroïdes de cluster 4. Réassignez chaque point au centre du cluster le plus proche 5. Recalculer les centroïdes de cluster 6. Réassignez chaque point au centre du cluster le plus proche 48
  • 49. Data Manipulation en R k-Means Clustering en R nous retirons les espèces des données à regrouper. Après cela, nous appliquons la fonction kmeans () à iris2 et stockons le résultat du clustering dans kmeans.result. Le numéro de cluster est défini sur 3 dans le code ci-dessous. > iris2 <- iris > iris2$Species <- NULL > (kmeans.result <- kmeans(iris2, 3)) 49
  • 50. Data Manipulation en R k-Means Clustering en R Le résultat du regroupement est ensuite comparé à l'étiquette de classe (Species) pour vérifier si des objets similaires sont regroupés. > table(iris$Species, kmeans.result$cluster) 1 2 3 setosa 0 50 0 versicolor 48 0 2 virginica 14 0 36 Le résultat ci-dessus montre que le groupe «setosa» peut être facilement séparé des autres groupes. 50
  • 51. Data Manipulation en R > plot(iris2[c("Sepal.Length", "Sepal.Width")],col = kmeans.result$cluster > points(kmeans.result$centers[,c("Sepal.Length", "Sepal.Width")], col=1:3, pch=8, cex=2 51
  • 52. Data Manipulation en R Il existe quatre dimensions dans les données et que seules les deux premières dimensions sont utilisées pour tracer le tracé ci-dessous. Certains points noirs proches du centre vert (astérisque) sont en réalité plus proches du centre noir dans l'espace à quatre dimensions. 52
  • 53. Data Manipulation en R k-Medoids Clustering Clustering de k-medoids avec les fonctions pam () et pamk (). La classification en kmédoïdes est très similaire à k-means, et la principale différence entre eux est la suivante: lorsqu'un cluster est représenté avec son centre dans l'algorithme k-means, il est représenté avec l'objet le plus proche du centre de la k-medoids clustering. 53
  • 54. Data Manipulation en R k-Medoids Clustering Le regroupement de k-medoids est plus robuste que k-means en présence de valeurs aberrantes. PAM (Partitioning Around Medoids) est un algorithme classique pour la mise en cluster de k-medoids. Bien que l’algorithme PAM soit inefficace pour la mise en cluster de données volumineuses. CLARA est une technique améliorée de PAM qui consiste à extraire plusieurs échantillons de données, à appliquer PAM à chaque échantillon, puis à restituer la meilleure classification. 54
  • 55. Data Manipulation en R k-Medoids Clustering en R > pamk.result <- pamk(iris2) > # number of clusters > pamk.result$nc [1] 2 > # check clustering against actual species > table(pamk.result$pamobject$clustering, iris$Species) setosa versicolor virginica 1 50 1 0 2 0 49 50 > layout(matrix(c(1,2),1,2)) # 2 graphs per page > plot(pamk.result$pamobject) > layout(matrix(1)) # change back to one graph per page 55
  • 56. Data Manipulation en R k-Medoids Clustering en R 56
  • 57. Data Manipulation en R k-Medoids Clustering Ensuite, nous essayons pam () avec k = 3.  > library(cluster)  > pam.result <- pam(iris2, 3)  > table(pam.result$clustering, iris$Species)   setosa versicolor virginica  1 50 0 0  2 0 48 14  3 0 2 36  > layout(matrix(c(1,2),1,2)) # 2 graphs per page  > plot(pam.result)  > layout(matrix(1)) # change back to one graph per page 57
  • 58. Data Manipulation en R k-Medoids Clustering 58
  • 59. Data Manipulation en R k-Medoids Clustering (1) le groupe 1 est l’espèce «setosa» et est bien séparé des deux autres; (2) le groupe 2 est principalement composé de «versicolor» et de quelques cas de «virginica»; (3) La majorité du groupe 3 sont des «virginica», avec deux cas de «versicolor». Il est difficile de dire lequel est le meilleur parmi les deux regroupements ci-dessus produits respectivement avec pamk () et pam (). Cela dépend du problème cible et du domaine connaissance et expérience. Dans cet exemple, le résultat de pam () semble meilleur, 59
  • 60. Data Manipulation en R Clustering hiérarchique • La classification hiérarchique, comme son nom l'indique, est un algorithme permettant de hiérarchiser les grappes. Cet algorithme commence par tous les points de données assignés à un cluster qui leur est propre. • Les deux clusters les plus proches sont fusionnés dans le même cluster. • Cet algorithme se termine lorsqu'il ne reste plus qu'un seul cluster. 60
  • 61. Data Manipulation en R Clustering hiérarchique en R Le cluster hiérarchique avec hclust () sur des données iris. Nous tirons d’abord un échantillon de 40 enregistrements à partir des données de l’iris, afin que le graphe du cluster ne soit pas surchargé. > idx <- sample(1:dim(iris)[1], 40) > irisSample <- iris[idx,] > irisSample$Species <- NULL > hc <- hclust(dist(irisSample), method="ave") > plot(hc, hang = -1, labels=iris$Species[idx]) > rect.hclust(hc, k=3) > groups <- cutree(hc, k=3) 61
  • 63. Data Manipulation en R Différence entre K Means et clustering hiérarchique • La mise en cluster hiérarchique ne peut pas gérer les données volumineuses, mais K Means peut le faire. En effet, la complexité temporelle de K Means est linéaire. • Dans K Moyenne des grappes, puisque nous commençons par un choix aléatoire de grappes, les résultats obtenus en exécutant l'algorithme plusieurs fois peuvent différer. • K Le regroupement des moyens nécessite une connaissance préalable de K 63