Qu’est-ce que le Machine Learning ?
Le Machine Learning (apprentissage automatique) est une branche de l’intelligence artificielle qui permet aux ordinateurs d’apprendre à partir de données, sans être explicitement programmés. Au lieu de coder des règles « si le client a plus de 3 achats, alors c’est un client fidèle », vous donnez au ML des milliers d’exemples de clients fidèles et non fidèles, et il découvre les règles tout seul. Ce tutoriel explique les 3 types fondamentaux de ML avec des exemples concrets et du code Python.
Les 3 types de Machine Learning
1. Apprentissage supervisé
Vous donnez au modèle des données avec les « bonnes réponses » (labels). Il apprend la relation entre les entrées et les sorties. C’est comme un élève qui apprend avec un corrigé.
Exemples d'apprentissage supervisé :
CLASSIFICATION (prédire une catégorie) :
- Email → spam ou pas spam
- Photo → chat ou chien
- Transaction → frauduleuse ou légitime
- CV → embaucher ou ne pas embaucher
RÉGRESSION (prédire un nombre) :
- Surface + quartier + étage → prix d'un appartement à Dakar
- Historique de ventes → ventes du mois prochain
- Profil client → montant probable de la prochaine commande
Code Python — Classification de spam :
from sklearn.naive_bayes import MultinomialNB
from sklearn.feature_extraction.text import CountVectorizer
# Données d'entraînement
emails = [
"Gagnez 1 million FCFA maintenant", "Réunion demain à 10h",
"Offre spéciale 90% de réduction", "Le rapport est prêt",
"Cliquez ici pour votre cadeau gratuit", "Bien reçu, merci",
"Crédit gratuit sans condition", "Le client a confirmé le rdv"
]
labels = [1, 0, 1, 0, 1, 0, 1, 0] # 1=spam, 0=pas spam
# Transformer le texte en nombres
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(emails)
# Entraîner le modèle
model = MultinomialNB()
model.fit(X, labels)
# Tester sur un nouvel email
test = vectorizer.transform(["Offre exceptionnelle cliquez vite"])
print(f"Spam : {model.predict(test)[0] == 1}") # True2. Apprentissage non supervisé
Le modèle reçoit des données SANS labels. Il doit trouver des patterns et des groupes par lui-même. C’est comme trier un tas de vêtements sans qu’on vous dise les catégories — vous regroupez naturellement par couleur, type ou taille.
Exemples d'apprentissage non supervisé :
CLUSTERING (regroupement) :
- Segmenter vos clients en groupes (fidèles, occasionnels, à risque)
- Regrouper des articles similaires sur votre blog
- Identifier des zones géographiques de livraison optimales
Code Python — Segmentation clients :
from sklearn.cluster import KMeans
import pandas as pd
# Données clients
clients = pd.DataFrame({
'nb_achats': [1, 2, 15, 20, 3, 18, 1, 25, 2, 12],
'montant_total': [25000, 45000, 850000, 1200000, 60000,
950000, 15000, 1500000, 35000, 720000],
'jours_depuis_dernier_achat': [90, 60, 5, 2, 45, 8, 120, 1, 80, 10]
})
# K-Means avec 3 groupes
kmeans = KMeans(n_clusters=3, random_state=42)
clients['segment'] = kmeans.fit_predict(clients)
print(clients.groupby('segment').mean().round(0))
# Segment 0 : Clients fidèles (beaucoup d'achats, montants élevés, récents)
# Segment 1 : Clients occasionnels (peu d'achats, montants moyens)
# Segment 2 : Clients dormants (anciens, peu d'activité)3. Apprentissage par renforcement
Le modèle apprend par essai-erreur en interagissant avec un environnement. Il reçoit des récompenses pour les bonnes actions et des pénalités pour les mauvaises. C’est comme apprendre à conduire : on apprend de ses erreurs. C’est le type de ML utilisé par les voitures autonomes, les robots et les IA de jeux (AlphaGo).
Le workflow complet d’un projet ML
Les 7 étapes d'un projet Machine Learning :
1. DÉFINIR LE PROBLÈME
"Je veux prédire quels clients vont annuler leur abonnement"
2. COLLECTER LES DONNÉES
Exporter les données depuis votre CRM, base de données, Excel
Plus vous avez de données, meilleur sera le modèle
3. NETTOYER LES DONNÉES (60% du temps !)
- Supprimer les doublons
- Gérer les valeurs manquantes
- Corriger les erreurs de saisie
- Standardiser les formats
4. EXPLORER LES DONNÉES (EDA)
Visualiser, calculer des statistiques, comprendre les distributions
Identifier les corrélations entre les variables
5. ENTRAÎNER LE MODÈLE
- Séparer données en train (80%) et test (20%)
- Essayer plusieurs algorithmes
- Ajuster les hyperparamètres
6. ÉVALUER
Mesurer la précision sur les données de test
Si insatisfaisant : retour à l'étape 3, 4 ou 5
7. DÉPLOYER
Intégrer le modèle dans votre application ou workflowChoisir le bon algorithme
Pour la classification : commencez par Logistic Regression (simple et rapide), puis essayez Random Forest (meilleur en général) et Gradient Boosting/XGBoost (souvent le meilleur mais plus complexe).
Pour la régression : commencez par Linear Regression, puis essayez Random Forest Regressor et Gradient Boosting Regressor.
Pour le clustering : K-Means est le plus simple et couvre 80% des cas. DBSCAN est meilleur pour les groupes de formes irrégulières.
Règle d’or : commencez toujours par l’algorithme le plus simple. S’il donne des résultats satisfaisants (>85% de précision), inutile de complexifier. La simplicité facilite la maintenance et l’explication des résultats aux non-techniciens.