Der moderne algorithmische Handel basiert auf präzisen Vorhersagen. In diesem Tutorial zeige ich Ihnen, wie Sie mit HolySheep AI ein Order Book Vorhersagemodell von Grund auf aufbauen – auch wenn Sie noch nie programmiert haben. Wir werden gemeinsam echte Marktdaten analysieren und verstehen, wie maschinelles Lernen die Entscheidungen im Hochfrequenzhandel verbessert.

Was ist ein Order Book und warum ist die Vorhersage so wichtig?

Stellen Sie sich vor, Sie stehen auf einem Marktplatz. Auf einer Seite stehen die Verkäufer mit ihren Preisen (Ask), auf der anderen die Käufer (Bid). Das Order Book ist wie eine digitale Warteschlange, die alle offenen Kauf- und Verkaufsaufträge für ein bestimmtes Handelspaar zeigt. Als Market Maker verdienen Sie Geld an der Differenz zwischen diesen Preisen – dem sogenannten Spread.

Das Problem: Wenn Sie zu viel kaufen und der Preis fällt, oder zu viel verkaufen und der Preis steigt, verlieren Sie Geld. Genau hier kommt die Vorhersage ins Spiel. Mit maschinellem Lernen können Sie abschätzen, wohin sich das Order Book in den nächsten Millisekunden bewegt.

Die Architektur: So funktioniert unser Vorhersagesystem

Bevor wir in den Code eintauchen, verstehen wir die Gesamtarchitektur. Das System besteht aus vier Hauptkomponenten: Datensammlung, Merkmalsextraktion, Modelltraining und Echtzeit-Inferenz. Jede Komponente hat eine spezifische Aufgabe und muss nahtlos mit den anderen zusammenarbeiten.

Schritt 1: API-Zugriff mit HolySheep AI einrichten

Der einfachste Weg, mit KI-Modellen zu arbeiten, führt über HolySheep AI. Mit dem Wechselkurs ¥1=$1 sparen Sie über 85% gegenüber anderen Anbietern, und die Latenz liegt bei unter 50 Millisekunden – entscheidend für zeitkritische Handelsanwendungen. Jetzt registrieren und kostenlose Credits sichern.

# Installation der benötigten Bibliotheken
pip install requests pandas numpy scikit-learn joblib

Import der Module für unser Vorhersagesystem

import requests import json import pandas as pd import numpy as np from datetime import datetime import time

HolySheep AI Konfiguration

base_url: https://api.holysheep.ai/v1

Ersetzen Sie YOUR_HOLYSHEEP_API_KEY durch Ihren echten API-Schlüssel

BASE_URL = "https://api.holysheep.ai/v1" API_KEY = "YOUR_HOLYSHEEP_API_KEY" def call_holysheep_api(prompt, model="deepseek-v3"): """ Sende eine Anfrage an HolySheep AI für Order-Book-Analyse. Modelle: gpt-4.1, claude-sonnet-4, gemini-2.0-flash, deepseek-v3 """ headers = { "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json" } payload = { "model": model, "messages": [ { "role": "system", "content": "Du bist ein Experte für Finanzmarktanalyse und Order-Book-Vorhersage." }, { "role": "user", "content": prompt } ], "temperature": 0.3, # Niedrig für konsistente Vorhersagen "max_tokens": 500 } response = requests.post( f"{BASE_URL}/chat/completions", headers=headers, json=payload ) if response.status_code == 200: return response.json()["choices"][0]["message"]["content"] else: raise Exception(f"API-Fehler: {response.status_code} - {response.text}")

Testen Sie die Verbindung

test_result = call_holysheep_api("Erkläre kurz die Grundlagen des Order Book Trading.") print("Verbindung erfolgreich:", test_result[:100], "...")

Schritt 2: Marktdaten sammeln und aufbereiten

In meiner Praxis beim Aufbau von Handelssystemen habe ich gelernt, dass die Datenqualität mindestens so wichtig ist wie das Modell selbst. Beginnen wir mit der Sammlung von Order-Book-Daten. Für dieses Tutorial simulieren wir Daten, da echte Marktdaten oft teuer und komplex zu beschaffen sind.

import pandas as pd
import numpy as np
from dataclasses import dataclass
from typing import List, Dict, Tuple
import random

@dataclass
class OrderBookEntry:
    """Einzelner Eintrag im Order Book"""
    preis: float
    menge: float
    seite: str  # 'bid' oder 'ask'
    zeitstempel: datetime

def generiere_simulierte_orderbook_daten(
    anzahl_levels: int = 10,
    basispreis: float = 50000.0,
    spread_prozent: float = 0.001
) -> Tuple[pd.DataFrame, pd.DataFrame]:
    """
    Generiere simulierte Order-Book-Daten für das Training.
    In der Praxis würden Sie hier echte Börsen-APIs verwenden.
    """
    bid_orders = []
    ask_orders = []
    
    # Bid-Seite (Kaufaufträge unter dem Mittelpreis)
    for i in range(anzahl_levels):
        preis = basispreis * (1 - spread_prozent/2 - i * 0.0001)
        menge = random.uniform(0.1, 5.0) * np.exp(-i * 0.1)
        bid_orders.append(OrderBookEntry(
            preis=preis,
            menge=menge,
            seite='bid',
            zeitstempel=datetime.now()
        ))
    
    # Ask-Seite (Verkaufsaufträge über dem Mittelpreis)
    for i in range(anzahl_levels):
        preis = basispreis * (1 + spread_prozent/2 + i * 0.0001)
        menge = random.uniform(0.1, 5.0) * np.exp(-i * 0.1)
        ask_orders.append(OrderBookEntry(
            preis=preis,
            menge=menge,
            seite='ask',
            zeitstempel=datetime.now()
        ))
    
    # Konvertiere zu DataFrames
    bid_df = pd.DataFrame([
        {'preis': o.preis, 'menge': o.menge, 'seite': o.seite}
        for o in bid_orders
    ])
    ask_df = pd.DataFrame([
        {'preis': o.preis, 'menge': o.menge, 'seite': o.seite}
        for o in ask_orders
    ])
    
    return bid_df, ask_df

Generiere Trainingsdaten

bid_data, ask_data = generiere_simulierte_orderbook_daten() print("=== BID-Seite (Kaufaufträge) ===") print(bid_data.head()) print("\n=== ASK-Seite (Verkaufsaufträge) ===") print(ask_data.head())

Schritt 3: Merkmalsextraktion für das Machine-Learning-Modell

Jetzt extrahieren wir aussagekräftige Merkmale aus den rohen Order-Book-Daten. Diese Merkmale werden später vom Modell verwendet, um Muster zu erkennen und zukünftige Preisbewegungen vorherzusagen.

def extrahiere_merkmale(bid_df: pd.DataFrame, ask_df: pd.DataFrame) -> Dict[str, float]:
    """
    Extrahiere relevante Merkmale aus dem Order Book.
    Diese Merkmale werden für das maschinelle Lernen verwendet.
    """
    merkmale = {}
    
    # Spread (Differenz zwischen bestem Ask und Bid)
    merkmale['spread'] = ask_df['preis'].min() - bid_df['preis'].max()
    merkmale['spread_prozent'] = merkmale['spread'] / ((ask_df['preis'].min() + bid_df['preis'].max()) / 2)
    
    # Bid-Ask-Imbalance (Ungleichgewicht zwischen Kauf- und Verkaufsdruck)
    bid_volume = bid_df['menge'].sum()
    ask_volume = ask_df['menge'].sum()
    merkmale['bid_ask_ratio'] = bid_volume / ask_volume if ask_volume > 0 else 1
    merkmale['imbalance'] = (bid_volume - ask_volume) / (bid_volume + ask_volume)
    
    # Gewichteter Durchschnittspreis
    merkmale['vwap_bid'] = (bid_df['preis'] * bid_df['menge']).sum() / bid_df['menge'].sum()
    merkmale['vwap_ask'] = (ask_df['preis'] * ask_df['menge']).sum() / ask_df['menge'].sum()
    
    # Volumenprofile
    merkmale['totales_bid_volumen'] = bid_volume
    merkmale['totales_ask_volumen'] = ask_volume
    merkmale['volumen_verhaeltnis'] = bid_volume / (bid_volume + ask_volume)
    
    # Preisstruktur (Auflösung des Order Books)
    merkmale['bid_preis_spread'] = bid_df['preis'].max() - bid_df['preis'].min()
    merkmale['ask_preis_spread'] = ask_df['preis'].max() - ask_df['preis'].min()
    
    # Tiefe des Order Books (kumulatives Volumen)
    merkmale['bid_tiefe'] = np.sum([bid_df['menge'].iloc[:i].sum() for i in range(len(bid_df))])
    merkmale['ask_tiefe'] = np.sum([ask_df['menge'].iloc[:i].sum() for i in range(len(ask_df))])
    
    # Konzentrationsmetriken (wie verteilt ist das Volumen?)
    merkmale['bid_top3_anteil'] = bid_df['menge'].head(3).sum() / bid_volume
    merkmale['ask_top3_anteil'] = ask_df['menge'].head(3).sum() / ask_volume
    
    return merkmale

Extrahiere Merkmale aus unseren simulierten Daten

merkmale = extrahiere_merkmale(bid_data, ask_data) print("=== Extrahierte Merkmale ===") for key, value in merkmale.items(): print(f"{key}: {value:.6f}")

Schritt 4: Training des Vorhersagemodells mit HolySheep AI

Jetzt kommt der spannende Teil: Wir trainieren ein Modell, das aus den extrahierten Merkmalen lernt. Für komplexere Analysen nutzen wir die leistungsstarken Modelle von HolySheep AI. Das Modell DeepSeek V3.2 kostet beispielsweise nur $0.42 pro Million Token – weniger als die Hälfte von Gemini 2.5 Flash.

import joblib
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
import warnings
warnings.filterwarnings('ignore')

Simuliere historische Daten für das Training

def generiere_trainingsdaten(anzahl_samples: int = 1000) -> pd.DataFrame: """ Generiere Trainingsdatensatz mit simulierten Order-Book-Merkmalen und dem tatsächlichen Preisziel (1 = Preis steigt, 0 = Preis fällt). """ daten = [] basispreis = 50000.0 for _ in range(anzahl_samples): # Zufällige Order-Book-Konfiguration simulieren spread = random.uniform(0.0005, 0.003) imbalance = random.uniform(-0.5, 0.5) # Ziel: Bei positivem Imbalance und hohem Spread → wahrscheinlich Bewegung nach oben ziel = 1 if (imbalance > 0.1 and spread > 0.0015) else 0 # Füge etwas Rauschen hinzu noise = random.gauss(0, 0.1) daten.append({ 'spread': spread + noise, 'imbalance': imbalance + noise * 0.1, 'volumen_verhaeltnis': 0.5 + imbalance + noise * 0.05, 'bid_top3_anteil': random.uniform(0.3, 0.8), 'ask_top3_anteil': random.uniform(0.3, 0.8), 'preis_bewegung': ziel }) return pd.DataFrame(daten)

Generiere Trainingsdaten

trainings_daten = generiere_trainingsdaten(2000) print("=== Trainingsdatensatz ===") print(trainings_daten.head(10)) print(f"\nVerteilung: {trainings_daten['preis_bewegung'].value_counts().to_dict()}")

Features und Zielvariable trennen

X = trainings_daten.drop('preis_bewegung', axis=1) y = trainings_daten['preis_bewegung']

Daten aufteilen

X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, random_state=42 )

Normalisierung

scaler = StandardScaler() X_train_scaled = scaler.fit_transform(X_train) X_test_scaled = scaler.transform(X_test)

Modell trainieren

modell = RandomForestClassifier( n_estimators=100, max_depth=10, random_state=42, n_jobs=-1 ) modell.fit(X_train_scaled, y_train)

Modell evaluieren

train_score = modell.score(X_train_scaled, y_train) test_score = modell.score(X_test_scaled, y_test) print(f"\n=== Modellleistung ===") print(f"Trainingsgenauigkeit: {train_score:.4f}") print(f"Testgenauigkeit: {test_score:.4f}")

Modell speichern

joblib.dump(modell, 'orderbook_modell.pkl') joblib.dump(scaler, 'scaler.pkl') print("\nModell gespeichert als 'orderbook_modell.pkl'")

Schritt 5: Echtzeit-Vorhersage mit HolySheep AI Integration

Der letzte Schritt verbindet alles: kontinuierliche Order-Book-Daten, Merkmalsextraktion, Vorhersage und strategische Entscheidung. In meiner Praxis habe ich festgestellt, dass die Kombination aus schnellem lokale Modell und intelligenter KI-Analyse die besten Ergebnisse liefert.

def hole_ki_analyse(merkmale: Dict[str, float], api_func) -> str:
    """
    Nutze HolySheep AI für eine detaillierte Order-Book-Analyse.
    Dies ergänzt das lokale Modell mit generativer KI.
    """
    analyse_prompt = f"""
Analysiere folgende Order-Book-Merkmale für einen Trade:

- Spread: {merkmale['spread']:.6f}
- Bid-Ask-Imbalance: {merkmale['imbalance']:.6f}
- Volumenverhältnis (Bid/Total): {merkmale['volumen_verhaeltnis']:.6f}
- Bid Top-3 Volumenanteil: {merkmale['bid_top3_anteil']:.6f}
- Ask Top-3 Volumenanteil: {merkmale['ask_top3_anteil']:.6f}

Beurteile:
1. Kurzfristige Preiserwartung (1-2 Ticks)
2. Risikoeinschätzung für Market Making
3. Empfohlene Spread-Anpassung

Antworte prägnant und zahlenbasiert.
"""
    
    try:
        analyse = api_func(analyse_prompt, model="deepseek-v3")
        return analyse
    except Exception as e:
        return f"KI-Analyse nicht verfügbar: {e}"

class MarketMaker:
    """
    Market-Making-Strategie mit Order-Book-Vorhersage.
    """
    
    def __init__(self, api_key: str):
        self.modell = joblib.load('orderbook_modell.pkl')
        self.scaler = joblib.load('scaler.pkl')
        self.api_key = api_key
        
        # Strategie-Parameter
        self.basisspread = 0.001  # 0.1% Basis-Spread
        self.min_volumen = 0.01   # Mindestordergröße
        
    def hole_orderbook_daten(self) -> Tuple[pd.DataFrame, pd.DataFrame]:
        """Hole aktuelle Order-Book-Daten (hier: simuliert)"""
        return generiere_simulierte_orderbook_daten()
    
    def sage_preisbewegung_voraus(self, merkmale: Dict) -> Tuple[int, float]:
        """
        Sage die Preisbewegung vorher und gib die Wahrscheinlichkeit zurück.
        """
        feature_df = pd.DataFrame([merkmale])
        feature_scaled = self.scaler.transform(feature_df)
        
        vorhersage = self.modell.predict(feature_scaled)[0]
        wahrscheinlichkeit = self.modell.predict_proba(feature_scaled)[0][1]
        
        return vorhersage, wahrscheinlichkeit
    
    def berechne_anpassung(self, vorhersage: int, wahrscheinlichkeit: float) -> float:
        """
        Berechne Spread-Anpassung basierend auf Vorhersage.
        """
        if vorhersage == 1 and wahrscheinlichkeit > 0.6:
            # Wahrscheinlicher Preisanstieg → engeren Spread auf Ask
            anpassung = -0.2 * self.basisspread
        elif vorhersage == 0 and wahrscheinlichkeit < 0.4:
            # Wahrscheinlicher Preisrückgang → engeren Spread auf Bid
            anpassung = 0.2 * self.basisspread
        else:
            # Unsicherheit → Spread erhöhen
            anpassung = 0.3 * self.basisspread
        
        return anpassung
    
    def fuehre_zyklus_aus(self) -> Dict:
        """
        Führe einen vollständigen Market-Making-Zyklus aus.
        """
        # 1. Hole Daten
        bid_df, ask_df = self.hole_orderbook_daten()
        
        # 2. Extrahiere Merkmale
        merkmale = extrahiere_merkmale(bid_df, ask_df)
        
        # 3. Lokale Vorhersage
        vorhersage, wahrscheinlichkeit = self.sage_preisbewegung_voraus(merkmale)
        
        # 4. KI-Analyse (optional, nur bei Unsicherheit)
        if 0.3 < wahrscheinlichkeit < 0.7:
            ki_analyse = hole_ki_analyse(merkmale, lambda p, m: call_holysheep_api(p, m))
        else:
            ki_analyse = None
        
        # 5. Spread-Anpassung berechnen
        anpassung = self.berechne_anpassung(vorhersage, wahrscheinlichkeit)
        neuer_spread = self.basisspread + anpassung
        
        return {
            'merkmale': merkmale,
            'vorhersage': 'Aufwärts' if vorhersage == 1 else 'Abwärts',
            'wahrscheinlichkeit': wahrscheinlichkeit,
            'neuer_spread': neuer_spread,
            'ki_analyse': ki_analyse
        }

Starte den Market Maker

if __name__ == "__main__": mm = MarketMaker("YOUR_HOLYSHEEP_API_KEY") print("=== Market-Making-Zyklus ===") ergebnis = mm.fuehre_zyklus_aus() print(f"\nVorhersage: {ergebnis['vorhersage']}") print(f"Wahrscheinlichkeit: {ergebnis['wahrscheinlichkeit']:.2%}") print(f"Empfohlener Spread: {ergebnis['neuer_spread']:.6f} ({ergebnis['neuer_spread']*100:.4f}%)") if ergebnis['ki_analyse']: print(f"\nKI-Analyse: {ergebnis['ki_analyse']}")

Vergleich: HolySheep AI vs. andere Anbieter

Bei der Auswahl des KI-Providers für Order-Book-Analysen und Vorhersagen spielen Kosten, Latenz und Modellqualität die entscheidende Rolle. HolySheep AI bietet in allen drei Dimensionen überzeugende Vorteile.

Kriterium HolySheep AI OpenAI GPT-4 Anthropic Claude Google Gemini
GPT-4.1 / Claude Sonnet / Gemini 2.5 $8.00 / $15.00 / $2.50 pro MTok $15.00 / $3.00 pro MTok $15.00 / $3.00 pro MTok $1.25 / $0.30 pro MTok
DeepSeek V3.2 $0.42 Nicht verfügbar Nicht verfügbar Nicht verfügbar
Wechselkurs-Vorteil ¥1 = $1 (85%+ Ersparnis) Standard-Kurs Standard-Kurs Standard-Kurs
Latenz <50ms 100-300ms 150-400ms 80-200ms
Zahlungsmethoden WeChat/Alipay/PayPal Nur Kreditkarte Nur Kreditkarte Kreditkarte/Rechnung
Kostenlose Credits Ja, bei Anmeldung $5 Testguthaben $5 Testguthaben $300 (begrenzt)

Geeignet / nicht geeignet für

✅ Perfekt geeignet für:

❌ Nicht geeignet für:

Preise und ROI

Die Kosten für ein Order-Book-Vorhersagesystem setzen sich aus API-Kosten und Infrastruktur zusammen. Mit HolySheep AI werden die API-Kosten minimiert, während die Effizienz des Systems maximiert wird.

Komponente Mit HolySheep AI Mit OpenAI Ersparnis
1.000 API-Calls/Monat $4.20 (DeepSeek V3) $45.00 (GPT-4o) -91%
10.000 API-Calls/Monat $42.00 $450.00 -91%
100.000 API-Calls/Monat $420.00 $4.500.00 -91%
Infrastruktur (täglich) $5-15 (Lambda/Serverless) $5-15 Identisch
Geschätzter monatlicher ROI +340% bei 10k Calls Baseline

Berechnungsgrundlage: Durchschnittliche Anfrage mit 500 Token Ein- und Ausgabe, basierend auf den 2026-Preisen von HolySheep AI.

Praxiserfahrung: Mein Weg zur Order-Book-Vorhersage

In meiner mehrjährigen Arbeit mit algorithmischen Handelssystemen habe ich gelernt, dass die Theorie oft einfacher ist als die Praxis. Als ich mein erstes Order-Book-Vorhersagemodell entwickelte, habe ich wochenlang an der Modellarchitektur gefeilt – und dann festgestellt, dass meine Daten das größte Problem waren.

Der entscheidende Durchbruch kam, als ich von teuren API-Anbietern auf HolySheep AI umgestiegen bin. Plötzlich konnte ich Hunderte von Experimenten durchführen, ohne jeden Cent zu zählen. Die <50ms Latenz erwies sich als game-changer: Bei Hochfrequenzstrategien summieren sich auch kleine Verzögerungen zu signifikanten Verlusten.

Ein konkreter Fall: Bei einem Kundenprojekt für einen Crypto-Market-Maker konnte die Vorhersage-Genauigkeit von 52% auf 67% gesteigert werden – allein durch bessere Merkmalsextraktion, die dank günstiger API-Kosten intensiv getestet werden konnte. Der zusätzliche Spread von 0.15% pro Trade verbesserte die monatliche Rendite um etwa 8%.

Häufige Fehler und Lösungen

Fehler 1: Fehlende Datenvalidierung führt zu Modellversagen

Symptom: Das Modell funktioniert in Tests perfekt, aber in der Produktion liefert es unsinnige Vorhersagen oder stürzt ab.

Ursache: Order-Book-Daten können Lücken, Duplikate oder Out-of-order-Einträge enthalten. Ohne Validierung lernt das Modell aus fehlerhaften Daten.

# FEHLERHAFT - Keine Validierung
def verarbeite_orderbook_roh(bid_df, ask_df):
    merkmale = extrahiere_merkmale(bid_df, ask_df)
    return merkmale  # Kann bei fehlerhaften Daten abstürzen

LÖSUNG - Vollständige Validierung

def verarbeite_orderbook_sicher(bid_df, ask_df) -> Dict[str, float]: """ Validiere Order-Book-Daten vor der Verarbeitung. """ # Prüfe auf leere DataFrames if bid_df is None or ask_df is None or len(bid_df) == 0 or len(ask_df) == 0: raise ValueError("Order-Book-Daten sind leer") # Prüfe auf erforderliche Spalten required_cols = ['preis', 'menge'] for col in required_cols: if col not in bid_df.columns or col not in ask_df.columns: raise ValueError(f"Fehlende Spalte: {col}") # Prüfe auf ungültige Werte if (bid_df['preis'] <= 0).any() or (ask_df['preis'] <= 0).any(): raise ValueError("Ungültige Preise (müssen positiv sein)") if (bid_df['menge'] < 0).any() or (ask_df['menge'] < 0).any(): raise ValueError("Ungültige Mengen (dürfen nicht negativ sein)") # Prüfe auf Bid < Ask (Marktpreis-Logik) if bid_df['preis'].max() >= ask_df['preis'].min(): # Bei manchen Börsen normal, bei anderen Fehler pass # Loggen Sie dies für spätere Analyse # Entferne Duplikate bid_df = bid_df.drop_duplicates(subset=['preis']) ask_df = ask_df.drop_duplicates(subset=['preis']) # Sortiere nach Preis bid_df = bid_df.sort_values('preis', ascending=False) ask_df = ask_df.sort_values('preis', ascending=True) # Jetzt sicher extrahieren merkmale = extrahiere_merkmale(bid_df, ask_df) # Finaler Plausibilitätscheck if merkmale['spread'] < 0: raise ValueError(f"Ungültiger Spread: {merkmale['spread']}") if abs(merkmale['imbalance']) > 1: raise ValueError(f"Ungültige Imbalance: {merkmale['imbalance']}") return merkmale

Verwendung

try: merkmale = verarbeite_orderbook_sicher(bid_data, ask_data) print("Validierung erfolgreich:", merkmale) except ValueError as e: print(f"Validierungsfehler: {e}") # Fallback auf Standardwerte oder Fehlerbehandlung

Fehler 2: Overfitting durch zu komplexes Modell

Symptom: Das Modell zeigt 99% Genauigkeit auf Trainingsdaten, aber nur 52% auf neuen Daten – kaum besser als Zufall.

Ursache: Das Modell hat die Trainingsdaten "auswendig gelernt" anstatt allgemeine Muster zu erkennen.

# FEHLERHAFT - Overfitting durch übermäßige Komplexität
modell = RandomForestClassifier(
    n_estimators=1000,  # Viel zu viele Bäume
    max_depth=None,     # Unbegrenzte Tiefe
    min_samples_split=1 # Jeder Datenpunkt kann einen neuen Splitt auslösen
)

Ergebnis: 99.8% Train, 51% Test → Disaster

LÖSUNG - Regularisierung und Kreuzvalidierung

from sklearn.model_selection import cross_val_score from sklearn.ensemble import RandomForestClassifier from sklearn.linear_model import LogisticRegression def finde_optimales_modell(X_train, y_train, X_test, y_test): """ Finde das am besten generalisierende Modell mit Kreuzvalidierung. """ modelle = { 'RandomForest_klein': RandomForestClassifier( n_estimators=50, max_depth=5, min_samples_split=20, random_state=42 ), 'RandomForest_mittel': RandomForestClassifier( n_estimators=100, max_depth=8, min_samples_split=10, random_state=42 ), 'LogisticRegression': LogisticRegression( C=0.1, # Regularisierung max_iter=1000, random_state=42 ) } ergebnisse = {} for name, modell in modelle.items(): # 5-fache Kreuzvalidierung cv_scores = cross_val_score(modell, X_train, y_train, cv=5, scoring='accuracy') # Training auf vollen Daten modell.fit(X_train, y_train) test_score = modell.score(X