Quels algorithmes machine learning utiliser ?

J’utilise d’abord les algorithmes machine learning simples qui collent au problème : régression, classification, Random Forest, LightGBM ou XGBoost. Pas besoin de sortir un LLM pour prédire un prix, classer un spam ou travailler sur du tabulaire. Le vrai sujet, c’est choisir juste.

Pourquoi commencer simple ?

On commence simple parce qu’un modèle classique bien choisi donne souvent une meilleure réponse business qu’un système IA plus complexe, plus coûteux et plus dur à maintenir.

Je vois encore trop souvent le réflexe inverse. On parle tout de suite de LLMs, c’est-à-dire de grands modèles de langage comme ChatGPT, ou de systèmes génératifs capables de produire du texte, des images ou du code. C’est puissant, oui. Mais ce n’est pas automatiquement le bon outil.

Pour une prédiction de ventes, une classification simple, un score de risque client ou des données tabulaires propres, un modèle classique fait souvent très bien le job. Une régression logistique, une forêt aléatoire ou un gradient boosting peuvent donner un résultat rapide, mesurable et compréhensible. Et surtout, on sait pourquoi ça marche ou pourquoi ça ne marche pas.

La baseline, c’est le point de départ propre. C’est un modèle simple, rapide à entraîner, facile à tester, qui sert de référence. Si un modèle complexe ne bat pas clairement cette baseline, il ne mérite pas sa place. C’est brutal, mais c’est sain.

Entre nous, on le sait bien, faire appel à un consultant en automatisation intelligente et en agent IA, c’est souvent le raccourci le plus malin. On en parle ?

Chez des clients, j’ai souvent vu des projets IA partir trop vite vers des architectures compliquées alors qu’une régression ou un modèle d’ensemble réglait déjà 80 % du problème. Le vrai sujet n’était pas l’algorithme. C’était la qualité des variables, la définition de la cible, ou la façon dont le score allait être utilisé par les équipes.

Avant de choisir un algorithme, je regarde toujours quelques critères simples :

  • Le type de cible. Est-ce qu’on prédit un nombre, une catégorie, une probabilité, une série dans le temps ?
  • Le volume de données. Quelques milliers de lignes ne se traitent pas comme plusieurs millions.
  • Le besoin d’interprétation. Si un métier doit comprendre la décision, il faut éviter la boîte noire inutile.
  • Le temps d’entraînement. Un modèle qui prend trois jours à entraîner peut être ingérable en production.
  • Le coût de maintenance. Plus c’est complexe, plus ça casse, plus ça coûte.
  • La qualité des variables. Un bon modèle avec de mauvaises données reste un mauvais système.
Problème Type de modèle Premier choix raisonnable
Prédire un montant ou une durée Régression Régression linéaire ou gradient boosting
Classer un client ou un dossier Classification Régression logistique ou forêt aléatoire
Créer un score de risque Scoring supervisé Régression logistique, XGBoost ou LightGBM
Prévoir une série temporelle Prévision Modèle statistique simple ou modèle avec variables calendaires
Analyser du texte libre NLP ou LLM Modèle NLP simple, puis LLM si le besoin le justifie

Quand utiliser la régression linéaire ?

J’utilise la régression linéaire quand je veux prédire une valeur numérique continue et comprendre rapidement l’effet des variables.

Le principe est simple : le modèle apprend une relation linéaire entre des variables explicatives et une cible. Une variable explicative, c’est une information disponible pour faire la prédiction. Par exemple la surface, le nombre de pièces, la ville. La cible, c’est ce que je veux prédire, comme le prix d’un appartement.

Concrètement, la régression linéaire cherche une formule du type : cible = poids des variables + erreur. Elle attribue un poids à chaque variable. Si la surface augmente, le prix monte de combien en moyenne ? Si la température baisse, la consommation d’énergie augmente de combien ? C’est ce côté lisible qui la rend très utile.

Cas d’usage Ce que je prédis
Immobilier Un prix de vente ou un loyer
Énergie Une consommation en kWh
Business Un chiffre d’affaires prévisionnel
Opérations Un délai ou un coût estimé

C’est une excellente baseline. Une baseline, c’est un premier modèle simple qui sert de point de comparaison. J’aime bien commencer par là parce que c’est rapide à entraîner, facile à lire, et surtout facile à expliquer à une équipe métier. Dans pas mal de projets client, ça évite de partir trop vite sur un modèle compliqué alors qu’un modèle simple donne déjà une bonne réponse.

Exemple Python : from sklearn.linear_model import LinearRegression; model = LinearRegression(); model.fit(X_train, y_train); predictions = model.predict(X_test)

Ses limites sont assez claires. Elle capte mal les relations non linéaires, par exemple quand l’effet d’une variable n’est pas constant. Elle dépend aussi beaucoup de la qualité des features, c’est-à-dire des variables que je donne au modèle. Et elle peut être sensible aux valeurs extrêmes, comme un bien immobilier totalement atypique ou une commande exceptionnellement élevée.

Si la cible n’est pas une valeur continue mais une classe, par exemple oui/non, client perdu/client actif, fraude/pas fraude, je passe plutôt à la régression logistique.

Quand utiliser la régression logistique ?

J’utilise la régression logistique quand je veux classer un élément dans une catégorie, surtout en classification binaire. Malgré son nom, elle ne sert pas vraiment à faire de la régression au sens “prédire une valeur continue”, comme un prix ou un chiffre d’affaires. Elle sert à classifier.

Le principe est assez simple. Le modèle estime une probabilité d’appartenance à une classe, puis il applique un seuil pour décider. Par défaut, si la probabilité est au-dessus de 0,5, il classe souvent l’exemple en classe positive. Sinon, il le met dans l’autre classe.

Concrètement, je m’en sers souvent sur des cas comme ça :

  • Spam ou non-spam.
  • Lead qualifié ou non qualifié.
  • Client qui va churner ou rester.
  • Transaction frauduleuse ou transaction normale.

Ce que j’aime avec la régression logistique, c’est qu’elle va vite, elle est stable, et elle donne un bon premier modèle. Pas forcément le meilleur modèle final, mais un excellent point de départ. Chez un client, je l’ai déjà utilisée pour scorer des leads avant de passer à des modèles plus costauds. Rien que ça, ça a permis de voir quelles variables tiraient vraiment la probabilité vers “lead qualifié”.

Elle est aussi interprétable. On peut comprendre quelles variables poussent la prédiction vers une classe ou vers l’autre. C’est très utile quand vous devez expliquer le modèle à une équipe métier, pas juste afficher un score sorti d’une boîte noire.

Scikit-learn applique par défaut une régularisation. La régularisation, c’est une technique qui évite au modèle de trop coller aux données d’entraînement. En clair, ça aide à limiter le surapprentissage, donc le risque d’avoir un modèle très bon sur l’historique mais mauvais sur de nouvelles données.

from sklearn.linear_model import LogisticRegression

model = LogisticRegression()

model.fit(X_train, y_train)

predictions = model.predict(X_test)

probabilites = model.predict_proba(X_test)[:, 1]

Predict sert à obtenir la classe finale. Predict_proba sert à récupérer les probabilités. Et souvent, c’est ça qui m’intéresse le plus. Si je veux scorer des leads de 0 à 100, prioriser des alertes fraude, ou ajuster mon seuil métier, les probabilités sont plus utiles qu’un simple oui ou non.

Quand les relations entre les variables deviennent moins linéaires, les arbres de décision, les random forests ou les modèles de boosting prennent souvent le relais.

Pourquoi Random Forest reste solide ?

Random Forest reste solide parce qu’il combine plusieurs arbres de décision pour produire une prédiction plus stable qu’un arbre seul. C’est un algo que je garde souvent dans ma boîte à outils, surtout quand on travaille sur des données structurées classiques, avec des colonnes client, produit, transaction, historique, score, fréquence, montant, etc.

Le principe est assez simple. On entraîne plusieurs arbres de décision, mais pas tous sur exactement les mêmes données. Chaque arbre voit un échantillon différent du dataset, et seulement une partie des variables disponibles. Ça évite qu’un seul arbre prenne trop d’importance ou qu’il apprenne un découpage très spécifique, un peu fragile.

En classification, chaque arbre vote pour une classe. Par exemple churn ou pas churn. En régression, chaque arbre donne une valeur, puis Random Forest fait la moyenne. Cette moyenne réduit la variance, c’est-à-dire les variations excessives du modèle quand les données changent un peu. Un arbre seul peut vite devenir trop dépendant d’une règle du genre “si ancienneté < 3 mois et panier moyen > 80 alors…”. Une forêt dilue ce risque.

Cas d’usage Pourquoi ça marche bien
Classification client Le modèle capte plusieurs signaux faibles en même temps.
Risque de churn Il gère bien les interactions entre comportement, fréquence et historique.
Scoring Il donne souvent une base robuste sans trop de tuning.
Données structurées Il fonctionne bien sur des tables métier propres ou semi-propres.

Ses avantages sont très concrets. Il demande moins de préparation qu’une régression linéaire, notamment parce qu’il n’a pas besoin que les relations soient linéaires. Il capte des effets non linéaires, il résiste plutôt bien au bruit, et il donne souvent un bon premier benchmark. Chez un client e-commerce, j’ai déjà vu un Random Forest battre une régression logistique en deux essais, juste parce que les comportements d’achat n’étaient pas du tout linéaires.

Un exemple simple avec scikit-learn ressemble à ça.

from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# On sépare les variables explicatives et la cible
X = df.drop(columns=["churn"])
y = df["churn"]

# On crée un jeu d'entraînement et un jeu de test
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)

# On entraîne une forêt de 200 arbres
model = RandomForestClassifier(
    n_estimators=200,
    max_depth=None,
    random_state=42,
    n_jobs=-1
)

model.fit(X_train, y_train)

# On évalue la performance
predictions = model.predict(X_test)
score = accuracy_score(y_test, predictions)

print(score)

Il a quand même des limites. Il est moins interprétable qu’une régression, il peut devenir lourd si on multiplie trop les arbres, et sur du tabulaire très optimisé, LightGBM ou XGBoost peuvent faire mieux. Ces algorithmes de gradient boosting vont plus loin, parce qu’ils construisent les arbres de manière séquentielle pour corriger les erreurs des arbres précédents.

LightGBM ou XGBoost lequel choisir ?

Je choisis LightGBM ou XGBoost quand je travaille sur des données tabulaires et que je veux de très bonnes performances sans passer par du deep learning.

Le principe est le même des deux côtés. Ce sont des algorithmes de gradient boosting basés sur des arbres. Ils construisent plusieurs arbres les uns après les autres, et chaque nouvel arbre essaie de corriger une partie des erreurs laissées par les précédents. C’est souvent très efficace sur des colonnes classiques : âge, montant, pays, score, historique d’achat, statut client, etc.

LightGBM est souvent mon premier réflexe quand j’ai beaucoup de lignes ou beaucoup de variables. Il est pensé pour les données structurées. Il utilise un apprentissage basé sur des histogrammes, avec du binning, c’est-à-dire qu’il regroupe les valeurs continues dans des petits intervalles. Ça accélère l’entraînement et ça réduit la mémoire utilisée. Il existe en classification et en régression, et il supporte aussi le calcul parallèle, distribué et GPU.

from lightgbm import LGBMClassifier

model = LGBMClassifier(
    n_estimators=300,
    learning_rate=0.05,
    num_leaves=31
)

model.fit(X_train, y_train)

XGBoost est ultra populaire, robuste, et très solide sur les données tabulaires. Je l’ai vu gagner des benchmarks internes alors que tout le monde pensait que le modèle était déjà “assez bon”. Son option tree_method=’hist’ permet aussi de construire les arbres avec des histogrammes, donc de gagner en performance.

from xgboost import XGBClassifier

model = XGBClassifier(
    n_estimators=300,
    learning_rate=0.05,
    max_depth=6,
    tree_method="hist"
)

model.fit(X_train, y_train)
Critère LightGBM XGBoost
Vitesse Souvent très rapide, surtout sur gros volumes. Rapide aussi, surtout avec tree_method=’hist’.
Robustesse Très bon, mais parfois un peu sensible aux réglages. Très robuste, souvent fiable dès les premiers tests.
Usage tabulaire Excellent candidat. Excellent candidat aussi.
Réglages Num_leaves et min_child_samples comptent beaucoup. Max_depth, min_child_weight et subsample sont importants.
Interprétation Possible via importance des variables ou SHAP. Possible aussi via importance des variables ou SHAP.
Contraintes Très intéressant quand la taille devient un sujet. Très rassurant quand je veux une base solide et connue.

Le vrai choix se valide sur vos données réelles, pas dans l’absolu. Je prends une métrique claire, par exemple AUC, F1-score, RMSE ou MAE, et je compare proprement. Quand une régression ou une Random Forest plafonne, LightGBM et XGBoost sont souvent les deux candidats que je teste juste après.

Et si le bon modèle était juste le plus simple ?

Je vois souvent le même piège : on veut mettre de l’IA partout, alors que le problème demande juste un bon modèle machine learning classique. La régression linéaire donne une baseline claire pour prédire une valeur. La régression logistique fait très bien le job pour classifier. Random Forest apporte de la robustesse. LightGBM et XGBoost montent d’un cran quand les données tabulaires deviennent sérieuses. Le bon réflexe, c’est de partir simple, mesurer, puis complexifier seulement si les résultats le justifient. Vous gagnez du temps, vous réduisez les coûts et vous gardez un modèle compréhensible pour prendre de meilleures décisions business.

FAQ

  • Quels sont les algorithmes machine learning à connaître en priorité ?
    Je commencerais par la régression linéaire, la régression logistique, Random Forest, LightGBM et XGBoost. Ils couvrent déjà beaucoup de cas concrets : prédiction de valeurs, classification, scoring et données tabulaires. Et surtout, ils sont plus simples à entraîner, expliquer et maintenir qu’une architecture IA trop lourde.
  • Pourquoi utiliser une régression linéaire comme baseline ?
    Parce qu’elle est rapide, lisible et facile à comparer. Si une régression linéaire donne déjà un résultat correct, ça évite de partir trop vite sur un modèle plus complexe. Elle permet aussi de comprendre la relation entre les variables et la valeur à prédire.
  • La régression logistique sert-elle vraiment à classifier ?
    Oui. Le nom est trompeur, mais la régression logistique est un modèle de classification. Elle estime une probabilité d’appartenance à une classe, par exemple spam ou non-spam, churn ou non churn, fraude ou transaction normale.
  • Quand choisir Random Forest plutôt qu’une régression ?
    Je passe à Random Forest quand les relations entre variables deviennent moins linéaires ou quand un modèle simple plafonne. Random Forest combine plusieurs arbres, ce qui donne souvent des prédictions plus stables qu’un arbre seul, avec peu de préparation des données.
  • LightGBM et XGBoost sont-ils encore utiles avec les LLMs ?
    Oui, clairement. Pour des données tabulaires, LightGBM et XGBoost restent souvent plus adaptés qu’un LLM. Ils sont rapides, performants et pensés pour la prédiction structurée. Un LLM est utile pour du texte ou du raisonnement génératif, pas pour tous les problèmes de machine learning.

 

 

A propos de l’auteur

Je suis Franck Scandolera, expert et formateur en tracking avancé server-side, Analytics Engineering, automatisation No/Low Code avec n8n, intégration de l’IA en entreprise et SEO/GEO. J’accompagne des équipes qui veulent utiliser la data et l’IA sans empiler des usines à gaz inutiles. Avec webAnalyste et Formations Analytics, j’ai travaillé pour des références comme Logis Hôtel, Yelloh Village, BazarChic, la Fédération Française de Football ou Texdecor. Si vous voulez cadrer un projet IA, automatiser vos process ou fiabiliser vos données, contactez-moi.

Retour en haut