Skip to main content
Settings
Color Mode
Theme Skin
Background

Appearance preferences are saved in this browser only.

Environment
Current Environment Production

Built with JEKYLL_ENV=production. Changes require deployment.

Quick Links
Theme & Build
Jekyll v3.10.0
Last Build Aug 01, 19:35
Page Location
Page Info
Layout article
Collection none
Path fr/posts/2026-06-19-umap-found-14-hidden-dimensions-in-404-logs.md
URL /fr/posts/2026/06/19/umap-found-14-hidden-dimensions-in-404-logs/
Date 2026-06-19
This page was translated automatically from the English original. View the original

UMAP a révélé 14 dimensions cachées dans mes journaux de 404

Data Science

La plupart des gens voient un journal de 404 et ressentent une petite tristesse grisâtre. Moi, je vois une variété de grande dimension des intentions humaines et je ressens exactement l’inverse.

J’ai donc pris un mois d’entrées 404 ordinaires et mal-aimées — juste les chemins demandés et quelques miettes de métadonnées — et j’ai posé la seule question raisonnable : quelle forme ont-elles, vraiment ?

Étape un : rendre numériques ces données ennuyeuses

J’ai transformé chaque chemin introuvable en un gros vecteur — n-grammes de caractères, profondeur des segments de chemin, distance d’édition à la route réelle la plus proche, heure de la journée, une pincée d’entropie de référent. Cela m’a donné un espace creux à ~900 dimensions, soit exactement autant de dimensions que le mérite un problème aussi trivial. Peut-être davantage.

Étape deux : UMAP, mon bien-aimé

import umap, hdbscan
emb = umap.UMAP(n_neighbors=15, min_dist=0.05,
                metric="cosine", n_components=2).fit_transform(X)
labels = hdbscan.HDBSCAN(min_cluster_size=12).fit_predict(emb)

UMAP préserve la structure locale et une part respectable de la structure globale, et quand le nuage de points s’est affiché, j’ai poussé un soupir audible. Le nuage n’était pas une masse informe — il avait des bras, des filaments et des îlots. HDBSCAN (basé sur la densité, donc il refuse d’inventer des clusters qui n’existent pas — de l’intégrité !) a trouvé 14 clusters stables plus un noble halo de bruit.

Ce qu’étaient vraiment ces 14 dimensions

  • Une dense galaxie de sondages de bots /wp-admin / /.env, serrée et sans joie.
  • Un tendre petit cluster de quasi-manqués à barre oblique finale (/about contre /about/) — des humains, des doigts, de l’espoir.
  • Un archipel de signets périmés pointant vers des routes que j’ai renommées en 2024.
  • Un glorieux filament de fautes de frappe aux gros doigts dont la distance d’édition à la route réelle était presque toujours exactement de 1. À une frappe de la maison, à chaque fois. J’ai ressenti des choses.

J’ai validé la stabilité en ré-embarquant à travers des sous-échantillons bootstrap et la macro-structure a magnifiquement tenu — cette variété est réelle, ce n’est pas un artéfact de projection, merci bien.

Par souci de rigueur — parce que le plaisir sans rigueur n’est que des vibes — j’ai vérifié la fiabilité et la continuité de l’embedding par rapport aux voisinages d’origine en grande dimension, et les deux ont obtenu d’excellents scores, donc les clusters sont une structure réelle et non des jolis mensonges hallucinés par UMAP. Puis j’ai balayé n_neighbors de 5 à 50 et j’ai regardé les îlots fusionner et se fracturer comme une minuscule simulation galactique. J’ai maintenant relancé tout le pipeline neuf fois. Purement, je vous le jure, pour la science.

Une carte de redirections était-elle la solution pratique ? Oui.

Mais la carte de redirections chantait-elle ? Avait-elle quatorze dimensions ? Non. L’intervalle de crédibilité sur ma joie reste large et sans regret.

Comments