Inżynieria cech to proces określania funkcji, które mogą być przydatne podczas trenowania modelu, a następnie tworzenia tych cech przez przekształcanie nieprzetworzonych danych znalezionych w plikach dziennika i innych źródłach. W tej sekcji skupimy się na tym, kiedy i jak należy przekształcać dane liczbowe oraz kategorialne, a także w jaki sposób kompromisy.
Powody transformacji danych
Przekształcamy funkcje przede wszystkim z tych powodów:
Obowiązkowe przekształcenia zapewniające zgodność z danymi. Przykłady:
- Konwertuję funkcje nieliczbowe na liczbowe. Nie można mnożyć ciągów znaków w ciągu, więc musimy przekonwertować ciąg na postać liczbową.
- Zmieniam rozmiar danych wejściowych na stały rozmiar. Modele liniowe i przekazywane sieci neuronowe mają stałą liczbę węzłów wejściowych, więc dane wejściowe muszą zawsze mieć ten sam rozmiar. Na przykład modele obrazów muszą zmieniać rozmiar obrazów w zbiorze danych na stały rozmiar.
Opcjonalne przekształcenia jakościowe, które pomagają poprawić skuteczność modelu. Przykłady:
- Tokenizacja lub małe litery w funkcjach tekstowych.
- Znormalizowane funkcje liczbowe (większość modeli działa później lepiej).
- Umożliwianie wprowadzania modeli nieliniowych do przestrzeni cech.
Mówiąc ściśle, zmiany jakości nie są niezbędne – w takim przypadku model może być nadal używany bez nich. Jednak zastosowanie tych technik umożliwi modelowi uzyskiwanie lepszych wyników.
Gdzie przeprowadzić transformację?
Przekształcenia możesz zastosować podczas generowania danych na dysku lub w modelu.
Przekształcanie przed treningiem
W ramach tej metody przeprowadzamy transformację przed trenowaniem. Ten kod jest oddzielny od Twojego modelu systemów uczących się.
Zalety
- Obliczanie odbywa się tylko raz.
- Przetwarzanie pozwala przeanalizować cały zbiór danych, aby określić przekształcenie.
Wady
- Przekształcenia należy odtworzyć w czasie prognozowania. Uważaj na zniekształcenie?
- Wszelkie zmiany przekształcania wymagają ponownego wygenerowania danych, co prowadzi do wolniejszych iteracji.
W przypadku wyświetlania reklam online zniekształcenie jest bardziej niebezpieczne. W trybie offline możesz użyć kodu, który generuje dane treningowe. W obszarze udostępniania online kod, który tworzy zbiór danych i kod używany do obsługi rzeczywistego ruchu, jest niemal taki sam, co ułatwia wprowadzenie odchylenia.
Przekształcanie w ramach modelu
Podejście takie jest częścią kodu modelu. Model przyjmuje nieprzekształcone dane jako dane wejściowe i przekształca je w modelu.
Zalety
- Łatwe iteracje. Jeśli zmienisz przekształcenia, nadal możesz używać tych samych plików danych.
- Gwarantujesz te same przekształcenia podczas trenowania i prognozowania.
Wady
- Drogie przekształcenia mogą zwiększać opóźnienie modelu.
- Przekształcenia dotyczą każdej grupy.
Istnieje wiele kwestii dotyczących przekształcania na grupę. Załóżmy, że chcesz znormalizować funkcję według jej średniej wartości, czyli zmienić wartości cech na średnią 0
i odchylenie standardowe 1
. Podczas przekształcania w modelu ta normalizacja będzie miała dostęp tylko do jednej grupy danych, a nie do całego zbioru danych. Możesz normalizować wartość według średniej wartości w grupie (niebezpieczna, jeśli grupy są bardzo zróżnicowane) lub obliczyć wartość średnią i poprawić ją jako stałą w modelu.
Normalizację omówimy w następnej sekcji.
Przeglądaj, oczyszczaj i wizualizuj swoje dane
Przeglądaj i czyść dane, zanim wprowadzisz w nich przekształcenia. Podczas zbierania i tworzenia zbioru danych możesz wykonać niektóre z tych zadań:
- Przeanalizuj kilka wierszy danych.
- sprawdzać podstawowe statystyki;
- Napraw brakujące pozycje liczbowe.
Często wizualizuj dane. Wykresy mogą pomóc w wychwyceniu anomalii lub wzorców, których nie da się rozróżnić w statystykach. Zanim przejdziesz do analizy, przeanalizuj dane przedstawione w postaci wykresów punktowych lub histogramów. Możesz wyświetlać wykresy nie tylko na początku potoku, ale także podczas transformacji. Wizualizacje pomogą Ci stale sprawdzać założenia i obserwować efekty istotnych zmian.