Vous êtes sur la page 1sur 5

Exercice 3*

1. Chargez dans R le contenu de la base de données en utilisant la


commande xlsread :
1 #− m o d i f i e r l e r é p e r t o i r e par d é f a u t
2 setwd ( "C : / U s e r s / y o u s s e f / Dropbox / INF1421−Module1−
I n t r o d u c t i o n /R/ E x e r c i c e 3 " )
3
4 #− c h a r g e r l e s d o nn é es
5 # i n s t a l l e r et charger la bibliothèque " rpart "
Module 1 - Introduction à l’apprentissage machine 6 #i n s t a l l . p a c k a g e s ( " r p a r t " )
7 library ( rpart )
Exercices - Corrigé 8
9 # i n s t a l l e r et charger la bibliothèque " readxl "
10 #i n s t a l l . p a c k a g e s ( " r e a d x l " )
11 library ( readxl )
12
Exercice 2* 13 #− L i r e l e f i c h i e r x l s x
14 DonneesOzone <− r e a d_e x c e l ( " DonneesOzone . x l s " , s h e e t = 1 )

Variable Type Explication 2. Les différentes variables et leurs types :


Âge quantitative dis- Peut être représentée par un
crète nombre et elle ne prend que des Table 1 – Variables et leurs types
valeurs isolées ou entières.
Poids quantitative conti- Peut prendre, en théorie, une in- Variable Type Explication
nue finité de valeurs. maxO3 quantitative conti- Peut prendre, en théorie, une in-
Sexe qualitative nomi- Correspond à un nom, il n’y a nue finité de valeurs.
nale pas d’ordre déterminé T9, T12, T15 quantitative conti- Peut prendre, en théorie, une in-
Citoyenneté qualitative nomi- Correspond à un nom, il n’y a nue finité de valeurs.
nale pas d’ordre déterminé. Ne9, Ne12, qualitative ordinale Correspond à un rang dans une
Tour de quantitative conti- Peut prendre, en théorie, une in- Ne15 hiérarchie.
taille nue finité de valeurs. Vx9, Vx12, quantitative conti- Peut prendre, en théorie, une in-
Couleur des qualitative nomi- Correspond à un nom, il n’y a Vx15 nue finité de valeurs.
yeux nale pas d’ordre déterminé. maxO3v quantitative conti- Peut prendre, en théorie, une in-
Nombre de quantitative dis- Puisque l’on peut énumérer ses nue finité de valeurs.
langues crète valeurs, elle a une valeur finie. vent qualitative nomi- Correspond à un nom, il n’y a
Obtenue par dénombrement. nale pas d’ordre déterminé.
Nombre quantitative dis- Puisque l’on peut énumérer ses pluie qualitative nomi- Correspond à un nom, il n’y a
d’enfants crète valeurs, elle a une valeur finie. nale pas d’ordre déterminé.
Obtenue par dénombrement.
État matri- qualitative nomi- Correspond à un nom, il n’y a
monial nale pas d’ordre déterminé.

Dernière mise à jour le 4 janvier 2017 1


3. Le nombre d’individus égale à 114. 5. (a) Représentation graphique du diagramme en boites des va-
riables T9, T12, T15, Ne9, Ne12 et Ne15 :
1 # Nombre d ’ i n d i v i d u s
2 nrow ( DonneesOzone )

4.
1 #I n d i c a t e u r s de t e n d a n c e c e n t r a l e
2 T e n d a n c e C e n t r a l e<−summary ( DonneesOzone [ ] [ 2 : 1 1 ] )
3
4 # I n d i c a t e u r s de d i s p e r s i o n
5 V a r i a n c e<−v a r ( DonneesOzone [ ] [ 2 : 1 1 ] )

1 # Boxplot t e m p é r a t u r e
2 dev . new ( )
3 b o x p l o t ( DonneesOzone [ ] [ 3 : 5 ] , ’ b o x s t y l e ’ , ’ f i l l e d ’ , ’
notch ’ , ’ on ’ , y l a b=" T e m p e r a t u r e o b s e r v é e en d e g r é e " )
4 t i t l e ( " Temperatures o b s e r v é e à 9 , 1 2 e t 15h" , c e x . l a b
= 0 . 8 , c e x . a x i s = 0 . 8 , c e x . main = 0 . 8 , c e x . sub =0.8)
5
6 # Boxplot N é b u l o s i t é
7 dev . new ( )
8 b o x p l o t ( DonneesOzone [ ] [ 6 : 8 ] , ’ b o x s t y l e ’ , ’ f i l l e d ’ , ’
notch ’ , ’ on ’ , y l a b=" N é b u l o s i t é " )
9 t i t l e ( " N é b u l o s i t é o b s e r v é e à 9 , 1 2 e t 15h" , c e x . l a b
= 0 . 8 , c e x . a x i s = 0 . 8 , c e x . main = 0 . 8 , c e x . sub =0.8)
10
11 # Les v a l e u r s a b e r r a n t e s pour l e s v a r i a b l e s Ne9 ,
Ne12 e t Ne15
12 o u t l i e r N e 9 <− b o x p l o t . s t a t s ( DonneesOzone $Ne9 ) $ out
13 p r i n t ( o u t l i e r N e 9 ) #17
14
15 o u t l i e r N e 1 2 <− b o x p l o t . s t a t s ( DonneesOzone $Ne12 ) $ out
16 p r i n t ( o u t l i e r N e 1 2 ) #18
17
18 o u t l i e r N e 1 5 <− b o x p l o t . s t a t s ( DonneesOzone $Ne15 ) $ out
19 p r i n t ( o u t l i e r N e 1 5 ) #17

Dernière mise à jour le 4 janvier 2017 2


6.
1 # Installer la bibliothèque " plotrix "
2 i n s t a l l . packages ( " p l o t r i x " )
3
4 #c h a r g e r l a b i b l i o t h è q u e
5 library ( plotrix )
6
7 dev . new ( )
8 l b l s <− p a s t e ( names ( t a b l e ( DonneesOzone [ ] [ 1 3 ] ) ) , " \n" ,
mytable , s e p=" " )
9 s l i c e s<−m a t r i x ( t a b l e ( DonneesOzone [ ] [ 1 3 ] ) )
10 p c t <− round ( s l i c e s /sum ( s l i c e s ) ∗ 1 0 0 )
11 l b l s <− p a s t e ( l b l s , pct , "%" , s e p=" " )
12 pie3D ( t a b l e ( DonneesOzone [ ] [ 1 3 ] ) , l a b e l s=l b l s , e x p l o d e = 0 . 1 ,
13 main="Diagramme c i r c u l a i r e pour l a v a r i a b l e ’ Vent ’ "
, cex . lab =0.8 , cex . a x i s =0.8 ,
14 c e x . main = 0 . 8 , c e x . sub = 0 . 8 , c o l=rainbow ( l e n g t h ( l b l s ) )
)
15
16 dev . new ( )
17 l b l s <− p a s t e ( names ( t a b l e ( DonneesOzone [ ] [ 1 4 ] ) ) , " \n" ,
mytable , s e p=" " )
18 s l i c e s<−m a t r i x ( t a b l e ( DonneesOzone [ ] [ 1 4 ] ) )
19 p c t <− round ( s l i c e s /sum ( s l i c e s ) ∗ 1 0 0 )
20 l b l s <− p a s t e ( l b l s , pct , "%" , s e p=" " )
21 pie3D ( t a b l e ( DonneesOzone [ ] [ 1 4 ] ) , l a b e l s=l b l s , e x p l o d e = 0 . 1 ,
22 main="Diagramme c i r c u l a i r e pour l a v a r i a b l e ’ P l u i e ’
" , cex . lab =0.8 , cex . a x i s =0.8 ,
23 c e x . main = 0 . 8 , c e x . sub = 0 . 8 , c o l=rainbow ( l e n g t h ( l b l s ) )
)

(b) Déterminer, s’il y a lieu les valeurs aberrantes pour les variables
Ne9, Ne12 et Ne15 . Expliquez votre réponse.

Dernière mise à jour le 4 janvier 2017 3


Exercice 4*

1. Chargez dans R le contenu de la base de données en utilisant la


commande xlsread :

1 #− m o d i f i e r l e r é p e r t o i r e par d é f a u t
2 setwd ( "C : / U s e r s / y o u s s e f / Dropbox / INF1421−Module1−
I n t r o d u c t i o n /R/ E x e r c i c e 4 / " )
3
4 #− c h a r g e r l e s d o nn é es
5 # i n s t a l l e r et charger la bibliotheque " readxl "
6 i n s t a l l . packages ( " readxl " )
7 library ( readxl )
8
Les diagrammes circulaires nous permettent de voir la répartition 9 #− L i r e l e f i c h i e r x l s x
en pourcentage des sous-ensembles des ensembles. Dans notre cas, 10 JeuDonnees <− r e a d_e x c e l ( " JeuDonnees . x l s x " , s h e e t = 1 )
ils nous permettent de voir la répartition des vents selon qu’ils
viennent de l’ouest, de l’est, du sud ou du nord. Pour la variable 2. La matrice de confusion en utilisant R :
pluie, le diagramme nous permet de voir la répartition des temps
pendant lesquels il pleut ou il fait sec. 1 # Méthode 1 :
2 c o n f<−t a b l e ( JeuDonnees $ ‘ C l a s s e r é e l l e ‘ , JeuDonnees $ ‘ C l a s s e
Du premier coup d’oeil, on constate que le vent venant de l’ouest prédite ‘ )
3 print ( conf )
est plus souvent présent que le vent venant de l’est. On voit aussi 4
que le temps est moins souvent à la pluie qu’au temps sec. 5 # Méthode 2 :
6 i n s t a l l . packages ( " c a r e t " )
7 library ( caret )
8 f . c o n f <− c o n f u s i o n M a t r i x ( c o n f )
9 print ( f . conf )

Pred-Classe
Classe 1 Classe 2 Classe 3

Classe
Classe 1 8 1 1
Classe 2 2 7 1
Classe 3 0 1 9

Dernière mise à jour le 4 janvier 2017 4


3. Le calcul du taux de bonne classification par classe et le taux de
classification global :

1 # Le taux de c l a s s i f i c a t i o n par c l a s s e
2 for ( i in 1:3) {
3 TauxClasse<−c o n f [ i , i ] /sum ( c o n f [ i , ] ) ∗ 100
4 R e s u l t a t<− s p r i n t f ( ’ Le taux de c l a s s i f i c a t i o n de l a
C l a s s e %d e s t de %.2 f%%’ , i , TauxClasse )
5 print ( Resultat )
6 }
7
8 # Le taux de c l a s s i f i c a t i o n g l o b a l
9 T a u x D e C l a s s i f i c a t i o n<−mean ( JeuDonnees $ ‘ C l a s s e r é e l l e ‘==
JeuDonnees $ ‘ C l a s s e p r é d i t e ‘ ) ∗ 100
10 R e s u l t a t<− s p r i n t f ( ’ Le taux de c l a s s i f i c a t i o n g l o b a l e s t
de %.2 f%%’ , T a u x D e C l a s s i f i c a t i o n )
11 print ( Resultat )

— Le taux de classification de la Classe 1 est de 80.00%


— Le taux de classification de la Classe 2 est de 70.00%
— Le taux de classification de la Classe 3 est de 90.00%
— Le taux de classification global est de 80.00%

Dernière mise à jour le 4 janvier 2017 5

Vous aimerez peut-être aussi