Do tej pory mogliśmy dawać Ci wrażenie, że model działa bezpośrednio na wierszach zbioru danych. W rzeczywistości jednak modele przetwarzają dane w trochę inny sposób.
Załóżmy na przykład, że zbiór danych zawiera 5 kolumn, ale tylko 2 z nich (b
i d
) są w tym modelu funkcjami. Czy podczas przetwarzania przykładu w wierszu 3 model po prostu pobiera zawartość dwóch wyróżnionych komórek (3b i 3d) w ten sposób?
Model przetwarza tablicę wartości zmiennoprzecinkowych, zwaną wektorem cech. Wektor cech możesz sobie wyobrazić jako wartości zmiennoprzecinkowe tworzące jeden przykład.
Wektory cech rzadko jednak korzystają z wartości surowych zbioru danych. Zamiast tego zwykle trzeba przetworzyć wartości zbioru danych na reprezentacje, z których model może lepiej się uczyć. Bardziej realistyczny wektor cech może wyglądać tak:
Czy model nie będzie lepiej prognozować, jeśli trenuje się na podstawie rzeczywistych wartości w zbiorze danych, a nie na podstawie wartości zmienionych? Odpowiedź brzmi: nie.
Musisz określić najlepszy sposób przedstawiania wartości nieprzetworzonych zbiorów danych jako wartości do trenowania we wektorze cech. Taki proces nazywa się inżynierią cech i jest kluczowym elementem uczenia maszynowego. Najczęstsze techniki inżynierii cech to:
- Normalizacja: konwertowanie wartości liczbowych na zakres standardowy.
- Binning (zwane też bucketingiem): konwertowanie wartości liczbowych na zbiory zakresów.
W tej jednostce omawiamy normalizację i binowanie. W następnej lekcji Praca z danymi kategorialnymi omawiamy inne formy wstępnego przetwarzania, np. konwersję danych nieliczbowych, takich jak ciągi znaków, na wartości zmiennoprzecinkowe.
Każda wartość w wektorze cech musi być wartością zmiennoprzecinkową. Jednak wiele funkcji to w istocie ciągi znaków lub inne wartości niebędące liczbami. W związku z tym większość procesów inżynierii cech polega na przedstawianiu wartości nienumerycznych jako wartości numerycznych. W kolejnych modułach będziesz to często robić.