Ein Modell ist ein Objekt mit einem Vertrag
Alles in scikit-learn ist ein Estimator, und jeder folgt demselben Vertrag. Man erzeugt ihn mit seinen Einstellungen, den Hyperparametern, etwa der Stärke einer Strafe. Man ruft auf, damit er aus Daten lernt. Was er gelernt hat, steht in Attributen, deren Namen mit einem Unterstrich enden, etwa dem Mittelwert oder den Koeffizienten. Dann nutzt man ihn: Ein Preprozessor bietet , ein Modell bietet . Der Aufruf ist fit gefolgt von transform. Die Tabelle hat eine Zeile je Stichprobe und eine Spalte je Merkmal, ist das Ziel. Weil der Vertrag überall gleich ist, kann man ein Modell gegen ein anderes tauschen und den Rest des Codes behalten.
Die goldene Regel lautet: darf nur Trainingsdaten sehen. Die Zahlen, die ein Preprozessor lernt, etwa und , werden dann unverändert mit auf Validierungs- und Testdaten angewendet. Würde man den Scaler auf allen Tagen anpassen, hätten die Testtage die Skalierung mitgeformt, ein stilles Leck der Zukunft. Einstellungen wie machen Läufe wiederholbar, und baut eine frische, nicht angepasste Kopie eines Estimators, was die Kreuzvalidierung für jede Faltung tut. In den Marktdaten-Labors dieser Fähigkeit sind die Zeilen Aktie-Monat-Paare und die Spalten Merkmale wie Momentum und Volatilität.
- Einstellungen hinein, gelernte Zahlen heraus: Hyperparameter gehen in den Konstruktor, gelernte Zahlen enden mit einem Unterstrich.
- Nur auf Training anpassen: transform und predict nutzen die gelernten Zahlen auf beliebigen Daten.
- Überall derselbe Vertrag: Ein Modelltausch lässt den Rest des Codes unberührt.
Lab: Was bewertet wird
- Was der Scaler lernt: der Mittelwert10 Pkt.
- Was der Scaler lernt: die Streuung10 Pkt.
- Einen Testwert transformieren10 Pkt.
- Was die Regression lernt: die Steigung15 Pkt.
- Eine Vorhersage10 Pkt.
- Welche Attribute gelernt sind10 Pkt.
- Ein sicherer Ablauf10 Pkt.
- Begriffe zuordnen10 Pkt.
- Warum den Scaler nur auf Training anpassen15 Pkt.