Interrogation IA
Interrogation IA
Interrogation IA
I. Généralités
1) Expliquer pourquoi on peut parler “d’apprentissage” ou « d’intelligence artificielle » ?
Nous avons étudier deux méthode de réduction de dimension : SVD (le but va être
d’y repérer des « concept » et d’en converser que les plus « fort » ; dans le sens de
pertinent à exploiter/ significatif des données).
Ensuite il existe aussi la méthode PCA, ou le but va être de trouver un espace de plus
faible dimension ou la variance des données est maximale
Dans un algorithme de régression dont l’on veut établir une classification, la frontière
de décision va être un point, une droite, un plan. Tout ce qui d’un coté ou de l’autre
de cette frontière sera de catégorie différente
Une fonction de coût sert à indiquer à quel point notre modèle est fiable sur un jeu
de données.
Les deux exemples de fonction de coût vu sont les fonction de coût L1 et L2, la
principale différence est l’élévation au carré de la formule pour L2 par rapport à L1.
Cela signifie que si les valeurs obtenues sont très éloigné des résultats attendus, la
valeur de la fonction de coût augmentera (la pénalisation est donc plus sévère)
10) Expliquer le concept de l’équilibre entre biais et variance (vous définirez ces deux
notions).
11) Donner les 3 méthodes vues en cours pour optimiser un algorithme de Machine
Learning. Expliquer brièvement la méthode qu’on utilisera le plus souvent en
pratique.
14) Supposons que nos données sont décrites par une numpy array 𝑋 de m lignes
(m observations) et p colonnes (p paramètres ou « features »). Donner la ligne de
code en Python permettant de calculer le vecteur 𝑋̅ de p-dimension des paramètres
moyennés sur toutes les observations de votre dataset (moyenne du dataset)
X_vector= np.array([sum(X[:,i])/len(X) for i in range(len(X[0]))])
(equivalent du np.mean)
- Choisir l’un des 10 modèles entraînés et utiliser son erreur sur les données sur lesquels
il n’a pas été entraîné (partie utilisée comme jeu de validation)
- Choisir l’un des 10 modèles entraînés, utiliser la moyenne des erreurs cross-validées
comme estimateur de son erreur.
- Moyenner les 10 modèles, utiliser la moyenne des erreurs cross-validées comme
estimateur de son erreur.
- Moyenner les 10 modèles, utiliser l’erreur du « modèle moyen » évaluée sur le jeu
d’entraînement tout entier comme estimateur de l’erreur.
- Entraîner un nouveau modèle sur le jeu d’entraînement tout entier en utilisant ces
paramètres optimaux θ, utiliser la moyenne des erreurs cross-validées comme
estimateur de l’erreur de notre modèle.
d) En appliquant une SVD sur M, exprimer MMT (resp. MTM) en fonction des
vecteurs singuliers V de M (resp. U)
e) (Bonus) Montrer que les valeurs propres de MMT sont les mêmes que celles de
MTM, qu’en est-il de leurs vecteurs propres ?
f) (Bonus) Quelle est la relation entre les valeurs singulières σ de M et les valeurs
propres λ de MMT ?
IV. Evaluation de modèle
On évalue 2 algorithmes sur une tâche qui consiste à classifier des champignons parmi 2
classes : toxique ou comestible. On obtient les résultats suivants :
La précision est une mesure peu significative pour l’évaluation des algorithmes,
on y préférera le F1-score.
Le diabète de type 1 est une maladie auto-immune, cela signifie que le taux de globule blanc
peut être un bon indicateur de détection (loin d’être suffisant, n’importe quelle infection
bénigne peut faire monter le taux de globule blanc)
Le diabète se caractérise par un taux de glucose trop élevé dans le sang, ce qui peut être un
bon indicateur (le taux de glucose variant en fonction du moment de la journée ou des prises
de repas, indiquer dans les données d’entrées l’heure de la mesure du glucose dans le sang
ou la date de dernier repas, ou encore spécifier à jeun ou non peut permettre d’avoir un
meilleur modèle prédictif.
A titre personnel, au vu des différence significative entre les deux types de diabète, j’en
serait venu à la conclusion de développer deux modèle distinct pour la détection de diabète
avec certaines données d’entrées spécifiques pour un modèle (ex : la mesure du taux de
globule blanc n’est pertinente que dans le cas d’un diabète de type 1), cependant l’énoncé
précise bien que nous ne développons qu’un seul algorithme et il n’est précisé nulle part non
plus que nous devons détecté le type de diabète dans notre algorithme. La sélection de nos
features sont donc toutes celles évoqués précédemment et n’entraineront qu’un seul et
unique modèle qui indiquera, après entrainement si le patient à le diabète ou non.
Nous sommes donc, dans ce contexte, sur un algorithme de classification binaire (touché par
la maladie ou non), dérivé de la probabilité d’appartenir à l’une ou l’autres des classes.
Notre seuil sera donc évidement défini à 0,5.
Un algorithme de régression logistique est tout désigné au vu des possibilités étudiés lors de
ce module (l’algorithme de random forest, vu lors du premier module IA, aurait pu être
également envisagé, mais vu que ce dernier n’as pas été étudié ici, nous n’en traiteront pas)
Les features ainsi que le modèle ont été défini, mais la pas la quantité de données, il est
relativement difficile d’estimer la quantité des données nécessaire à l’obtention d’un
modèle, cependant au vu de l’approche médicale et statistique plus haut
(symptômes/prédispositions connus), la quantité de jeu d’entrées n’a pas besoin d’être
immense (peut-être quelques milliers de lignes ? chiffre à prendre avec du recul)
Nous pouvons ensuite répartir notre jeu de données selon un rapport trainset, testset et
validationset de 70/20/10%, on peut également entrainer plusieurs modèles pour faire de la
cross-validation, 10 parties non recouvrantes (donc k=10) est un partitionnement souvent
utiliser pour la validation croisée et c’est celle que nous utiliserons dans notre contexte.
Nous utiliserons la métrique F1 (ou Moyenne géométrique) afin d’évaluer nos modèles, plus
conseillé qu’une simple précision.