ML-Produktionssysteme: Wann werden Daten transformiert?

Rohdaten müssen ein Feature-Engineering (transformiert) sein. Wann sollten Sie transformieren? Daten? Im Großen und Ganzen können Sie Feature Engineering bei einer der folgenden die folgenden beiden Zeiträume:

  • Vor dem Trainieren des Modells.
  • Während des Trainings des Modells.

Daten vor dem Training transformieren

Bei diesem Ansatz führen Sie zwei Schritte aus:

  1. Code schreiben oder spezielle Tools verwenden . um Rohdaten zu transformieren.
  2. Speichern Sie die transformierten Daten an einem Ort, an dem das Modell Daten aufnehmen kann, z. B. wie auf der Festplatte.

Vorteile

  • Rohdaten werden vom System nur einmal transformiert.
  • Das System kann das gesamte Dataset analysieren, um das beste Ihre Transformationsstrategie.

Nachteile

Abweichungen zwischen Training und Bereitstellung sind gefährlicher, wenn Ihr System dynamische (online) Inferenz. Auf einem System, das dynamische Inferenz verwendet, kann die Software, die die unterscheidet sich das Rohdaten-Dataset in der Regel von der Software, was zu Abweichungen zwischen Training und Bereitstellung führen kann. Im Gegensatz dazu können Systeme, die statische (Offline-)Inferenzen verwenden, dieselbe Software verwenden.

Daten während des Trainings transformieren

Bei diesem Ansatz ist die Transformation Teil des Modellcodes. Das Modell Rohdaten aufnimmt und transformiert.

Vorteile

  • Wenn Sie die Transformationen ändern, können Sie weiterhin dieselben Rohdatendateien verwenden.
  • Es wird sichergestellt, dass beim Training und bei der Vorhersage dieselben Transformationen angewendet werden.

Nachteile

  • Komplexe Transformationen können die Modelllatenz erhöhen.
  • Transformationen finden für jeden einzelnen Batch statt.

Das Transformieren der Daten pro Batch kann schwierig sein. Angenommen, Sie möchten Verwenden Sie die Normalisierung für Z-Werte. verwendet, um numerische Rohdaten zu transformieren. Normalisierung des Z-Werts erfordert den Mittelwert und Standardabweichung des Merkmals. Transformationen pro Batch bedeuten jedoch, dass Sie nur Zugriff auf ein Batch von Daten und nicht das vollständige Dataset. Wenn die Batches also hat ein Z-Wert von -2,5 in einem Batch nicht dieselbe Bedeutung, als -2,5 in einem anderen Batch. Als Behelfslösung kann Ihr System den Mittelwert und die Standardabweichung vorab berechnen auf das gesamte Dataset anwenden und diese dann als Konstanten im Modell verwenden.