Icon

F1-alt-fehler

2 - Data Understanding: Einlesen & Typen

3a - Data Prep: Karriere-Features (vor Jahresfilter!)

3b - Data Prep: Round-Offset-Standings (Leakage-Schutz)

3c - Data Prep: Round-Offset-Standings (Leakage-Schutz)

3d - Data Prep: Vorjahres-WM (Feature + Baseline 2)

3e - Data Prep: Pitstop-Effizienz

3f - Data Prep: Alter, Strafwerte, Missing Values

3g - Data Prep: Zeitbasierter Split

4 - Modelling

5 - Evaluation

5 - Baselines K8 - I1

5 - Baselines K8 - I2

5 - Baselines K8 - I3

  • Baseline 1: quali_pos = 1 heißt „dieser Fahrer gewinnt", = 5 heißt „wird Fünfter".

  • Baseline 2: prev_year_champ_pos = 1 heißt „der Vorjahresmeister gewinnt" — und zwar in jedem Rennen der Saison, der Wert ändert sich nie.

6 - Abschlusslisten: Vorhersagen im Klartext gegen die Baselines

F9bpit_ma3_before = fehlend fuerdie ausgeschlossenen Fahrer
Constant Value Column Appender
F9cBeide Gruppen wieder zusammenfuehren
Concatenate
F9fpit_ma3_before in denHauptdatenfluss joinen
Joiner
F10Pitstop-Zeiten mit Fahrer-und Rennbezug verbinden
Joiner
F9d-> pit_ma3_before
Column Renamer
F9eAuf raceId, driverId,pit_ma3_before reduzieren
Column Filter
F13Chronologisch nach date
Sorter
K9pred_rank kleiner gleich 3 -> TOP3(RF 2024)
Rule Engine
F14Schleife je Team und Strecke
Group Loop Start
F11Team- und Streckenbezug ergaenzen
Joiner
K9pred_rank kleiner gleich 3 -> TOP3(XGBoost 2024)
Rule Engine
L0bdrivers.csv auf driverId + surname(Fahrername)
Column Filter
F12Mittlere Standzeit je Team,Strecke und Rennen
GroupBy
K10positionOrder -> true_top3Vergleichsspalte (RF 2024)
Rule Engine
L0araces.csv auf raceId + name(Grand-Prix-Bezeichnung)
Column Filter
L2 (2025)Grand-Prix-Name anfuegen
Joiner
K10positionOrder -> true_top3Vergleichsspalte (XGBoost 2024)
Rule Engine
L1 (2025)RF- und XGBoost-Rangin einer Tabelle vereinen
Joiner
L4 (2025)Spalten sprechend benennen
Column Renamer
L3 (2025)Fahrername anfuegen
Joiner
L6 (2025)Nach Rennen und Zielposition sortieren
Sorter
L5 (2025)Auf die 8 Vergleichsspalten reduzieren
Column Filter
L8 (2025)Nur die tatsaechlichen Sieger
Row Filter
L7 (2025)ABSCHLUSSLISTE: alle Fahrer,beide Modelle, beide Baselines
Table View
F14cUm 1 Rennen verzoegernLEAKAGE-SCHUTZ
Lag Column
F15-> pit_circuit_hist
Column Renamer
K10positionOrder -> true_top3Vergleichsspalte (RF 2025)
Rule Engine
F14bKumulierter Streckenmittelwertdes Teams
Moving Aggregator
K9pred_rank kleiner gleich 3 -> TOP3(RF 2025)
Rule Engine
F16pit_circuit_hist in denHauptdatenfluss joinen
Joiner
K10positionOrder -> true_top3Vergleichsspalte (XGBoost 2025)
Rule Engine
G1Geburtsdatum (dob)je Fahrer anfuegen
Joiner
K9pred_rank kleiner gleich 3 -> TOP3(XGBoost 2025)
Rule Engine
F15bSchleife schliessen
Loop End
K10positionOrder -> true_top3Vergleichsspalte (RF 2026)
Rule Engine
F15cAuf Schluessel undpit_circuit_hist reduzieren
Column Filter
K9pred_rank kleiner gleich 3 -> TOP3(RF 2026)
Rule Engine
G3age_days / 365,25 = age(Fahreralter in Jahren)
Math Formula
K10positionOrder -> true_top3Vergleichsspalte (XGBoost 2026)
Rule Engine
L9 (2025)SIEGER-SICHT: Was sagten dieVerfahren ueber den echten Sieger?
Table View
K9pred_rank kleiner gleich 3 -> TOP3(XGBoost 2026)
Rule Engine
G2Renndatum minus dob = age_daysKORRIGIERT: stand vorher aufdob minus dob (Ergebnis immer 0)
Date&Time Difference
K13BASELINE 1 als Klassequali_pos kleiner gleich 3 -> TOP3 (2024)
Rule Engine
L2 (2026)Grand-Prix-Name anfuegen
Joiner
G1bdob von String zu Datum
String to Date&Time
K12Korrelationsanalyse auf Traininggrid und quali_pos korrelierenam staerksten mit positionOrder
Linear Correlation
L1 (2026)RF- und XGBoost-Rangin einer Tabelle vereinen
Joiner
L4 (2026)Spalten sprechend benennen
Column Renamer
L3 (2026)Fahrername anfuegen
Joiner
L6 (2026)Nach Rennen und Zielposition sortieren
Sorter
L5 (2026)Auf die 8 Vergleichsspalten reduzieren
Column Filter
L8 (2026)Nur die tatsaechlichen Sieger
Row Filter
A1races.csv einlesen
CSV Reader
L7 (2026)ABSCHLUSSLISTE: alle Fahrer,beide Modelle, beide Baselines
Table View
A2results.csv einlesen
CSV Reader
A3qualifying.csv einlesen
CSV Reader
L9 (2026)SIEGER-SICHT: Was sagten dieVerfahren ueber den echten Sieger?
Table View
A4driver_standings.csv einlesen
CSV Reader
A5constructor_standings.csv einlesen
CSV Reader
A6pit_stops.csv einlesen
CSV Reader
A7drivers.csv einlesen
CSV Reader
K15Kappa Baseline 1, Val 2024REPARIERT: verglich vorherZahl mit Text (0 Treffer)
Scorer
K15Kappa Baseline 1, Test 2025REPARIERT: verglich vorherTop-3-Klasse mit age_days
Scorer
K13BASELINE 1 als Klassequali_pos kleiner gleich 3 -> TOP3 (2025)
Rule Engine
E4bposition von String zu Integer
String Manipulation
K15Kappa Baseline 2, Val 2024REPARIERT: verglich vorherTop-3-Klasse mit age_days
Scorer
E5year + 1: Endstand wirdMerkmal der Folgesaison
Math Formula
K13BASELINE 2 als Klasseprev_year_champ_pos -> TOP3 (2024)
Rule Engine
E3bSpalten des Endstands umbenennen
Column Renamer
K15Kappa Baseline 2, Test 2025REPARIERT: verglich vorherTop-3-Klasse mit age_days
Scorer
E4Auf year, driverId, position reduzieren
Column Filter
K13BASELINE 2 als Klasseprev_year_champ_pos -> TOP3 (2025)
Rule Engine
F1milliseconds zu Zahl (Missing ok:Pitstop ist nicht in jedemRennen Pflicht)
String to Number
K1Nach raceId und Vorhersagewertsortieren (XGBoost 2024)
Sorter
F5e NEUNach driverId und date sortierenLEAKAGE-SCHUTZ: das 3er-Fensterbraucht eine feste Reihenfolge
Sorter
F2Standzeiten ueber 60.000 ms verwerfen(Rotphase, Reparatur, Strafe -kein Signal fuer die Crew)
Row Filter
E6-> prev_year_champ_pos(zugleich Baseline 2)
Column Renamer
K2Rang je Rennen = pred_rank(XGBoost 2024)
Rank
E7prev_year_champ_pos in denHauptdatenfluss joinen
Joiner
K1Nach raceId und Vorhersagewertsortieren (XGBoost 2025)
Sorter
K14 NEUpositionOrder -> true_top3Vergleichsspalte Baseline 1 (2024)
Rule Engine
K2Rang je Rennen = pred_rank(XGBoost 2025)
Rank
K3MAE und R2 (XGBoost 2024)MAE 2,835 / R2 0,523
Numeric Scorer
F3Mittlere Standzeitje Fahrer und Rennen
GroupBy
K1Nach raceId und Vorhersagewertsortieren (RF 2024)
Sorter
F3b-> pit_ms_race
Column Renamer
K3MAE und R2 (XGBoost 2025)MAE 2,960 / R2 0,459
Numeric Scorer
K2Rang je Rennen = pred_rank(RF 2024)
Rank
K3MAE und R2 (RF 2024)MAE 2,956 / R2 0,499
Numeric Scorer
K1Nach raceId und Vorhersagewertsortieren (RF 2025)
Sorter
K14 NEUpositionOrder -> true_top3Vergleichsspalte Baseline 2 (2024)
Rule Engine
F4Pitstop-Mittel an dieRenntabelle anfuegen
Joiner
K14 NEUpositionOrder -> true_top3Vergleichsspalte Baseline 1 (2025)
Rule Engine
K14 NEUpositionOrder -> true_top3Vergleichsspalte Baseline 2 (2025)
Rule Engine
F7Gleitender Mittelwertueber die letzten 3 Rennen
Moving Aggregator
F8Um 1 Rennen verzoegernLEAKAGE-SCHUTZ: das aktuelleRennen fliesst nicht ein
Lag Column
F5Chronologisch nach date(speist nur die Zaehlung F5b)
Sorter
F6Schleife je driverIdfuer die Pitstop-Form
Group Loop Start
A8races auf raceId, year,round, circuitId, date
Column Filter
F5cAnzahl an die Pitstop-Daten anfuegen
Joiner
K2Rang je Rennen = pred_rank(RF 2025)
Rank
A9results auf raceId, driverId,constructorId, grid, points,positionOrder (= Zielvariable)
Column Filter
F5dNur Fahrer mit mehr als 3Pitstop-Rennen in die Schleife(sonst bricht sie ab)
Row Splitter
K3MAE und R2 (RF 2025)MAE 3,286 / R2 0,355
Numeric Scorer
F9Schleife schliessen
Loop End
F5bAnzahl Pitstop-Rennenje Fahrer zaehlen
GroupBy
K4-K7Trefferquoten Top-3 und Top-10(XGBoost 2024)
K4-K7
K4-K7Trefferquoten Top-3 und Top-10(RF 2025)
K4-K7
K4-K7Trefferquoten Top-3 und Top-10(XGBoost 2025)
K4-K7
B2Laufende Nummer je Fahrer= bereits absolvierte Rennen
Rank
B3rank - 1= career_races_before
Math Formula
B4Schleife je driverIdfuer kumulierte Karrierepunkte
Group Loop Start
K4-K7Trefferquoten Top-3 und Top-10(RF 2024)
K4-K7
B7Sum(points) - points= career_points_before(aktuelles Rennen abgezogen)
Math Formula
K8BASELINE 1 quali_pos als Prognose2026
Numeric Scorer
C1Auf V6-Hybrid-Aera ab 2014 eingrenzen(Karriere-Features wurdenbewusst vorher berechnet)
Row Filter
K8BASELINE 1 quali_pos als PrognoseValidierung 2024: MAE 2,856
Numeric Scorer
B5Kumulierte Punktsummeueber die gesamte Karriere
Moving Aggregator
K8BASELINE 2 Vorjahres-WM als PrognoseValidierung 2024: MAE 4,242
Numeric Scorer
B6Schleife schliessen
Loop End
D1Zweite Kopie der races-Tabellefuer den Round-Offset
Column Filter
K8BASELINE 1 quali_pos als PrognoseKontrolle auf Training
Numeric Scorer
D2round + 1LEAKAGE-SCHUTZ: verschiebt dieTabelle um genau ein Rennen
Math Formula
K8BASELINE 2 Vorjahres-WM als Prognose2026
Numeric Scorer
C2Qualifying anfuegen (Left Join,damit Fahrer ohne Quali bleiben)
Joiner
K8BASELINE 1 quali_pos als PrognoseTest 2025: MAE 3,317
Numeric Scorer
C3position -> quali_pos
Column Renamer
K8BASELINE 2 Vorjahres-WM als PrognoseKontrolle auf Training
Numeric Scorer
K8BASELINE 2 Vorjahres-WM als PrognoseTest 2025: MAE 5,050
Numeric Scorer
D4prev_raceId je Rennen zuordnen(Left Join: Saisonauftakthat kein Vorrennen)
Joiner
D5Fahrer-WM-Stand NACH demVorrennen anbinden
Joiner
J2RF anwenden auf 2026
Random Forest Predictor (Regression)
D3raceId -> prev_raceId
Column Renamer
J4XGBoost anwenden auf 2026
XGBoost Predictor (Regression)
D8-> con_pts_before,con_std_pos_before
Column Renamer
K3MAE und R2 (XGBoost 2026)
Numeric Scorer
D9drv_pts_before / (con_pts_before + 1)= drv_share_of_con_pts(Fahreranteil am Teamergebnis)
Math Formula
K1Nach raceId und Vorhersagewertsortieren (XGBoost 2026)
Sorter
D6-> drv_pts_before,drv_std_pos_before, drv_wins_before
Column Renamer
K4-K7Trefferquoten Top-3 und Top-10(XGBoost 2026)
K4-K7
D7Team-WM-Stand NACH demVorrennen anbinden
Joiner
K2Rang je Rennen = pred_rank(XGBoost 2026)
Rank
E3Endstand der Saison herausziehen
Joiner
K3MAE und R2 (RF 2026)
Numeric Scorer
K1Nach raceId und Vorhersagewertsortieren (RF 2026)
Sorter
E1driver_standings + racesfuer die Saisonzuordnung
Joiner
K4-K7Trefferquoten Top-3 und Top-10(RF 2026)
K4-K7
E2Letztes Rennen je Saisonbestimmen (max round)
GroupBy
K2Rang je Rennen = pred_rank(RF 2026)
Rank
I1TRAINING: year kleiner gleich 2023(4.147 Zeilen)
Row Splitter
I2VALIDIERUNG: year = 2024(479 Zeilen)
Row Splitter
H1grid = 0 oder fehlend -> 24(Boxengassenstart ist schlechterals jeder regulaere Startplatz)
Rule Engine
H2Strafwerte je Spalte: quali_pos 21,Punkte und Siege 0, WM-Positionen 21,Pitstop-Merkmale Median
Missing Value
I2vValidierung 2024 ansehen
Table View
K11Konfusionsmatrix + Cohens KappaXGBoost 2024: Kappa 0,51
Scorer
I1vTraining 2014-2023 ansehen
Table View
I3TEST: year = 2025 (479 Zeilen)Rest-Ausgang = 2026 (198 Zeilen)
Row Splitter
K11Konfusionsmatrix + Cohens KappaRF 2025: Kappa 0,71
Scorer
K11Konfusionsmatrix + Cohens KappaRF 2024: Kappa 0,49
Scorer
K11Konfusionsmatrix + Cohens KappaRF 2026: Kappa 0,66
Scorer
K11Konfusionsmatrix + Cohens KappaXGBoost 2025: Kappa 0,74
Scorer
I3vTest 2025 ansehen
Table View
I4vSonderfall 2026:laufende Saison ansehen
Table View
K11Konfusionsmatrix + Cohens KappaXGBoost 2026: Kappa 0,53
Scorer
J1RANDOM FOREST lernen300 Baeume, Tiefe 8, Seed 123Ziel positionOrder, 14 Merkmale
Random Forest Learner (Regression)
J3XGBOOST lernen300 Runden, eta 0,03, Tiefe 3,Seed 123, Ziel positionOrder
XGBoost Tree Ensemble Learner (Regression)
J4XGBoost anwenden auf Validierung 2024
XGBoost Predictor (Regression)
A10qualifying aufraceId, driverId, position
Column Filter
J2RF anwenden auf Test 2025
Random Forest Predictor (Regression)
J2RF anwenden auf Validierung 2024
Random Forest Predictor (Regression)
A13pit_stops aufraceId, driverId, milliseconds
Column Filter
A14drivers auf driverId, dob
Column Filter
A11driver_standings auf raceId,driverId, points, position, wins
Column Filter
J4XGBoost anwenden auf Test 2025
XGBoost Predictor (Regression)
A12constructor_standings auf raceId,constructorId, points, position
Column Filter
A16results + races ueber raceId= Basistabelle je Fahrer und Rennen
Joiner
B1Chronologisch sortierennach date, dann raceId
Sorter
A15grid von String zu Integer(Missing sind als Backslash-N kodiert)
String Manipulation

Nodes

Extensions

  • No modules found

Links