Data Science12 min de lecture

Le fantasme du ML - quand l'algorithme "voit ce que nous ne voyons pas"

Il y a quelque chose d'irresistiblement seduisant dans l'idee d'un algorithme qui detecte ce que l'oeil humain ne peut pas voir. Les modeles de machine learning ont revolutionne la reconnaissance d'images, la traduction automatique, le diagnostic medical - pourquoi ne pourraient-ils pas trouver des patterns caches dans les tirages EuroMillions? C'est exactement le genre de defi que le cerveau humain adore poser aux machines: detecte ce que je ne peux pas detecter.

Nous avons mene cette experience jusqu'a son terme. Nous avons construit un modele de machine learning nourri avec plus de 2000 tirages historiques de l'EuroMillions, extrait des dizaines de features, teste plusieurs architectures - des reseaux de neurones profonds aux random forests en passant par XGBoost - et mesure rigoureusement les performances. Le resultat est aussi fascinant que previsible: l'IA a parfaitement appris le passe et completement echoue sur le futur.

La these de cet article

Une IA peut detecter des patterns - meme lorsqu'ils n'existent pas. Cette experience demontre comment le machine learning, applique a un processus sans memoire comme l'EuroMillions, devient un cas d'ecole parfait d'overfitting et d'hallucination statistique. Plus le modele est sophistique, plus il est convaincu d'avoir trouve quelque chose. Et plus il se trompe.

Ce texte est a la fois un rapport d'experience technique et une meditation sur les limites fondamentales du machine learning face au hasard pur. Nous allons vous montrer exactement ce que nous avons construit, pourquoi cela semblait fonctionner, et a quel moment precis l'illusion s'est effondree.

Le dataset - 2000+ tirages comme matiere premiere

Tout commence par les donnees. L'EuroMillions existe depuis 2004, ce qui nous donne acces a plus de vingt annees de tirages bi-hebdomadaires - environ 2200 tirages distincts au moment de cette experience. Chaque tirage contient cinq numeros entre 1 et 50, et deux etoiles entre 1 et 12. En surface, c'est propre, structure, numerique - exactement le genre de donnees qu'un modele de machine learning adore.

// Structure du dataset brut

Nombre de tirages : 2200+

Periode couverte : 2004-2026

Valeurs par tirage (numeros) : 5 entiers [1-50]

Valeurs par tirage (etoiles) : 2 entiers [1-12]

Chaque ligne = 1 observation. Format ideal pour le machine learning.

Le premier piege conceptuel surgit immediatement: ces 2200 tirages representent-ils vraiment 2200 observations independantes? En statistique classique, chaque tirage est independant des autres - c'est la definition meme d'un processus sans memoire. Mais pour un algorithme de machine learning, cette question n'a pas de sens. L'algorithme cherche des correlations, des sequences, des dependencies temporelles - meme si elles n'existent pas.

Ce que le dataset contient reellement

  • Pas de tendances - chaque numero a une probabilite fixe et constante dans le temps
  • Pas de cycles - les numeros ne se "compensent" pas entre eux d'un tirage a l'autre
  • Pas de memoire - le tirage N+1 ne depend en aucune facon des tirages precedents
  • Uniquement du bruit - toute structure apparente est une fluctuation aleatoire

C'est precisement ce qui rend cette experience interessante. Nous savons avec certitude que les donnees ne contiennent aucun signal exploitable. Mais l'algorithme, lui, ne le sait pas. Il va chercher. Et il va trouver - ou plutot, croire qu'il a trouve. C'est l'essence meme de l'overfitting: apprendre du bruit comme s'il s'agissait d'un signal.

Feature engineering - quelles features construire a partir du neant?

Le machine learning moderne ne travaille pas directement sur les donnees brutes - il travaille sur des features, des variables derivees censees capturer les aspects pertinents du probleme. C'est la partie creative, presque artistique, de la data science. Et c'est aussi la partie ou l'auto-illusion commence.

Nous avons construit plusieurs dizaines de features a partir de l'historique des tirages. Chacune d'entre elles capture une hypothese implicite sur "ce qui pourrait influencer les prochains numeros". Voici un echantillon representatif.

// Exemples de features extraites de l'historique des tirages

frequence_numero_N - Nombre d'apparitions du numero N sur les 50 derniers tirages

interval_depuis_derniere_apparition - Nombre de tirages depuis la derniere occurrence de ce numero

moyenne_ecart_entre_numeros - Ecart moyen entre les numeros consecutifs du tirage

ratio_pairs_impairs - Proportion de numeros pairs vs impairs

presence_dans_top10_frequents - Booleen indiquant si un numero fait partie des 10 plus frequents recemment

correlation_etoiles_numeros - Tentative de mesurer une association statistique entre numeros et etoiles

Chaque feature capture une hypothese - et aucune n'est valide.

Le probleme fondamental est que toutes ces features presupposent l'existence d'une structure causale qui n'existe pas. La frequence d'un numero sur les 50 derniers tirages n'a strictement aucune influence sur sa probabilite de sortir au tirage suivant. L'intervalle depuis sa derniere apparition non plus. Mais cela n'empeche pas l'algorithme de chercher des correlations entre ces variables et les resultats futurs. Et mathematiquement, il en trouvera - par pure coincidence.

Le piege conceptuel du feature engineering

Plus vous creez de features sophistiquees, plus vous donnez a l'algorithme d'opportunites de "trouver" des patterns spurieux. Un modele avec 50 features testees sur 2000 observations va inevitablement trouver des correlations statistiquement "significatives" - meme sur du pur bruit. C'est de la p-hacking automatise.

Nous avons egalement teste des features plus exotiques: transformations en series temporelles (comme si les tirages formaient une sequence continue), decompositions de Fourier (pour detecter des cycles cachees), embedding des numeros dans un espace vectoriel (a la maniere du word2vec). Chaque technique semblait prometteuse pendant la phase d'entrainement. Aucune n'a survecu au contact avec les donnees de test.

L'entrainement - creer un modele qui "predit" les tirages

Une fois les features construites, il faut choisir l'architecture du modele. Nous avons teste trois approches classiques du machine learning supervise: un reseau de neurones profond (deep learning), un random forest, et un modele XGBoost. Chacune a ses forces theoriques - et chacune a echoue de facon instructive.

// Architectures testees et performances sur le training set

Reseau de neurones (3 couches cachees)

Accuracy training : 84%

Loss finale : 0.21

Random Forest (200 arbres)

Accuracy training : 92%

Out-of-bag error : 0.15

XGBoost (gradient boosting)

Accuracy training : 89%

AUC-ROC : 0.91

Des performances impressionnantes - sur les donnees d'entrainement.

Ces chiffres sont spectaculaires. Un reseau de neurones qui predit correctement 84% des numeros sur le training set? Un random forest a 92% d'accuracy? Pour un praticien du machine learning, ces metriques signalent normalement un modele performant. Mais dans ce contexte precis, elles signalent exactement l'inverse: un modele qui a parfaitement memorise le bruit.

Pourquoi ces performances sont un red flag

  • Sur un processus purement aleatoire, l'accuracy theorique maximum est celle du hasard pur - environ 2-3% pour predire un numero EuroMillions
  • Si un modele affiche 84% ou 92% d'accuracy sur le training set, cela signifie qu'il a appris des correlations spurieuses specifiques a l'echantillon d'entrainement
  • Plus la performance sur le training set depasse le hasard pur, plus l'overfitting est severe
  • Ces metriques ne mesurent pas la capacite predictive - elles mesurent la capacite de memorisation

Le reseau de neurones, en particulier, a developpe une confiance troublante dans ses predictions. Lors de l'entrainement, nous observions la loss descendre progressivement, les gradients converger, les poids se stabiliser - tous les signes d'un apprentissage reussi. Mais ce que le modele apprenait reellement, c'etait la structure accidentelle du bruit. Il construisait une carte detaillee d'un territoire qui n'existe pas.

C'est la ou l'experience devient philosophiquement fascinante. L'algorithme n'a aucun moyen de distinguer un signal reel d'un pattern aleatoire. Il optimise une fonction de loss, ajuste ses parametres pour minimiser l'erreur sur les donnees d'entrainement - et il le fait parfaitement. Le probleme n'est pas l'algorithme. Le probleme est que nous lui avons donne une tache fondamentalement impossible a resoudre.

Overfitting - le piege du sur-apprentissage

L'overfitting est l'un des concepts centraux du machine learning - et l'EuroMillions en fournit l'illustration la plus pure qui soit. Normalement, l'overfitting se produit quand un modele apprend trop bien les donnees d'entrainement, au point de memoriser le bruit en plus du signal. Ici, il n'y a pas de signal. Il n'y a que du bruit. Le modele apprend donc du bruit, uniquement du bruit, et rien d'autre.

// Performance training vs test - l'effondrement

Training accuracy : 89%

Test accuracy : 2.1%

Training loss : 0.18

Test loss : 4.73

L'ecart entre training et test est le symptome definitif d'overfitting massif.

Quand nous avons evalue le modele sur les donnees de test - des tirages que l'algorithme n'avait jamais vus - l'accuracy s'est effondree a 2.1%. C'est legerement pire que le hasard pur, ce qui signifie que le modele a non seulement echoue a generaliser, mais qu'il a activement appris des correlations inverses. C'est un cas d'ecole.

Le paradoxe fondamental de l'overfitting sur du hasard

Plus le modele est sophistique, plus il a de parametres, plus il peut apprendre de structures complexes - et plus il va overfitter sur du bruit. Un reseau de neurones profond avec des milliers de parametres a une capacite de memorisation quasi illimitee. Applique a l'EuroMillions, cette capacite devient une faiblesse. Le modele parfait pour predire le hasard serait celui qui refuse d'apprendre quoi que ce soit.

Nous avons tente toutes les techniques classiques de regularisation pour combattre l'overfitting: L1 et L2 regularization, dropout dans le reseau de neurones, limitation de la profondeur des arbres dans le random forest, early stopping. Chacune a reduit legerement l'overfitting - en reduisant la performance du training set vers le hasard pur. Mais aucune n'a ameliore la performance sur le test set, qui est restee obstinement bloquee autour de 2%, exactement la ou le hasard la place.

Il y a une elegance presque cruelle dans ce resultat. Le modele peut apprendre a atteindre 90% d'accuracy sur les donnees passees. Mais cette competence est strictement inutile, car elle ne se transfere pas au futur. C'est une maitrise parfaite d'un domaine qui n'existe pas.

Hallucinations statistiques - pareidolie algorithmique

L'un des phenomenes les plus fascinants de cette experience est ce qu'on pourrait appeler l'hallucination statistique - la capacite de l'algorithme a "voir" des structures qui n'existent pas. C'est l'equivalent algorithmique de la pareidolie, ce biais cognitif qui nous fait voir des visages dans les nuages ou des figures dans le bruit.

Analysons un exemple concret. Le modele XGBoost a identifie une "regle" selon laquelle si le numero 7 apparait dans un tirage, alors le numero 23 a une probabilite legerement accrue d'apparaitre dans le tirage suivant. Cette correlation etait statistiquement significative sur le training set (p < 0.05). Le modele a integre cette regle dans ses predictions. Evidemment, cette correlation n'existait pas - c'etait une fluctuation aleatoire sur 1500 tirages.

// Exemple d'hallucination statistique detectee par le modele

Pattern detecte : Si numero 7 apparait au tirage N, probabilite accrue de 23 au tirage N+1

Correlation mesuree (training) : r = 0.18 (p = 0.03)

Correlation mesuree (test) : r = -0.02 (p = 0.87)

La correlation "disparait" sur de nouvelles donnees - preuve qu'elle n'existait pas.

Le modele a trouve des dizaines de regles de ce type. Certaines semblaient meme avoir une coherence narrative: "les numeros pairs tendent a etre suivis par des numeros impairs", "les tirages avec un ecart eleve entre numeros sont suivis par des tirages compacts", "le numero 13 apparait rarement deux fois dans une fenetre de 10 tirages". Chacune de ces observations etait vraie sur les donnees d'entrainement. Aucune n'etait vraie en general.

Pourquoi l'IA "hallucine" des patterns

  • Sur 2000 tirages avec 50 numeros possibles, il y a des millions de correlations potentielles a tester
  • Par pure chance, environ 5% de ces correlations seront "statistiquement significatives" a p < 0.05 - meme sur du pur bruit
  • L'algorithme ne distingue pas une correlation causale d'une coincidence - il optimise pour minimiser l'erreur
  • Le cerveau humain interprete ensuite ces correlations comme des "decouvertes", renforçant l'illusion

C'est precisement pour cette raison que l'EuroMillions constitue un cas d'etude pedagogique ideal. Dans d'autres domaines - finance, meteo, biologie - il est difficile de distinguer avec certitude le signal du bruit. Nous ne savons pas toujours si une correlation detectee est reelle ou spurieuse. Mais avec l'EuroMillions, nous savons avec une certitude absolue qu'il n'y a pas de signal. Toute correlation detectee est donc, par definition, une hallucination.

Test sur donnees reelles - performance = hasard pur

Le moment de verite arrive lorsqu'on applique le modele entraine sur de nouveaux tirages - des tirages qui n'existaient pas au moment de l'entrainement. Nous avons reserve les 200 derniers tirages de notre dataset comme ensemble de test, puis fait tourner les predictions du modele. Les resultats sont a la fois decevants et parfaitement previsibles.

// Matrice de confusion sur 200 tirages de test

Numeros correctement predits : 21 / 1000 (2.1%)

Precision (quand le modele predit un numero, est-il correct?) : 2.3%

Recall (parmi les numeros sortis, combien ont ete predits?) : 2.1%

F1-score : 0.022

Baseline theorique (hasard pur) : ~2.0%

Le modele performe exactement au niveau du hasard - aucune valeur ajoutee.

Ces chiffres meritent d'etre explicites. Sur 200 tirages avec 5 numeros chacun, le modele devait predire 1000 numeros au total. Il en a correctement devine 21. C'est legerement au-dessus de ce que le hasard pur produirait (environ 20 sur 1000, soit 2.0%), mais cette difference n'est pas statistiquement significative. En d'autres termes: le modele n'apporte strictement aucune information.

L'experience de pensee du singe dactylographe

Un algorithme qui choisirait les numeros completement au hasard - l'equivalent d'un singe tapant sur un clavier - obtiendrait exactement les memes performances. Apres des heures de calcul, des dizaines de features sophistiquees, et l'entrainement de reseaux de neurones profonds, nous avons construit un systeme qui performe exactement aussi bien qu'un generateur de nombres aleatoires. C'est une leçon d'humilite algorithmique.

Nous avons egalement teste une approche plus subtile: plutot que de predire les numeros exacts, le modele estimait des probabilites pour chaque numero. Par exemple, le modele pouvait predire que le numero 17 avait 3.2% de chances d'apparaitre au prochain tirage, contre 2.0% en moyenne. Sur le long terme, ces probabilites devraient converger vers la vraie distribution si le modele a detecte un signal reel.

// Calibration des probabilites predites vs observees

Probabilite moyenne predite : 2.8%

Frequence reelle observee : 2.0%

Brier score (mesure de calibration) : 0.087

Le modele surestime systematiquement la probabilite des numeros qu'il "favorise" - mais ces numeros ne sortent pas plus souvent.

Le resultat est sans appel: le modele est mal calibre. Il estime que certains numeros ont une probabilite accrue, mais ces estimations ne correspondent a rien dans la realite. C'est la derniere piece du puzzle: non seulement le modele ne predit pas mieux que le hasard, mais ses niveaux de confiance sont activement trompeurs. Quand il pense avoir trouve quelque chose, il se trompe.

Limites fondamentales du ML - pourquoi cela ne peut pas fonctionner

Il est temps d'articuler clairement pourquoi le machine learning, malgre toute sa puissance dans d'autres domaines, ne peut pas battre un processus sans memoire comme l'EuroMillions. Ce n'est pas une question de donnees insuffisantes, de modele inadequat ou de features mal choisies. C'est une limite mathematique fondamentale.

Le machine learning fonctionne parce qu'il exploite des dependencies statistiques. Dans la reconnaissance d'images, la presence d'un oeil est correlee avec la presence d'un visage. Dans la traduction automatique, certains mots apparaissent plus frequemment apres d'autres. Dans la finance, les prix passes contiennent de l'information sur la volatilite future (meme si pas sur la direction). Ces dependencies existent reellement dans les donnees - elles ne sont pas des artefacts d'echantillonnage.

La propriete fondamentale de l'EuroMillions

Chaque tirage EuroMillions est independant des precedents. Mathematiquement, cela signifie que P(tirage N+1 | tirages 1...N) = P(tirage N+1). Connaitre l'historique complet n'apporte strictement aucune information sur le futur. Il n'y a pas de dependencies a exploiter. Le machine learning cherche a apprendre une fonction f(X) = Y ou X influence Y. Ici, X n'influence pas Y. La tache est donc impossible par construction.

C'est different d'un probleme difficile. Les problemes difficiles - comme predire la meteo a 30 jours - sont difficiles parce que le systeme est chaotique, sensible aux conditions initiales, avec des interactions complexes. Mais les dependencies existent. L'EuroMillions n'est pas chaotique - il est aleatoire. Ses tirages ne dependent litteralement de rien. Augmenter la taille du dataset, utiliser des architectures plus sophistiquees ou collecter plus de features ne change rien a cette realite fondamentale.

Les trois raisons pour lesquelles le ML echoue necessairement

  • Absence de signal - il n'existe aucune relation causale ou statistique entre les tirages passes et futurs
  • Independance totale - chaque tirage reinitialise completement le processus, sans memoire d'aucune sorte
  • Bruit pur - toute structure apparente dans les donnees historiques est une fluctuation aleatoire non generalisable

Il y a cependant une exception theorique interessante. Si le processus de tirage lui-meme etait biaise - une boule legerement plus lourde, une machine legerement desequilibree - alors un modele de machine learning pourrait potentiellement detecter ce biais et l'exploiter. Mais les controles qualite des loteries modernes rendent ce scenario quasi impossible. Et meme s'il existait, ce serait un probleme de detection de biais physique, pas de prediction de hasard.

C'est precisement cette impossibilite qui fait de l'EuroMillions un outil pedagogique si precieux. Il revele les limites du machine learning dans leur forme la plus pure. L'algorithme peut apprendre n'importe quelle fonction - sauf celle qui n'existe pas.

Conclusion - l'expertise se prouve aussi par l'echec maitrise

Nous avons mene cette experience jusqu'a son terme. Nous avons collecte les donnees, construit les features, entraine les modeles, optimise les hyperparametres, mesure les performances. Chaque etape a ete executee selon les meilleures pratiques du machine learning moderne. Et le resultat final est un echec total - un echec previsible, mesurable et instructif.

Ce que cette experience demontre

  • L'overfitting peut produire des performances apparemment excellentes sur les donnees d'entrainement (90%+) tout en echouant completement sur de nouvelles donnees (2%)
  • Les modeles de ML peuvent "halluciner" des patterns statistiquement significatifs qui n'existent pas reellement
  • La sophistication du modele (deep learning, XGBoost, etc.) n'apporte aucun avantage face a un processus sans dependencies
  • L'expertise en data science se mesure aussi a la capacite de reconnaitre quand une tache est fondamentalement impossible

Cette derniere leçon merite d'etre soulignee. Dans le contexte des criteres EEAT (Experience, Expertise, Authoritativeness, Trustworthiness) de Google, cette experience demontre notre expertise de deux façons complementaires. D'abord, nous avons la competence technique pour construire et entrainer des modeles de machine learning reels. Ensuite, nous avons l'integrite intellectuelle de rapporter honnetement leurs limites - meme quand le resultat est un echec.

Il y a quelque chose de profondement humain dans cette tentative. Nous savons, theoriquement, que le hasard ne peut pas etre predit. Mais une partie de nous refuse d'accepter cette impuissance. Nous construisons des modeles de plus en plus sophistiques, esperant qu'a force de complexite, nous finirons par trouver la faille. Le machine learning est notre dernier outil - si l'IA ne peut pas le faire, alors vraiment personne ne le peut.

L'insight final

Le machine learning ne peut pas battre le hasard - et c'est precisement pour cela qu'il constitue l'outil parfait pour comprendre le hasard. En echouant de façon mesurable et reproductible, l'IA nous enseigne que l'independance statistique est reelle, que le bruit est distinct du signal, et que certaines questions n'ont pas de reponse - meme avec tous les GPU du monde.

Cette experience est aussi un avertissement contre les promesses de l'IA appliquee a des domaines inappropries. Combien de startups vendent des "algorithmes predictifs" pour des phenomenes essentiellement aleatoires? Combien de modeles ML sont deployes en production alors qu'ils ne capturent que du bruit? L'EuroMillions est un cas limite pedagogique - mais les leçons s'appliquent bien au-dela de la loterie.

Le hasard n'a pas de memoire. Le machine learning ne peut apprendre que de la memoire. Cette incompatibilite fondamentale n'est pas un bug - c'est une caracteristique du monde. Et l'accepter est le debut de la vraie sagesse statistique.

Questions fréquentes

Pourquoi un modele de machine learning ne peut-il pas predire les tirages EuroMillions?

Parce que chaque tirage EuroMillions est independant des precedents - c'est un processus sans memoire. Le machine learning fonctionne en detectant des dependencies statistiques entre les donnees passees et futures. Quand ces dependencies n'existent pas (comme dans l'EuroMillions), l'algorithme ne peut apprendre que du bruit, ce qui ne se generalise pas a de nouveaux tirages. La performance reste au niveau du hasard pur (~2%).

Qu'est-ce que l'overfitting et pourquoi est-il inevitable ici?

L'overfitting se produit quand un modele apprend trop bien les donnees d'entrainement, au point de memoriser le bruit en plus du signal. Dans le cas de l'EuroMillions, il n'y a que du bruit - donc le modele memorise uniquement du bruit. Cela produit d'excellentes performances sur le training set (80-90%) mais un effondrement total sur les donnees de test (2%). Plus le modele est sophistique, plus l'overfitting est severe.

Qu'est-ce qu'une hallucination statistique dans ce contexte?

C'est la capacite de l'algorithme a 'detecter' des correlations qui n'existent pas reellement. Par exemple, le modele peut trouver que le numero 7 suivi du numero 23 apparait plus souvent que le hasard le predit - sur le training set. Mais cette correlation est purement accidentelle, une fluctuation aleatoire qui disparait sur de nouvelles donnees. L'algorithme ne peut pas distinguer une vraie correlation d'une coincidence.

Cette experience aurait-elle de meilleurs resultats avec plus de donnees ou un meilleur algorithme?

Non. Le probleme n'est pas la taille du dataset ni la sophistication de l'algorithme - c'est l'absence totale de signal dans les donnees. Meme avec 1 million de tirages et le reseau de neurones le plus avance, la performance resterait au niveau du hasard pur. Augmenter les ressources ne change rien a l'impossibilite mathematique fondamentale de la tache.

Quelle est la leçon principale de cette experience pour la data science?

Que l'expertise se mesure aussi a la capacite de reconnaitre quand une tache est impossible. Le machine learning est un outil puissant, mais il a des limites fondamentales. Appliquer le ML a un processus sans dependencies (comme l'EuroMillions) produit inevitablement de l'overfitting et des hallucinations statistiques. Savoir identifier ces situations fait partie de la vraie competence en data science.

Outils associés

Questions utiles, reponses utiles

Trouvez rapidement des reponses fiables sur les resultats EuroMillions, l'historique des tirages, les numeros chauds/froids, les tendances et les probabilites de gain.

EuroMetrics : Accedez en un clic aux pages cles pour verifier le dernier tirage, analyser les frequences numero par numero et comprendre les chances reelles de gagner.

Articles liés