Dans la leçon précédente, vous avez appris que les données sont le carburant de l'IA. Mais le carburant seul ne fait pas avancer une voiture — il faut un moteur. En IA, ce moteur s'appelle un algorithme.
Un algorithme est simplement un ensemble d'instructions étape par étape pour résoudre un problème.
Vous suivez déjà des algorithmes chaque jour :
Pensez à comment vous décidez quoi porter chaque matin. Vous vérifiez la météo, pensez à vos plans, regardez ce qui est propre — c'est un algorithme ! Vous suivez une série d'étapes pour prendre une décision. Les algorithmes d'IA font la même chose, avec des données au lieu de l'intuition.
Un arbre de décision prend des décisions en posant des questions oui/non — comme le jeu des « 20 questions ».
Imaginez que vous décidez si vous allez jouer dehors :
Il pleut ?
├── Oui → Rester à l'intérieur 🏠
└── Non → Il fait plus de 15°C ?
├── Oui → Jouer dehors ! ⚽
└── Non → Mettre une veste et jouer dehors 🧥
Chaque nœud pose une question, chaque branche suit une réponse, chaque feuille donne une décision finale.
Les Forêts Aléatoires combinent des centaines d'arbres de décision et les font « voter ». C'est comme demander son chemin à 500 personnes et suivre la majorité. Cette idée simple améliore considérablement la précision !
KNN est l'algorithme « demande à tes voisins ». Sa logique est magnifiquement simple : les choses similaires ont tendance à être proches.
Imaginez que vous déménagez dans une nouvelle ville et cherchez un bon restaurant. Que faites-vous ? Vous demandez à vos plus proches voisins ! Si 3 sur 5 recommandent la cuisine italienne, vous essaierez probablement l'italien.
KNN fonctionne exactement pareil :
from sklearn.neighbors import KNeighborsClassifier
# Créer et entraîner un modèle KNN avec K=5
knn = KNeighborsClassifier(n_neighbors=5)
knn.fit(X_train, y_train)
# Prédire sur de nouvelles données
prediction = knn.predict(X_test)
print(f"Précision : {knn.score(X_test, y_test):.2%}")
KNN est un « apprenant paresseux » — il n'apprend rien pendant l'entraînement ! Il mémorise toutes les données et fait le vrai travail au moment de la prédiction en calculant les distances.
La régression linéaire consiste à tracer une ligne à travers des points de données. Elle sert à prédire un nombre (pas une catégorie).
Plus vous étudiez, plus votre note tend à augmenter. Si vous traciez cela sur un graphique, vous verriez les points suivre une tendance ascendante. La régression linéaire trace la meilleure ligne à travers ces points.
Chaque ligne peut se décrire par :
y = mx + b
from sklearn.linear_model import LinearRegression
import numpy as np
# Heures d'étude et notes
hours = np.array([1, 2, 3, 4, 5, 6, 7, 8]).reshape(-1, 1)
scores = np.array([20, 35, 45, 55, 65, 75, 82, 90])
# Ajuster le modèle
model = LinearRegression()
model.fit(hours, scores)
# Prédire la note pour 5,5 heures d'étude
predicted = model.predict([[5.5]])
print(f"Note prédite pour 5,5 heures : {predicted[0]:.1f}")
| Question | Arbre de Décision | KNN | Régression Linéaire | |----------|:---:|:---:|:---:| | Prédire une catégorie ? | ✅ | ✅ | ❌ | | Prédire un nombre ? | ✅ | ✅ | ✅ | | Besoin d'expliquer la décision ? | ✅✅ | ❌ | ✅ | | Grand jeu de données ? | ✅ | ❌ | ✅ | | Relation linéaire ? | ❌ | ❌ | ✅✅ |
Il n'y a pas de « meilleur » algorithme universel. Le bon choix dépend de vos données et de votre problème. Un médecin pourrait préférer un arbre de décision pour expliquer pourquoi il a posé un diagnostic. Une appli météo pourrait utiliser la régression linéaire car la relation est à peu près linéaire.
Construisons un arbre de décision simple pour recommander des films !
Voulez-vous quelque chose de drôle ?
├── Oui → Aimez-vous les films d'animation ?
│ ├── Oui → Regardez « Vice-Versa 2 » 🎭
│ └── Non → Regardez « The Grand Budapest Hotel » 🏨
└── Non → Aimez-vous l'action ?
├── Oui → Préférez-vous les super-héros ?
│ ├── Oui → Regardez « Spider-Man: Across the Spider-Verse » 🕷️
│ └── Non → Regardez « Top Gun: Maverick » ✈️
└── Non → Voulez-vous une histoire vraie ?
├── Oui → Regardez « Les Figures de l'Ombre » 🚀
└── Non → Regardez « Interstellar » 🌌
def recommend_movie(funny, animated, action, superhero, true_story):
if funny:
if animated:
return "Vice-Versa 2 🎭"
else:
return "The Grand Budapest Hotel 🏨"
else:
if action:
if superhero:
return "Spider-Man: Across the Spider-Verse 🕷️"
else:
return "Top Gun: Maverick ✈️"
else:
if true_story:
return "Les Figures de l'Ombre 🚀"
else:
return "Interstellar 🌌"
print(recommend_movie(funny=False, animated=False,
action=True, superhero=True,
true_story=False))
Vous avez maintenant rencontré trois algorithmes classiques. Dans la prochaine leçon, nous explorerons les réseaux de neurones — les algorithmes inspirés du cerveau derrière les percées modernes de l'IA ! 🧠