Skip to content

Les concepts

Six notions suffisent pour tout comprendre. Elles tiennent en une page.

Le modèle

Un modèle apprend à prédire une colonne à partir des autres. Cette colonne est la cible, et vous la nommez à la création :

python
spavik.train("churn.csv", target="churn")

Spavik en déduit la nature du problème, qu'il appelle la tâche :

La cible contientTâcheCe que rend predict
Des catégories (0/1, oui/non, A/B/C)classificationLa classe, plus une probabilité par classe
Des nombres continus (un montant, une durée)regressionUne valeur numérique

Vous n'avez pas à choisir : la cible décide. Une fois la tâche fixée, elle ne change plus, même si vous réentraînez.

La version

Chaque entraînement produit une version, numérotée à partir de 1. La version active sert les prédictions ; les précédentes restent consultables, ce qui rend le retour en arrière possible.

python
model.version          # 3
model.donnees["latest_version"]

Une version porte ses métriques, ses planchers de comparaison, le nombre de lignes apprises (n_train), et le moteur qui l'a produite. Ce dernier point compte : une version reste servie par le moteur qui l'a créée, donc une montée de version de la plateforme ne modifie pas vos prédictions existantes.

n_train et n_sampled_from

Si n_sampled_from est supérieur à n_train, le moteur a échantillonné : votre fichier comptait plus de lignes utilisables qu'il n'en a retenues. Ce n'est pas une erreur, mais c'est bon à savoir.

Les données-contexte

Spavik n'ajuste pas des poids comme un réseau de neurones. Il regarde des exemples au moment de prédire. L'ensemble de ces exemples s'appelle les données-contexte.

Cela a deux conséquences agréables. L'entraînement est rapide et gratuit, puisqu'il n'y a rien à optimiser. Et améliorer le modèle consiste à lui donner de meilleurs exemples, pas à le réapprendre de zéro.

La prédiction et la prévision

Deux opérations différentes, qu'il ne faut pas confondre.

predictforecast
Question posée« Pour cette ligne, quelle valeur ? »« Pour les 7 prochains jours, quelles valeurs ? »
Demande un modèleouinon
Conserve quelque choseoui, un modèle réutilisablenon, rien
Facturationà la ligne, au prix du moteur (1 sur le moteur par défaut)horizon fois séries

Utilisez predict quand vos lignes sont indépendantes les unes des autres : un client, une transaction, un ticket. Utilisez forecast quand l'ordre du temps porte l'information : des ventes par jour, une charge par heure.

La boucle de retour

C'est ce qui distingue un modèle figé d'un service qui s'améliore.

predict  ->  la réalité arrive  ->  submit_outcomes  ->  refresh  ->  predict

Vous remontez ce qui s'est réellement passé (submit_outcomes), ces vérités s'accumulent, puis refresh les verse aux données-contexte et produit une nouvelle version. performance vous dit ensuite si le modèle fait mieux ou moins bien que ce que l'entraînement annonçait.

Voir La boucle de retour pour la mettre en place.

La mise à jour automatique

À la création, auto_update fait déclencher l'intégration par l'arrivée des vérités, sans que vous ayez à appeler refresh.

python
spavik.train("churn.csv", target="churn", auto_update=True)

Attention à un piège : un appel à submit_outcomes vaut un lot. Avec auto_update, envoyer vos vérités une par une déclenche une intégration par vérité. Groupez-les.

Actif, archivé, supprimé

Un modèle est actif tant qu'il sert des prédictions et compte dans le quota du plan. L'archiver arrête les deux : il garde ses versions, ses prédictions et ses vérités, et le restaurer le remet en service, en reprenant une place. Le supprimer est le seul geste irréversible : les artefacts quittent le moteur et les vérités en attente partent avec eux. Un entraînement qui échoue ne laisse rien derrière lui.

Documentation générée pour partie depuis le contrat OpenAPI.