REPUBLIQUE TUNISIENNE
Minist re de l'Enseignement Sup rieur et de la
Recherche Scientifique
Concours Nationaux dEntr e aux Cycles
de Formation dIng nieurs
Session 2019
DH./DD )JF7HD' *'18'FED'
FJ3/F ED'
FJHC* D-'1E ID%
2019
)1H/
Concours Math matiques et Physique, Physique et Chimie et Technologie
Epreuve dInformatique
Date : Mardi 11 Juin 2019
Heure : 12 H
Dur e : 2 H
Nbr pages : 10
Bar me : PROBLEME 1 : 14 points (Partie 1 : 2 points ; Partie 2 : 5 points ; Partie 3 : 7 points)
PROBLEME 2 : 6 points (Partie 1 : 1 point ; Partie 2 : 2 points ; Partie 3 : 3 points)
DOCUMENTS NON AUTORISES
L'USAGE DES CALCULATRICES EST INTERDIT
Il FAUT RESPECTER IMPERATIVEMENT LES NOTATIONS DE L'ENONCE
VOUS POUVEZ EVENTUELLEMENT UTILISER LES FONCTIONS PYTHON
DECRITES A LANNEXE2 (PAGE 10)
Pr sentation G n rale
L'apprentissage automatique supervis permet d laborer des programmes capables dapprendre
automatiquement partir dun ensemble de donn es (dataset) comportant des valeurs dobservations et
les d cisions qui leur sont associ es. Il a ainsi pour objectif de produire un mod le capable de pr dire la
d cision prendre pour des nouvelles valeurs dobservations.
Par exemple, on peut donner au programme dapprentissage un ensemble de donn es contenant les
observations relatives des patients (tension art rielle, ge du patient et pr sence dune tachycardie
sinuso dale) et expliquer lesquels ont un risque lev de crise cardiaque (d cision = 1) et lesquels ont un
risque tr s faible (d cision = 0). Comme illustr dans le tableau suivant, les lignes repr sentent les valeurs
des observations relatives un patient et la derni re colonne repr sente la d cision finale.
Une fois lapprentissage termin , partir des observations dun nouveau patient, le programme, appel
aussi classifieur, devra d terminer automatiquement la d cision prendre (0 ou 1).
tension ge
50
36
72
70
50
110
119
82
81
56
tachycardie d cision
1
0
0
0
1
0
0
1
1
1
Table 1 : Exemple de donn es dapprentissage.
PROBLEME 1
Lobjectif est dimpl menter un mod le qui permet de repr senter des r gles permettant de pr dire la
d cision partir des valeurs dobservations. Le mod le propos est bas sur la structure darbre binaire.
Concours (Math matiques et Physique, Physique et Chimie et Technologie)- Session Juin 2019 Epreuve dInformatique Page 1/10
Partie 1 : Repr sentation de la structure darbre binaire
Un arbre binaire est une structure de donn es form e par une hi rarchie d l ments appel s nSuds. Un
nSud est caract ris par deux cat gories dinformations :
- Les informations propres au nSud ;
- Les informations d crivant les liens avec ses nSuds descendants.
Un arbre binaire est toujours d sign par un nSud : son nSud initial appel racine.
Chaque nSud poss de au plus deux nSuds fils :
- Si le nSud poss de exactement deux nSuds fils, ils sont appel s fils gauche et fils droit.
- Si le nSud poss de un seul nSud fils, ce dernier est soit le fils gauche soit le fils droit.
- Si le nSud ne poss de aucun nSud fils, il est appel feuille.
Alors, un arbre binaire est une structure r cursive, puisque le fils gauche et le fils droit sont eux-m mes
des nSuds (repr sentant des arbres leur tour).
Une branche dans larbre est un chemin de la racine de larbre une feuille.
Exemple
La figure 1 repr sente un arbre binaire dont le nSud A
est la racine avec B son fils gauche et C son fils droit.
Le nSud C a un seul fils F (fils droit). D, E et F sont
des nSuds feuilles.
, et sont les branches de
larbre.
A
B
C
D
E
F
Figure 1 : Exemple dun arbre binaire
Dans la suite, on propose de construire la classe Node dont le squelette est donn par :
class Node :
def __init__ (self, val, leftNode = None, rightNode = None):
self.label = val # chaine de caract re
self.left = leftNode # instance de la classe Node ou None
self.right= rightNode # instance de la classe Node ou None
def isLeaf(self) :
completer &
def __repr__(self) :
return self.label
def linearise(self) : #m thode r cursive retournant la liste des branches
if self.isLeaf() : # traitement si le nSud est une feuille
return [ ]
else :
if self.left != None :
L1 = self.left.linearise() # traitement r cursif du nSud fils gauche
else :
L1=[]
if self.right != None :
L2 = self.right.linearise() # traitement r cursif du nSud fils droit
else :
L2=[]
return [ +e for e in L1]+[ +e for e in L2]
def __len__(self): # m thode r cursive
compl ter &
def __str__(self): # m thode r cursive
compl ter &
Exemple
Nd est une instance de la classe Node correspondant larbre de la figure 1.
Nd = Node('A', Node('B', Node('D'), Node('E') ) , Node('C', None, Node('F')))
Concours (Math matiques et Physique, Physique et Chimie et Technologie)- Session Juin 2019 Epreuve dInformatique Page 2/10
Travail demand
1. Ecrire la m thode isLeaf qui retourne True si le nSud est une feuille et False sinon.
2. Ecrire la m thode __len__ qui permet de d terminer le nombre de nSuds dun arbre.
Exemple :
>>>len(Nd)
6
3. Ecrire la m thode __str__ qui retourne la chaine repr sentant larbre conform ment au format donn
par lexemple suivant.
Exemple
>>>print(Nd)
Advertisement
Node('A',Node('B',Node('D'),Node('E')),Node('C',None,Node('F')))
Partie 2 : Repr sentation du mod le de d cision
Les r gles de d cision peuvent tre repr sent es par un arbre binaire, appel arbre binaire de d cision.
Par exemple, pour les donn es dapprentissage de la table 1, il est possible de construire larbre binaire
de d cision illustr par la figure 2.
D cision
0.5
{0:0, 1:1}
Tension
91
{0:0.3, 1:0.7}
D cision
0.5
{0:0.2, 1:0.8}
Age
62
{0:0.5, 1:0.5}
Tachycardie
0.5
{0:0.4, 1:0.6}
D cision
0.5
{0:0.1, 1:0.9}
D cision
0.5
{0:0.9, 1:0.1}
Figure 2 : Exemple dun arbre de d cision
Dans cette partie, on propose construire deux classes :
- DecisionNode : classe qui h rite de la classe Node permettant de repr senter un arbre binaire de
d cision ;
- DecisionForest : classe qui repr sente un ensemble darbres, appel e for t.
Description des classes
- Classe DecisionNode :
o Attributs :
(cid:1) label, chaine de caract res, repr sentant lobservation, h rit de la classe Node ;
(cid:1) distr, un dictionnaire repr sentant la probabilit de chaque d cision :
" chaque cl repr sente une d cision possible 0 ou 1 ;
" chaque valeur est un r el repr sentant la probabilit de d cision.
(cid:1) seuil, un r el, repr sentant le seuil de test utilis pour d duire la branche suivre ;
(cid:1) left, instance de la classe repr sentant le fils gauche, h rit de la classe Node ;
(cid:1) right, instance de la classe repr sentant le fils droit, h rit de la classe Node ;
o M thodes :
(cid:1) __init__(&) : permet linitialisation des attributs de la classe DecisionNode, sachant que
cette derni re h rite de la classe Node.
Concours (Math matiques et Physique, Physique et Chimie et Technologie)- Session Juin 2019 Epreuve dInformatique Page 3/10
(cid:1) outcome(&) : permet de retourner, partir dun r el val donn , le fils gauche si val est
sup rieur ou gal la valeur du seuil et le fils droit sinon. Cette m thode doit afficher un
message derreur dans le cas o le nSud courant est une feuille.
(cid:1) __str__(&) : permet de retourner une chaine de caract res repr sentant les r gles de d cision
extraites de larbre conform ment au format donn dans la figure 3. Cette m thode doit appeler
la m thode linearise h rit e de la classe Node.
DecisionNd est une instance de la classe DecisionNode associ e la figure 2
>>>left = DecisionNode('decision', {0:0, 1:1})
>>>right= DecisionNode('age', {0:0.5, 1:0.5}, 62,
DecisionNode('decision', {0:0.2, 1:0.8},0.5),
DecisionNode('tachycardie',{0:0.4,1:0.6},0.5,
DecisionNode('decision', {0:0.1, 1:0.9},0.5),
DecisionNode('decision', {0:0.9, 1:0.1},0.5)) )
>>>DecisionNd = DecisionNode('tension', {0:0.3, 1:0.7}, 91, left, right)
La m thode linearise appliqu e sur DecisionNd donne la liste des branches de larbre de la figure 2
>>>DecisionNd.linearise()
[ , , , ]
La fonction print (appel de la m thode __str__) permet dafficher textuellement les r gles associ es aux
branches de larbre DecisionNd
>>>print(DecisionNd)
IF tension>=91 THEN decision={0:0, 1:1}
IF tension<91 AND age>=62 THEN decision={0:0.2, 1:0.8}
IF tension<91 AND age<62 AND tachycardie>=0.5 THEN decision={0:0.1, 1:0.9}
IF tension<91 AND age<62 AND tachycardie<0.5 THEN decision={0:0.9, 1:0.1}
La deuxi me ligne r sultante de la commande print correspond la r gle associ e la branche , puisque le nSud de label 'age' est un fils droit du nSud de label 'tension', que 'decision' est un fils
gauche de 'age'.
Figure 3 : Exemple de manipulation dune instance de DecisionNode
(cid:1) predict(..) : permet, partir dun ensemble dobservations, de retourner les pr dictions des
d cisions possibles.
Cette m thode prend en param tre un dictionnaire dicobs, associ un ensemble
dobservations, o :
" Chaque cl repr sente le nom dune observation (chaine de caract res) ;
" Chaque valeur repr sente la valeur dune observation (entier).
Cette m thode retourne un dictionnaire distr, en consid rant la variable CurrentNode (nSud
courant) initialis e self et en appliquant le proc d suivant :
" si le label de CurrentNode nest pas une cl du dictionnaire dicobs o bien si
CurrentNode est une feuille alors, retourner son attribut distr
" sinon,
o la variable Curvalue re oit la valeur dont la cl est le label de CurrentNode dans
dicobs;
o CurrentNode re oit le r sultat de la m thode outcome partir de linstance
CurrentNode en passant Curvalue comme param tre.
- Classe DecisionForest :
(cid:1) Attribut : listNodes : une liste dinstances de la classe DecisionNode
o M thodes :
(cid:1) __init__(&) : permet dinitialiser lattribut listNodes une liste vide.
(cid:1) add(&) : permet dajouter une instance de la classe DecisionNode lattribut listNodes
Concours (Math matiques et Physique, Physique et Chimie et Technologie)- Session Juin 2019 Epreuve dInformatique Page 4/10
(cid:1) predict(&) : permet, partir dun ensemble dobservations repr sent par un dictionnaire
dicobs, de retourner un dictionnaire distr contenant la probabilit moyenne de chaque
d cision suivant les pr dictions des l ments de listNodes.
Travail demand
En se basant sur les descriptions ci-dessus r pondre aux questions suivantes :
Construire la classe DecisionNode :
1. Donner lent te qui permet la d finition de la classe DecisionNode.
2. Ecrire la m thode __init__.
3. Ecrire la m thode outcome.
4. Ecrire la m thode __str__.
5. Ecrire la m thode predict.
Construire la classe DecisionForest :
6. Ecrire la m thode __init__.
7. Ecrire la m thode add.
8. Ecrire la m thode predict.
Partie 3 : Apprentissage (Les questions de 1 8 sont ind pendantes des Parties 1 et 2)
L'objectif de cette partie est dimpl menter un algorithme pour la construction automatique de larbre de
d cision binaire partir des donn es.
Les donn es dapprentissage seront repr sent es par une matrice DSET de n lignes et m colonnes. Pour
chaque ligne de la matrice, nous convenons dassocier les (m-1) premi res colonnes pour les valeurs
dobservations et la derni re pour la d cision associ e ces observations.
Les noms des observations et le nom de la d cision sont stock s dans une liste, not e Lcol, selon le m me
ordre dans la matrice.
Exemple : La matrice DSET et la liste Lcol associ es aux donn es de la table 1 sont :
D
SET
=
110 50 1 0
119 36 0 0
82
81
56
72 0 1
70 0 1
50 1
Advertisement
1
', '
Travail demand
L
col
=
[
'
tension age tachycardie decision
', '
', '
'
]
Dans la suite :
- On suppose que DSET et Lcol sont d j d finies.
- On suppose que le module numpy a t import ainsi : import numpy as np
- Les fonctions demand es seront crites en langage Python en respectant la nomenclature
pr sent e lAnnexe 1 (page 9).
1. Ecrire une fonction nomm e CountValues qui prend en param tres DSET et un entier ind et
retourne le nombre de valeurs distinctes de la colonne dindice ind.
Exemple : Lappel de CountValues(DSET,1) retourne 4.
2. Ecrire une fonction EvalDistr qui prend en param tre DSET et retourne un dictionnaire distr o :
chaque cl , not e d, est une valeur de la d cision (0 ou 1);
chaque valeur est la probabilit dapparition de d dans DSET exprim e par :
p decision
(
=
d DSET
)
=
nombre de lignes o la d cision est gale
d
nombre de lignes de
DSET
(
Eq
.1)
Si DSET est vide, distr= {0:0.5, 1:0.5}.
Exemple : Lappel de EvalDistr(DSET) retourne {0: 0.4, 1: 0.6}.
Concours (Math matiques et Physique, Physique et Chimie et Technologie)- Session Juin 2019 Epreuve dInformatique Page 5/10
3. Ecrire une fonction nomm e IsPure, qui prend en param tre DSET et retourne un bool en gal
True si DSET est pure et False sinon, sachant que DSET est pure, si et seulement si, toutes les
valeurs des d cisions sont gales.
4. Ecrire une fonction IsQualitative qui prend en entr e DSET et retourne une liste de bool ens,
qual, de taille gale au nombre de colonnes de DSET, contenant True pour les observations de
valeurs qualitatives (0 ou 1) et False pour les observations de valeurs quantitatives (autres valeurs
num riques).
Exemple : Lappel IsQualitative(DSET) retourne la liste .
5. Ecrire une fonction Cut qui permet de d couper DSET en deux matrices. Elle prend en param tres
DSET, Lcol, obs (une chaine de caract res correspondant au nom dune observation) et un r el S
repr sentant le seuil de d coupage et prenant la valeur 0.5 par d faut.
Cette fonction retourne un tuple form par les trois listes L1, L2 et L3 :
L1 contient les noms des observations except obs ;
L2 contient les matrices DSET1 et DSET2 telles que :
(cid:1) DSET1 est form e par les lignes de DSET o la valeur de lobservation obs, not e Vobs,
est sup rieure ou gale S ;
(cid:1) DSET2 est form e par les autres lignes de DSET ;
(cid:1) La colonne obs de DSET ne doit pas figur r dans DSET1 et DSET2 ;
Eq
2p d crites par les quations (
L3 contient les probabilit s
1p et
et (
Eq
.2)
.3) :
p
1
p
2
=
p
(
Vobs S DSET
e
)
=
=
p
(
Vobs S DSET
<
)
=
nombre de lignes de
nombre de lignes de
nombre de lignes de
nombre de lignes de
DSET1
DSET
DSET2
DSET
=
1
p
1
(
Eq
.2)
(
Eq
.3)
Exemple : Lappel Cut(DSET, Lcol, 'age', 70) retourne :
(['tension', 'tachycardie', 'decision'],
, [81,0,1]]), array ([[110,1,0],[119,0,0],[56,1,1]])],
[0.4, 0.6])
6. Ecrire une fonction Impurity qui prend en param tres DSET, Lcol, obs et un seuil S (ayant par
d faut la valeur 0.5). Cette fonction retourne un r el mesurant la qualit du d coupage de DSET
en deux matrices DSET1 et DSET2, calcul selon l quation (Eq.4).
=
p
1
p decision
p decision
Advertisement
d DSET2
d DSET1
min
min
Eq
.4)
))
))
+
=
p
(
(
(
(
(
2
d
{
}
0,1
d
{
}
0,1
O :
DSET1 et DSET2 r sultent du d coupage de la matrice DSET selon obs et S ;
p1 et p2 sont d crites par les quations (Eq.2) et (Eq.3) ;
p(decision = d|DSET) est donn e par l quation (Eq.1).
Exemple : Limpuret du d coupage illustr dans lexemple de la question 5 est donn e par :
(cid:1)(cid:2)(cid:3)(cid:4)(cid:5)(cid:6)(cid:7)(cid:8)(cid:9)(cid:10)(cid:11)(cid:12)(cid:13), (cid:15)(cid:16)(cid:17)(cid:18), 2(cid:20)(cid:21)(cid:22)(cid:23), (cid:24)(cid:25)(cid:26) = (cid:25). (cid:29) (cid:2)(cid:6)(cid:31)(cid:9)(cid:25), (cid:26) + (cid:25). " (cid:2)(cid:6)(cid:31) #
$
% ,
%& = (cid:25). $
7. Ecrire une fonction SortObs qui prend en param tres DSET, Lcol et obs, puis retourne une liste
Lc obtenue selon les tapes suivantes :
partir des deux colonnes obs et 'decision', cr er la liste Lc qui est une liste de tuples (v,d) o
v est une valeur de lobservation obs et d la valeur de la d cision associ e,
puis, trier Lc par ordre croissant suivant les valeurs de obs.
Exemple
Lappel de SortObs(DSET, 'age') retourne : [(36,0),(50,0),(50,1),(70,1),(72,1)]
Concours (Math matiques et Physique, Physique et Chimie et Technologie)- Session Juin 2019 Epreuve dInformatique Page 6/10
8. Ecrire une fonction BestCut qui prend en param tres DSET, Lcol obs et une liste qual et retourne
un tuple (vBest, sBest) o vBest est la meilleure impuret et sBest est le meilleur seuil de
d coupage associ . vBest et sBest sont d termin s comme suit :
Cas des observations qualitatives :
(cid:1) sBest= 0.5
(cid:1) vBest= Impurity(DSET, Lcol, obs).
Cas des observations quantitatives :
(cid:1) Cr er Lc, la liste form e par les tuples (vi,di) tri e par ordre croissant en utilisant la fonction
SortObs.
(cid:1) Cr er partir de Lc, une liste LSeuil contenant les seuils possibles de d coupage de la
matrice DSET selon les conditions suivantes :
o Si DSET est pure, alors LSeuil contient la valeur maximale des vi de la liste Lc.
o Si DSET est impure, alors LSeuil est form e par les valeurs
v
i
1
pour tous les
i
v ++
2
tuples adjacents (vi ,di) et (vi+1 , di+1) de Lc avec '(cid:6) ` '(cid:6)) .
(cid:1) D terminer le meilleur seuil sBest de la liste LSeuil associ e la valeur minimale de
limpuret , vBest.
9. Ecrire une fonction nomm e BuildTree qui prend en param tres DSET, une liste Lcol et une liste
de bool ens qual et retourne une instance de la classe DecisionNode (d finie dans la partie 1)
repr sentant larbre de d cision, selon le proc d r cursif suivant :
cr er le dictionnaire distr en calculant la distribution des valeurs de d cisions dans DSET.
Traitement de base : Si DSET est vide ou bien si DSET est pure ou bien si Lcol contient une
seule valeur, alors retourner une instance de DecisionNode correspondant un nSud feuille avec
la distribution distr ;
Traitement r cursif (g n ral) :
(cid:1) pour chaque observation obs de Lcol, calculer (en utilisant la fonction BestCut) le meilleur
seuil ainsi que limpuret associ e ;
(cid:1) trouver lobservation oBest qui a la meilleure impuret vBest (minimale) associ e son seuil
sBest parmi toutes les observations obs dans Lcol ;
(cid:1) cr er une instance de DecisionNode contenant le nom de lobservation oBest comme label et
son seuil sBest et la distribution distr ;
(cid:1) appliquer le d coupage de DSET en DSET1 et DSET2 selon oBest et sBest laide de la
fonction Cut ;
(cid:1) cr er le nSud fils gauche (appel r cursif avec DSET1, Lcol sauf oBest) ;
(cid:1) cr er le nSud fils droit (appel r cursif avec DSET2, Lcol sauf oBest).
PROBLEME 2
Soit la base de donn es relationnelle intitul e 'classifieurs.db' contenant la description des donn es
dapprentissage avec les classifieurs automatiques cr s autour de ces donn es, repr sent e par le sch ma
relationnel suivant :
(cid:1) DataSet (ds_id, ds_name, nb_instances, format, ds_description)
La table DataSet d crit les donn es dapprentissage, avec les colonnes :
- ds_id : identifiant du dataset (entier), cl primaire.
- ds_name : nom du dataset (cha ne de caract res).
- nb_instances : nombre de lignes du dataset (entier).
-
- ds_description : le sommaire du dataset (chaine de caract res).
format : le format des donn es du dataset (chaine de caract res).
Concours (Math matiques et Physique, Physique et Chimie et Technologie)- Session Juin 2019 Epreuve dInformatique Page 7/10
(cid:1) Classifieur (cls_id, cls_description, error_rate, language, ds_id)
La table Classifieur d crit un classifieur automatique construit partir dun dataset, avec les colonnes :
-
-
-
-
cls_id : identifiant du classifieur (chaine de caract re), cl primaire.
cls_description : description du classifieur (chaine de caract res).
error_rate : un nombre r el entre 0 et 1 qui d crit le pourcentage des donn es o les d cisions
pr dites par le classifieur sont diff rentes de la r alit .
language : nom du langage de programmation utilis pour impl menter le classifieur (chaine
de caract re).
- ds_id : identifiant du dataset utilis pour lapprentissage du classifieur, cl trang re.
(cid:1) Method (m_name, category, m_description)
La table Method d crit les m thodes utilis es dans le domaine de lapprentissage automatique pour la
construction des classifieurs, avec les colonnes :
- m_name : le nom de la m thode (chaine de caract res), cl primaire.
-
- m_description : la description de la m thode (chaine de caract res).
category : la cat gorie de la m thode (chaine de caract res).
(cid:1) Combine (cls_id, m_name, description)
La table Combine d crit les m thodes de classification utilis es dans chaque classifieur, de cl
primaire (cls_id, m_name), avec les colonnes :
-
cls_id : identifiant du classifieur (chaine de caract re), cl trang re.
- m_name : le nom de la m thode (chaine de caract re), cl trang re.
- description : strat gie dint gration de la m thode dans le classifieur (chaine de caract res)
Partie 1 : alg bre relationnelle
Exprimer en alg bre relationnelle les requ tes suivantes :
1. D terminer les identifiants, les noms et les descriptions des datasets au format 'csv'.
Advertisement
2. D terminer les descriptions des classifieurs impl ment s en 'Python' et qui utilisent la m thode
de cat gorie 'KNN'.
Partie 2 : SQL
Exprimer en SQL les requ tes suivantes :
3. Donner les identifiants des datasets pour lesquels il existe au moins un classifieur avec un taux
derreur < 0.3 (error_rate).
4. Donner les identifiants et les noms des datasets o tous les classifieurs sont impl ment s en
'Python'.
5. Donner pour chaque dataset le nombre de m thodes de classification utilis es.
6. Mettre jour le nombre dinstances des datasets utilis s pour les classifieurs crits en 'Python',
en ajoutant 100 instances.
Partie 3 : sqlite3
On dispose dun fichier texte nomm 'DataMeth.txt' contenant des informations relatives aux m thodes
utilis es par les classifieurs, chaque ligne du fichier a la forme suivante :
Nom_m thode#cat gorie#description
7. Ecrire les instructions python permettant de :
importer le module sqlite3 ;
-
- se connecter la base de donn es 'classifieurs.db';
- cr er le curseur cur dex cution ;
- cr er la table Method ;
- remplir la table Method partir du fichier 'DataMeth.txt' ;
-
tracer la courbe dont les abscisses sont les identifiants des datasets et les ordonn es sont les
taux derreur moyens des classifieurs associ s.
Concours (Math matiques et Physique, Physique et Chimie et Technologie)- Session Juin 2019 Epreuve dInformatique Page 8/10
ANNEXE 1 Nomenclature associ e la Partie 3 du PROBLEME 1
Nom
DSET
DSET1
DSET2
n, m
ind
distr
qual
Lcol
obs
S
Lc
vBest
sBest
LSeuil
oBest
Type
Description
numpy.ndarray Matrices repr sentants des donn es dapprentissage
int
int
dict
list
list
str
float
list
float
float
list
str
Respectivement nombre de lignes et de colonnes de DSET
Indice dune colonne de la matrice DSET
Dictionnaire repr sentant la distribution des probabilit s des
d cisions
Liste indiquant les observations qualitatives et les observations
quantitatives
Liste de chaines des caract res repr sentant les noms des
observations ainsi que le nom de la d cision
chaine de caract res repr sentant le nom dune observation
Seuil de d coupage
Liste de tuples o chaque tuple est form par la valeur dune observation
et la valeur de la d cision associ e
Impuret donnant le meilleur seuil
Meilleur seuil
Liste des seuils possibles de d coupage
Nom de lobservation qui a la meilleure impuret
Concours (Math matiques et Physique, Physique et Chimie et Technologie)- Session Juin 2019 Epreuve dInformatique Page 9/10
ANNEXE 2 Quelques fonctions Python
Op rations utiles sur les it rables (str, tuple, list, dict, etc.)
len(it) retourne le nombre d l ments de lit rable it.
range(d,f) retourne la s quence de valeurs enti res successives comprises entre d et f exclu.
-
-
- min(it) (resp. max(it)) retourne la valeur minimale (resp. maximale) de lit rable it.
- x in it (resp. x not in it) v rifie si x appartient it (resp. nappartient pas).
-
-
-
-
-
-
-
sorted(it) retourne une liste contenant les l ments de it dans lordre croissant.
lst.sort() trie la liste lst dans lordre croissant.
lst.count(val) retourne le nombre doccurrences de val dans la liste lst.
lst.append(val) ajoute val la fin de la liste lst.
lst.remove(val) supprime la premi re occurrence de val dans la liste lst.
lst.index(val) retourne lindice de la premi re occurrence de val dans la liste lst.
source.split(motif) retourne une liste form e par des chaines de caract res r sultant du d coupage
de la chaine source autour de la chaine motif.
- motif.join(it rable de chaine de caract re) retourne une chaine de caract res r sultant de la
concat nation des l ments de lit rable intercal s par le motif.
- motif.format(param tres) retourne une chaine de caract res obtenue en substituant dans lordre
chaque {} dans motif par un objet de param tres.
- d.values() retourne un it rable form par les valeurs du dictionnaire d.
- d.items() retourne un it rable de couples (k,v) ou k est une cl du dictionnaire d et v est la valeur
associ e.
- M.shape ou np.shape(M) retourne un tuple form par le nombre de lignes et le nombre de
colonnes dune matrice M.
Op rations sur les fichiers
-
-
-
-
-
f=open (nomF,m) permet douvrir le fichier nomF en mode m o m='r' ou 'w'.
f.close( ) permet de fermer un fichier.
f.read() permet de lire et retourner le contenu dun fichier dans une chaine de caract res.
f.readline() permet de lire et retourner le contenu de la ligne courante dun fichier dans une chaine
de caract res.
f.readlines() : permet de lire et retourner le contenu de toutes les lignes dun fichier dans une
liste.
Op rations sur le module matplotlib.pyplot
-
-
-
import matplotlib.pyplot as plt permet le chargement du module
plt.plot(x,y) cr e la courbe o les abscisses sont d crites par les valeurs de lit rable x et les
ordonn es par ceux de lit rable y.
plt.show() affiche une fen tre contenant le r sultat du dessin.
Concours (Math matiques et Physique, Physique et Chimie et Technologie)- Session Juin 2019 Epreuve dInformatique Page 10/10