Forêt Aléatoire
Bagging d'arbres de décision
Enonce
Implémenter foret_aleatoire(X, y, n_arbres, profondeur_max) en réutilisant l'arbre de décision de l'exercice 08. Comparer la précision d'un arbre seul à celle d'une forêt de 20 arbres sur des données 2D bruitées (deux gaussiennes qui se chevauchent).
Signature attendue
def foret_aleatoire(X, y, n_arbres: int, profondeur_max: int) -> list:
📖 Rappel de cours
Une forêt aléatoire est une collection d'arbres de décision entraînés sur des échantillons bootstrap du jeu de données. La prédiction finale est obtenue par vote majoritaire. C'est l'archétype du bagging (Bootstrap Aggregating).
Algorithme :
- Pour chaque arbre $t = 1, \ldots, T$ :
- Tirer un échantillon bootstrap $\mathcal{D}_t$ (tirage avec remise, taille $n$)
- Entraîner un arbre de décision sur $\mathcal{D}_t$
- Prédiction d'un nouvel exemple : vote majoritaire des $T$ arbres
Pourquoi ça marche :
Chaque arbre est un classifieur à forte variance (très sensible aux données). En moyennant plusieurs arbres entraînés sur des jeux légèrement différents, on réduit la variance sans augmenter le biais. Le théorème central limite donne l'intuition : la moyenne d'estimateurs presque indépendants est plus stable.
Les vraies forêts aléatoires (Breiman, 2001) ajoutent aussi une sélection aléatoire de features à chaque split pour décorréler davantage les arbres. On garde ici la version simplifiée : bagging seul.
← Exercices d'IA et d'apprentissage automatique en Python — CPGE
Exercices du meme theme
La correction commentee, les indices progressifs, l'execution du code dans le navigateur et la verification par l'IA sont reserves aux abonnes.