Écrivez un script adaboost.plearn qui décrit un objet de la classe AdaBoost, et qui permet de choisir le "weak learner" en incluant le fichier pointé par la variable weak_learner (qui sera passée sur la ligne de commande). La variable nstages devra aussi permettre de spécifier le nombre d'itérations d'AdaBoost. Mettez l'option weight_by_resampling à 0 (false) puisque le PLearner sous-jacent est capable d'utiliser les poids de son ensemble d'entraînement.
Utilisez pyplot pour visualiser la frontière de décision obtenue sur train.amat pour différentes valeurs de nstages. (NOTE : utilisez binary_2d_classif plutôt que 2d_classif, il s'agit d'un hack temporaire fait a pyplot pour qu'il fonctionne avec une sortie uni-dimensionelle).
Essayez avec un autre "weak learner", comme une régression logistique. Vous pouvez utiliser la classe NNet (la régression logistique est identique à un réseau de neurones sans couche cachée, avec une sigmoide en fonction de transfert de sortie). Mettez comme coût à optimiser le coût gradient_adaboost_cost (vous pourrez comparer les résultats avec le coût stable_cross_entropy).
Utilisez ce script pour observer l'évolution des erreurs ci-dessus lorsque le nombre d'itérations d'AdaBoost augmente, et avec différents "weak learners".