Dans l’article précédent, nous avons vu que la régression linéaire prédit une valeur continue : combien de kilogrammes de maïs, quelle température, quel prix. Mais parfois, la question n’est pas « combien ? » — elle est « oui ou non ? »

Est-ce que ce patient a le paludisme ? Oui ou non. Est-ce que cet email est un spam ? Oui ou non. Est-ce que cet étudiant va réussir son examen ? Oui ou non.

Pour répondre à ces questions binaires, nous avons besoin d’un outil différent : la régression logistique. Et derrière ce nom intimidant se cache une idée d’une élégance remarquable.

Pourquoi pas utiliser la régression linéaire ?

Imaginons qu’on veuille prédire si un élève réussit son BEPC (1 = réussite, 0 = échec) en fonction de ses heures de révision. On pourrait essayer la régression linéaire…

⚠️ Problème de la régression linéaire pour une sortie binaire
Heures de révision 0 1 0.5 ← Valeurs > 1 ! Valeurs < 0 ! → Régression linéaire (problème) Courbe logistique (solution)

Le problème est clair : la droite linéaire peut prédire des valeurs inférieures à 0 ou supérieures à 1 — ce qui n’a aucun sens pour une probabilité. On ne peut pas avoir une probabilité de réussite de 1,3 ou de -0,2 !

Il nous faut une fonction qui reste toujours entre 0 et 1. C’est exactement ce que fait la fonction sigmoïde.

La fonction sigmoïde : le cœur de tout

Fonction sigmoïde : Une fonction mathématique en forme de S qui transforme n’importe quel nombre réel en une valeur comprise entre 0 et 1. C’est la fonction porte d’entrée de la régression logistique — et de tous les réseaux de neurones artificiels.
σ(z) = 1 / (1 + e⁻ᶻ)

e est la constante d’Euler (≈ 2,718) et z = ax + b comme dans la régression linéaire.

📈 La courbe sigmoïde — toujours entre 0 et 1
z σ 1.0 0.5 0.0 σ(0) = 0.5 Prédit : OUI (≥0.5) Prédit : NON (<0.5)

La règle de décision est simple : si σ(z) ≥ 0,5 → on prédit OUI (1). Si σ(z) < 0,5 → on prédit NON (0). Le seuil de 0,5 peut être ajusté selon le contexte.

Linéaire vs Logistique : le tableau comparatif

📏 Régression Linéaire

→ Prédit une valeur continue

→ Sortie : n’importe quel nombre réel

→ Question : « Combien ? »

→ Ex : prévoir le prix du maïs

→ Fonction : ŷ = ax + b

🔀 Régression Logistique

→ Prédit une probabilité

→ Sortie : entre 0 et 1

→ Question : « Oui ou non ? »

→ Ex : prévoir si réussite au BEPC

→ Fonction : σ(ax + b)

Application : prédire la réussite au BEPC

Voici des données fictives mais réalistes sur 8 élèves béninois, leurs heures de révision hebdomadaires et leur résultat au BEPC :

Élève Heures/semaine (x) Résultat (y) P(réussite) prédite
Kofi20 (Échec)0,12
Amina40 (Échec)0,25
Sékou61 (Réussite)0,45
Fatou81 (Réussite)0,66
Brice101 (Réussite)0,82
Adjovi121 (Réussite)0,92
Moussa30 (Échec)0,18
Céleste91 (Réussite)0,75

On voit clairement la tendance : plus un élève révise, plus sa probabilité de réussite augmente. Avec 6 heures par semaine, la probabilité est de 45% — trop risqué. Avec 10 heures, elle monte à 82%. Le modèle dit clairement : révise plus !

Le code Python

Python # Régression logistique – Réussite au BEPC import numpy as np from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score import matplotlib.pyplot as plt # Données : heures de révision et résultats x = np.array([2, 4, 6, 8, 10, 12, 3, 9]).reshape(-1, 1) y = np.array([0, 0, 1, 1, 1, 1, 0, 1]) # Créer et entraîner le modèle modele = LogisticRegression() modele.fit(x, y) # Précision du modèle predictions = modele.predict(x) precision = accuracy_score(y, predictions) print(f »Précision du modèle : {precision*100:.0f}% ») # Prédire pour un nouvel élève (7h de révision) nouvel_eleve = np.array([[7]]) proba = modele.predict_proba(nouvel_eleve)[0][1] decision = modele.predict(nouvel_eleve)[0] print(f »Probabilité de réussite (7h) : {proba:.0%} ») print(f »Décision : {‘Réussite ✓’ if decision == 1 else ‘Échec ✗’} ») # Tracer la courbe sigmoïde x_courbe = np.linspace(0, 15, 200).reshape(-1, 1) probas_courbe = modele.predict_proba(x_courbe)[:, 1] plt.figure(figsize=(8, 5)) plt.plot(x_courbe, probas_courbe, color=‘#4a1a6b’, linewidth=2.5) plt.scatter(x, y, color=‘#9b59b6’, s=80, zorder=5) plt.axhline(y=0.5, color=‘#c8850a’, linestyle=‘–‘, label=‘Seuil 0.5’) plt.xlabel(‘Heures de révision / semaine’) plt.ylabel(‘Probabilité de réussite au BEPC’) plt.title(‘Régression Logistique – Prédiction BEPC’) plt.legend() plt.show()
💻 Résultat attendu

Précision du modèle : 100% (sur ces 8 exemples d’entraînement)

Probabilité de réussite pour 7h : 57%

Décision : Réussite ✓ (juste au-dessus du seuil de 0,5)

Les applications réelles en Afrique

🌍 Cas d’usage africains

1. Santé : Des hôpitaux à Cotonou, Lagos et Dakar utilisent des modèles similaires pour prédire le risque de paludisme sévère chez un patient, en fonction de ses symptômes et de son âge.

2. Finance : Les microfinances béninoises (comme CLCAM) commencent à explorer ces outils pour décider d’accorder ou non un prêt à un agriculteur, selon ses antécédents et sa région.

3. Agriculture : Prédire si une récolte sera bonne ou mauvaise selon les données météo, le type de sol et les intrants utilisés.

4. Éducation : Identifier les élèves à risque de décrochage scolaire pour intervenir à temps — exactement le genre d’outil qu’un enseignant-data scientist peut construire.

Les données sont la nouvelle matière première. Mais sans les mathématiques pour les raffiner, elles ne valent rien. — Inspiration de la data science africaine

✏️ Exercice corrigé

Un agent de santé à Porto-Novo a recueilli des données sur 6 patients suspects de paludisme. Il dispose du nombre de symptômes présentés (x) et du diagnostic final (y : 1 = paludisme confirmé, 0 = négatif).

x (symptômes) : 1, 2, 3, 4, 5, 6
y (diagnostic) : 0, 0, 0, 1, 1, 1

a) Quel type de régression est adapté ici, et pourquoi ?

b) Si on a trouvé z = 1,5x – 5, calcule σ(z) pour x = 3 et x = 5.

c) Pour x = 3, le modèle diagnostiquerait-il un paludisme ?

▸ Correction

a) La régression logistique est adaptée car la sortie est binaire (0 ou 1 — négatif ou positif). La régression linéaire donnerait des valeurs hors de [0,1], ce qui n’aurait pas de sens pour une probabilité.

b) Pour x = 3 : z = 1,5(3) – 5 = 4,5 – 5 = -0,5

σ(-0,5) = 1 / (1 + e^0,5) = 1 / (1 + 1,649) ≈ 0,38 soit 38%

Pour x = 5 : z = 1,5(5) – 5 = 7,5 – 5 = 2,5

σ(2,5) = 1 / (1 + e^(-2,5)) = 1 / (1 + 0,082) ≈ 0,92 soit 92%

c) Pour x = 3, σ = 0,38 < 0,5 → le modèle prédit NON (0) : pas de paludisme confirmé. ✅

Ce qu’on retient

La régression logistique, c’est le passage des mathématiques à la prise de décision. Là où la régression linéaire mesure, la régression logistique tranche. Ensemble, ces deux outils forment le socle de la data science — et des intelligences artificielles qui transforment aujourd’hui la médecine, la finance et l’éducation en Afrique.

Maintenant que tu comprends ces deux régressions, tu n’es plus seulement un observateur de l’IA. Tu en comprends les fondations.

Dans le prochain article, nous sortons des chiffres et rentrons dans la nature pour poser une question fascinante : pourquoi les abeilles construisent-elles des hexagones ? La réponse cache l’un des problèmes d’optimisation les plus élégants de toute la mathématique.