# ML Training- und Evaluations-Workflow Dieser Workflow beschreibt den aktuellen Platzhalter für Modell-Metadaten, Evaluation und Serving. Er trainiert in Version 0.1.0 noch kein statistisches Modell. ## 1. Daten sammeln Alle Trainingsvektoren werden über `FeatureStore.add(...)` oder `add_batch(...)` eingepflegt. Jeder Vektor enthält eine Sensor-ID sowie ein Dictionary mit Merkmalen. ## 2. Artefakt-Metadaten erzeugen ```python store = FeatureStore() store.add(FeatureVector(sensor_id="sensor.kitchen", values={"temperature": 21.0})) pipeline = TrainingPipeline(store) artifact = pipeline.run("my_artifact") pipeline.export("my_artifact") ``` `TrainingPipeline.run(...)` erzeugt ein `TrainedArtifact` mit den unterstützten Sensor-IDs. Gewichte, Parameter oder ein echtes Modell werden noch nicht berechnet. ## 3. Modell evaluieren ```python evaluator = Evaluator(pipeline) report = evaluator.evaluate(artifact.artifact_id, predictions) ``` Der Report enthält: - `artifact_id` - `sample_size` - Metriken wie `coverage` und `unknown_rate` mit Default-Schwellenwerten ## 4. Modell registrieren Das trainierte Artefakt kann anschließend über `ModelRegistry.register(artifact)` bereitgestellt werden. Die ML-Serving-API stellt es unter `/ml/predict` und `/ml/batch` zur Verfügung. ## Hinweise - Für reproduzierbare Sensor-Reihenfolgen wird in `TrainingPipeline.run(...)` eine sortierte Sensor-Liste verwendet. - Fehlende Trainingsdaten lösen `ValueError` aus; nicht registrierte Artefakte lösen `KeyError` aus. - `coverage` zählt nur exakte Sensor-Referenzen und bleibt im Bereich 0 bis 1.