Produkcyjne systemy ML: kiedy przekształcać dane?

Nieprzetworzone dane muszą zostać przetworzone (przekształcone). Kiedy należy przekształcić dane? Ogólnie mówiąc, możesz przeprowadzić inżynierię cech w jednym z tych 2 okresów:

  • Przed wytrenowaniem modelu.
  • Podczas trenowania modelu.

Przekształcanie danych przed trenowaniem

W tym podejściu należy wykonać 2 kroki:

  1. Aby przekształcić dane nieprzetworzone, możesz napisać kod lub użyć specjalistycznych narzędzi.
  2. Przechowuj przekształcone dane w miejscu, w którym model może je pobrać, np. na dysku.

Zalety

  • System przekształca nieprzetworzone dane tylko raz.
  • System może przeanalizować cały zbiór danych, aby określić najlepszą strategię przekształcania.

Wady:

Odchylenie w przypadku treningu i obsługi jest bardziej niebezpieczne, gdy system wykonuje dynamiczną (online) wnioskowanie. W systemie, który korzysta z dynamicznej dedukcji, oprogramowanie, które przekształca nieprzetworzony zbiór danych, zwykle różni się od oprogramowania, które służy do generowania prognoz. Może to powodować rozbieżność między trenowaniem a obsługą. Z drugiej strony systemy, które korzystają z statycznej (offline) analizy, mogą czasami używać tego samego oprogramowania.

Przekształcanie danych podczas trenowania

W przypadku tego podejścia transformacja jest częścią kodu modelu. Model pobiera nieprzetworzone dane i je przekształca.

Zalety

  • Jeśli zmienisz przekształcenia, nadal możesz używać tych samych plików danych nieprzetworzonych.
  • Masz pewność, że podczas trenowania i prognozowania będą zachodzić te same przekształcenia.

Wady:

  • Złożone przekształcenia mogą wydłużać czas oczekiwania na model.
  • Przekształcenia są przeprowadzane w przypadku każdego zbioru.

Przekształcanie danych w ramach partii może być trudne. Załóżmy na przykład, że chcesz użyć normalizacji według wartości znormalizowanej Z-score do przekształcenia nieprzetworzonych danych liczbowych. Normalizacja z-score wymaga średniej i odchylenia standardowego cechy. Jednak przekształcenia na potrzeby wsadów oznaczają, że będziesz mieć dostęp tylko do jednego zbioru danych, a nie do całego zbioru danych. Jeśli więc partie są bardzo zróżnicowane, współczynnik Z-score wynoszący np. –2,5 w jednej partii nie będzie miał tego samego znaczenia co –2,5 w innej partii. Aby tego uniknąć, system może wstępnie obliczyć średnią i odchylenie standardowe w całym zbiorze danych, a następnie użyć ich jako stałych w modelu.