Przekształcanie danych kategorii

Niektóre funkcje mogą być odrębnymi wartościami, które nie są ułożone w określonej kolejności. Mogą to być na przykład rasy psów, słów lub kodów pocztowych. Nazywamy je kategorią, a każdą wartością jest kategoria. Wartości kategorialne możesz podawać w postaci ciągów znaków, a nawet liczb, ale nie możesz porównywać tych danych ani od nich od siebie odchodzić.

Często cechy, które zawierają liczby całkowite, powinny mieć postać kategorii, a nie dane liczbowe. Możesz na przykład zastosować funkcję kodu pocztowego, w której wartości są liczbami całkowitymi. Jeśli przez pomyłkę przedstawisz tę funkcję w sposób liczbowy, prosisz model o znalezienie relacji numerycznej między różnymi kodami pocztowymi. Na przykład spodziewasz się, że model określi, że kod pocztowy 20004 jest dwukrotnie (lub połowę) sygnałem jako kodem pocztowym 10002. Reprezentując kody pocztowe jako dane kategorialne, model może znaleźć osobne sygnały dla każdego kodu.

Jeśli liczba kategorii pola danych jest mała, np. dzień tygodnia lub ograniczona liczba kolorów, możesz utworzyć unikalną funkcję dla każdej kategorii. Przykład:

Każdy kolor w palecie jest reprezentowany jako osobna funkcja.
Oznacza to, że każdy kolor jest osobną cechą wektora cech.
Na przykład czerwony to funkcja, pomarańczowa to oddzielna funkcja itd. Rysunek 1. Unikalna funkcja dla każdej kategorii

 

Model może dzięki temu poznać osobną wagę dla każdego koloru. Może na przykład zakładać, że czerwone samochody są droższe niż samochody.

Następnie możesz zindeksować te elementy.

Każdy kolor w palecie odpowiada teraz tej samej funkcji. 
Oznacza to, że kolor jest teraz tylko jedną cechą wektora cech.
Każdy kolor ma unikalną wartość. Na przykład czerwony ma wartość 0, pomarańczowy ma wartość 1 itd. Rysunek 2. Zindeksowane funkcje

 

Ten rodzaj mapowania jest nazywany słowniczkiem.

Słownictwo

W słowniku każda wartość odpowiada unikalnej funkcji.

Index NumberCategory
0Red
1Orange
2Blue
......

Model wyszukuje indeks na podstawie ciągu znaków, przypisując 1,0 do odpowiedniego boksu wektora funkcji, a 0,0 do wszystkich pozostałych boksów w wektorze cech.

Schemat całego procesu do mapowania kategorii w celu przedstawiania wektorów.
Funkcje wejściowe na diagramie dotyczą: żółtego, pomarańczowego, niebieskiego i niebieskiego. System wykorzystuje zapisane słownictwo (kolor czerwony to 0, kolor pomarańczowy – 1, kolor niebieski – 2, żółty itd.), aby zmapować wartość wejściową do identyfikatora. Oznacza to, że system mapuje żółty, pomarańczowy, niebieski, niebieski na 3, 1, 2 i 2. System konwertuje te wartości na wektor funkcji jednochmurowej. Jeśli na przykład system ma 7 możliwych kolorów, 3 staje się 0,0, 0,0, 0,0, 1,0, 0,0,
0,0 i 0,0. Rysunek 3. Kompleksowy proces mapowania kategorii w taki sposób, aby przedstawiał wektory.

Uwaga na temat niewystarczającej reprezentacji

Jeśli kategorie są dni tygodnia, możesz na przykład reprezentować piątek z wektorem funkcji [0, 0, 0, 0, 1, 0, 0]. Większość implementacji systemów uczących się będzie jednak reprezentować ten wektor w pamięci podręcznej. Typowa reprezentacja to lista niepustych wartości oraz odpowiadających im indeksów, np.1,0 dla wartości i [4] dla indeksu. Dzięki temu możesz przeznaczać mniej pamięci na przechowywanie ogromnej liczby 0 s i wydajniej mnożyć macierzy. W kontekście matematyki [4] jest odpowiednikiem [0, 0, 0, 0, 1, 0, 0].

Poza chmurą (OOV)

Dane liczbowe zawierają dane odstające, podobnie jak dane kategorialne. Możesz na przykład użyć zbioru danych z opisami samochodów. Jedną z cech tego zbioru danych może być kolor samochodu. Załóżmy, że popularne kolory samochodów (czarny, biały, szary itd.) są dobrze reprezentowane w zbiorze danych. Każdy z nich pasuje do kategorii, dzięki czemu możesz poznać wpływ tych kolorów na wartość. Załóżmy jednak, że ten zbiór danych zawiera niewielką liczbę samochodów o ekscentrycznych kolorach (jasny, awokado, awokado). Zamiast podawać każdy z tych kolorów w osobnej kategorii, możesz je grupować jako Poza Vocab (OOV). Używając w tym celu spersonalizowanych systemów, nie będziesz tracić czasu na każdy z rzadkich kolorów.

Haszowanie

Możesz też zahaszować każdy ciąg (kategorię) w dostępne miejsce. Haszowanie często powoduje konflikty, ale polega na modelu, który uczy się na podstawie wspólnych reprezentacji kategorii w tym samym indeksie, co w danym przypadku sprawdza się najlepiej.

W przypadku ważnych haseł haszowanie może być gorsze niż wybieranie słowa ze względu na kolizje. Z kolei haszowanie nie wymaga ustawiania słownictwa, co jest dobre, jeśli rozkład funkcji się zmienia w miarę upływu czasu.

Schemat przedstawiający 2 listy słów. Jedna lista składa się z 10 słów. Druga lista pokazuje 10 słów, które są podzielone na 8 zasobników hash. W związku z tym 6 zasobników z haszem zawiera 1 słowo, a 2 z nich zawiera 2 słowa.  Każdy zasobnik skrótu jest określany liczbą od 1 do 8 włącznie. Ilustracja 4. Mapowanie elementów do słownika.

Hybrydowe haszowanie i słowność

Możesz zastosować metodę hybrydową i połączyć haszowanie ze słownikiem. Użyj słownika, aby wskazać najważniejsze kategorie w danych, ale zastąp OOV wieloma zasobnikami OOV i zaszyfruj kategorie do zasobników.

Kategorie w zasobnikach haszowania muszą współużytkować indeks, a model prawdopodobnie nie zapewni dobrych prognoz, ale przygotowaliśmy odpowiednią ilość pamięci, aby nauczyć się kategorii spoza naszego słownika.

Schemat przedstawiający 3 listy słów. Jedna lista zawiera 10 słów. Pozostałe 2 listy są mapowane na 10 słów w zasobniki ze słownikiem i haszami. Oznacza to, że 5 słów przekłada się bezpośrednio na słownictwo, a 5 innych przekłada się na 2 zasobniki skrótu. Jeden zasobnik skrótu zawiera 2 słowa, a drugi zawiera 3 słowa.  Słownictwo zawiera popularne słowa, a zahaszowany zawiera rzadsze słowa. Rysunek 5. Połączenie hybrydowe łączące słownictwo z haszowaniem.

Uwaga na temat umieszczania na stronie

Zwróć uwagę na to, że z tego szkolenia dotyczącego awarii systemów uczących się umieszczanie to funkcja kategoryczna reprezentowana przez funkcję o stałej wartości. Głębokie modele często konwertują indeksy z indeksu na miejsce docelowe.

Schemat przedstawiający kompleksowy proces mapowania kategorii w celu umieszczenia wektorów przez umieszczanie. Tabela umieszczania składa się z numerowanych wierszy. Każdy wiersz składa się z zestawu wartości zmiennoprzecinkowych z zakresu od 0,0 do 1,0. Aby przekonwertować kategorię, system kopiuje odpowiedni wiersz z tabeli osadzania.
Jeśli na przykład kategoria danych wejściowych to 0, system skopiuje pierwszy wiersz tabeli umieszczonych elementów do wektora cech. Jeśli kategoria wejściowa to 1, system kopiuje drugi wiersz tabeli umieszczonych do wektora cech. Rysunek 6. Wektorowe przekształcenia obiektów

Inne omawiane przekształcenia mogą być przechowywane na dysku, ale osadzenia różnią się. Ponieważ elementy osadzone są trenowane, nie są typową transformacją danych, ponieważ są częścią modelu. Są trenowane na innych wagach modelu i funkcjonują tak samo jak warstwa wag.

Co z osadzonymi elementami umieszczonymi na stronie? Wytrenowane osadzenia wciąż są zwykle modyfikowane podczas trenowania, więc nadal są częścią koncepcji modelu.