Do tej pory mieliśmy wrażenie, że model działa bezpośrednio na wiersze zbioru danych; ale modele przetwarzają dane w nieco inny sposób.
Załóżmy na przykład, że zbiór danych zawiera pięć kolumn, z których tylko dwie
kolumny (b
i d
) to cechy modelu. Podczas przetwarzania
przykład w wierszu 3, czy model po prostu pobiera zawartość
zaznaczono dwie komórki (3b i 3d) w następujący sposób?
W rzeczywistości model pozyskuje tablicę wartości zmiennoprzecinkowych o nazwie wektor cech. Możesz myśleć, wektora cech jako wartości zmiennoprzecinkowe stanowiące 1 przykład.
Jednak wektory cech rzadko korzystają z nieprzetworzonych wartości zbioru danych. Zamiast tego musisz zwykle przetworzyć wartości zbioru danych na reprezentacje których model może się lepiej uczyć. Bardziej realistyczne wektor cech może wyglądać mniej więcej tak:
Czy model nie wygenerowałby lepszych prognoz przez trenowanie na podstawie faktyczne wartości w zbiorze danych niż wartości z zmienionych wartości? Co zaskakujące, odpowiedź brzmi: nie.
Musisz określić najlepszy sposób reprezentowania nieprzetworzonych wartości zbioru danych jako możliwego do trenowania w wektorze cech. Ten proces nazywa się inżynieria cech, To istotna część systemów uczących się. Najczęstsze techniki inżynierii cech to:
- Normalizacja: konwertowanie do standardowego zakresu.
- Binning (nazywany też bucketing): konwertowanie wartości liczbowych w zasobnikach zakresów.
W tym przewodniku omawiamy normalizację i łączenie. Kolejna część, Korzystanie z danych kategorialnych obejmuje inne formy wstępnego przetwarzania, takich jak konwertowania danych nieliczbowych, takich jak ciągi znaków, na wartości zmiennoprzecinkowe.
Każda wartość w wektorze cech musi być wartością zmiennoprzecinkową. Jednak wielu z nich funkcje są naturalnymi ciągami znaków lub innymi wartościami nieliczbowymi. W związku z tym znaczna część inżynierii cech jest przedstawiana jako wartości nieliczbowe jako wartości liczbowe. W kolejnych modułach przedstawimy wiele tego rodzaju zmian.