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 :
spavik.train("churn.csv", target="churn")Spavik en déduit la nature du problème, qu'il appelle la tâche :
| La cible contient | Tâche | Ce que rend predict |
|---|---|---|
Des catégories (0/1, oui/non, A/B/C) | classification | La classe, plus une probabilité par classe |
| Des nombres continus (un montant, une durée) | regression | Une 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.
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.
predict | forecast | |
|---|---|---|
| Question posée | « Pour cette ligne, quelle valeur ? » | « Pour les 7 prochains jours, quelles valeurs ? » |
| Demande un modèle | oui | non |
| Conserve quelque chose | oui, un modèle réutilisable | non, 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 -> predictVous 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.
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.