← Tous les exercices
evaluer : perte moyenne et accuracy à partir des scores
Partie 4 · ★★★
Le modèle de l'exercice 4 renvoie des scores, pas des probabilités. La sigmoïde vaut 0,5 quand le score vaut 0 : le modèle répond « pneumonie » (1) quand score > 0, pas quand score > 0.5. L'accuracy est la part de bonnes réponses ; la perte est celle du cours (moyenne des −log de la probabilité de la bonne réponse).
Écris evaluer(scores, etiquettes) qui renvoie (perte, accuracy). Le jeu de test du cours : 8 scores et 8 étiquettes, accuracy attendue 75 %.
def sigmoide(u): return 1 / (1 + math.exp(-u)) def evaluer(scores, etiquettes): n = len(etiquettes) choix = [1 if s > ___ else 0 for s in scores] bonnes = sum(c == e for c, e in zip(choix, etiquettes)) p = [sigmoide(s) if e == 1 else 1 - sigmoide(s) for s, e in zip(scores, etiquettes)] perte = -sum(math.log(pi) for pi in p) / ___ return perte, bonnes / ___ scores = [2.0, -1.0, 0.3, -0.2, 0.8, -3.0, 0.1, 1.5] etiquettes = [1, 0, 1, 1, 0, 0, 1, 1] perte, accuracy = evaluer(scores, etiquettes)
Ctrl/⌘+Entrée