Koder etykiet a jeden gorący enkoder w uczeniu maszynowym [2022]

Opublikowany: 2021-01-04

Modele uczenia maszynowego wdrożone w wielu aplikacjach często wymagają szeregu konwersji od danych kategorycznych lub ognisk tekstowych do opisu liczbowego. Aby spełnić wymagania konwersji, stosowane są dwa rodzaje koderów, mianowicie kodery etykietowe i jeden koder gorący .

Trudne jest to, kiedy wybrać koder etykiet , a kiedy wybrać jeden gorący koder . Wybór decyzji ma wpływ na model, a także stanowi podstawę wielu pytań zadawanych zwykle naukowcom danych i entuzjastom uczenia maszynowego.

Wybór kodowania ma duży wpływ na iloraz dokładności modelu, a tym samym może prowadzić do zoptymalizowanego rozwiązania. Aby zrozumieć różnicę, jaką spowoduje to w modelach, musimy zrozumieć kodery etykiet i jeden koder gorący .

Dzięki grafowi wiedzy w Sztucznej Inteligencji i Uczeniu Maszynowym jednym z aspektów, który większość z nas rozpozna, jest to, że większość algorytmów rozsądnie wykorzystuje dane liczbowe. W związku z tym głównym wyzwaniem, przed jakim staje analityk, jest przekształcenie danych tekstowych w dane liczbowe, a mimo to zmuszenie modelu do sformułowania z tego punktu.

Spis treści

Koder etykiet

Kodowanie etykiet polega na transmogryfikacji etykiet do postaci numerycznej, aby zmienić je w postać, którą może odczytać maszyna. Algorytmy uczenia maszynowego mogą następnie prawidłowo określić, w jaki sposób należy zarządzać tymi etykietami. Jest to kluczowy środek przetwarzania wstępnego podczas zintegrowanego zbioru danych w nadzorowanym uczeniu się.

Na przykład mamy zestaw danych, który zawiera porównanie określonej jakości w określonej umiejętności w formie doskonałego porównania między rodzeństwem. Zestaw danych jest dobry, lepszy, najlepszy. Po zastosowaniu kodera etykiet każda jakość otrzyma odpowiednio etykietę 0,1,2. Etykieta dla dobrej jakości to 0, dla lepszej etykieta to 1, a dla najlepszej jakości etykieta to 2.

Wspomniany powyżej przykład był podstawowy pod względem zbioru danych. Konwersja może dotyczyć dowolnego zestawu danych, niezależnie od tego, czy chodzi o wzrost, wiek, kolor oczu, typ tęczówki, objawy itp.

Kodowanie etykiet w Pythonie można zaimplementować za pomocą biblioteki Sklearn. Sklearn dostarcza bardzo skuteczną metodę kodowania kategorii cech kategorycznych w wartości liczbowe. Koder etykiet koduje etykiety z kredytem od 0 do n-1 klas, gdzie n to liczba różnych etykiet. Jeśli etykieta się powtarza, wyznacza dokładną zasługę zgodnie z wcześniejszym wyznaczeniem.

Aby odnowić tego typu kategoryczne dane tekstowe w dane, które można zrozumieć za pomocą danych liczbowych modelu, używamy klasy Label Encoder. Musimy zakodować etykietę początkową kolumnę, zaimportować klasę LabelEncoder z biblioteki sklearn, wyposażyć i przerobić początkową sekcję danych, a następnie zrehabilitować występujące dane tekstowe za pomocą świeżo zakodowanych danych.

To jest krótki opis kodowania etykiet. Zależnie od danych, kodowanie etykiet inicjuje nowy dylemat. Dla ilustracji, zakodowaliśmy kilka nazw królestw w danych liczbowych. Są to całkowicie kategoryczne dane i nie ma żadnego związku między wierszami.

Aby rozwiązać tę przeszkodę, istnieje potrzeba przyjęcia nowej techniki kodowania. Dylemat polega na tym, że ponieważ w podobnej sekcji jest kilka wielkości, prototyp błędnie oceni, czy dane są w tej samej kolejności, 0 < 1 < 2. Ale to wcale nie jest problem. Aby złagodzić tę trudność, stosujemy jeden gorący koder.

Musisz przeczytać: Pomysły na projekty uczenia maszynowego

Jeden gorący enkoder

Kodowanie One-Hot to kolejny ważny protokół do radzenia sobie ze zmiennymi kategorialnymi. Ustanawia wyłącznie następujące cechy ustalone na podstawie wolumenu odrębnych wartości w cesze kategorycznej. Całe odrębne wartości w klasyfikacji zostaną powiększone jako zarys. Jedno kodowanie na gorąco zajmuje sekcję, która zawiera dane kategoryczne, która ma zakodowaną istniejącą etykietę, a następnie dzieli ją na wiele sekcji. Woluminy są przebudowywane o jedynki i zera, licząc, która sekcja ma jaką wartość.

Enkoder „one-hot” nie akceptuje tablic 1-D. Dane wejściowe powinny zawsze być tablicą 2D.

Dane zatwierdzone do kodera nie powinny zawierać ciągów.

Znaczna część dominujących algorytmów uczenia maszynowego nie może być przeznaczona do danych kategorycznych. Raczej dane kategoryczne wymagają modyfikacji do danych liczbowych. Jedną ze strategii wykorzystywanych do przeprowadzania tej konwersji jest kodowanie na gorąco. Technika ta jest wykorzystywana przede wszystkim tam, gdzie metody uczenia głębokiego mają korelować z sekwencyjnymi problemami sukcesji.

Kodowanie w trybie „one-hot” jest praktycznie manifestacją zmiennych kategorycznych jako wektorów binarnych. Wartości kategoryczne są początkowo mapowane na wartości całkowite. Każda wartość całkowita jest zilustrowana jako wektor binarny, który zawiera same zera.

Ale co się stanie, jeśli będziemy musieli obsłużyć wiele plików?

Scikit-learn jest podatny na układ sekcji, więc jeśli zestaw danych treningowych i zestawy danych testowych zawierają sprzeczności, wyniki będą absurdalne. Może się to zdarzyć, jeśli kategoria zawiera kilka liczb wartości w danych uczących w porównaniu z danymi testowymi.

Upewnij się, że dane testowe są zakodowane w identyczny sposób jak dane treningowe za pomocą polecenia align. Polecenie align daje pewność, że sekcje pojawiają się dokładnie w dekrecie w obu zestawach danych.

Przeczytaj: Modele uczenia maszynowego

Wniosek

Kula ziemska jest zapchana kategorycznymi danymi. Analityk będzie o wiele bardziej korzystnym naukowcem zajmującym się danymi, jeśli będziesz wiedział, jak z tych danych korzystać. Dlatego każdy, kto chce pracować na takich modelach, musi być dobrze zaznajomiony z wykorzystaniem kodera etykiet i jednego gorącego kodera w uczeniu maszynowym.

Jeśli chcesz dowiedzieć się więcej o uczeniu maszynowym, sprawdź dyplom PG IIIT-B i upGrad w uczeniu maszynowym i sztucznej inteligencji, który jest przeznaczony dla pracujących profesjonalistów i oferuje ponad 450 godzin rygorystycznego szkolenia, ponad 30 studiów przypadków i zadań, IIIT- Status absolwenta B, ponad 5 praktycznych, praktycznych projektów zwieńczenia i pomoc w pracy z najlepszymi firmami.

Które algorytmy wymagają użycia jednego gorącego kodowania?

Jeden gorący proces kodowania jest używany do radzenia sobie ze zmiennymi kategorialnymi. Ten proces konwertuje zmienne kategorialne, aby ułatwić algorytmom uczenia maszynowego używanie zmiennych w celu lepszego przewidywania. Algorytmy, które jako dane wejściowe przyjmują tylko wartości liczbowe, wymagają tylko jednego procesu kodowania na gorąco w celu przekonwertowania zmiennych kategorialnych. Niektóre z tych algorytmów uczenia maszynowego to regresja logistyczna, regresja liniowa, maszyna wektora nośnego itp. Jednak niektóre algorytmy, takie jak łańcuch Markowa, naiwny Bayes itp., nie wymagają kodowania, ponieważ są w stanie poradzić sobie ze wspólnymi rozkładami dyskretnymi.

Kiedy preferowane jest używanie jednego gorącego kodowania w głębokim uczeniu?

One Hot Encoding to zaawansowane podejście do transformacji i wstępnego przetwarzania danych, które pomaga modelom ML zrozumieć dostarczone dane. Zasadniczo jedno kodowanie na gorąco jest używane, gdy algorytm ML nie jest w stanie pracować ze zmiennymi kategorialnymi, a zatem jedno kodowanie na gorąco konwertuje je do odpowiedniej postaci. Użycie jednego gorącego kodowania jest najkorzystniejsze, gdy cechy zmiennych kategorycznych, które mają zostać przekonwertowane, nie są porządkowe. Ponadto jedno kodowanie na gorąco działa skutecznie, gdy liczba cech kategorycznych obecnych w danym zestawie danych jest bardzo mniejsza.

Co należy rozumieć przez określenie pułapka atrapa zmiennej?

Pułapka ze zmienną fikcyjną jest jednym z problemów, z jakimi boryka się proces kodowania na gorąco. Dzieje się tak, gdy kategorialny zestaw danych zawiera silnie powiązane zmienne. W konsekwencji wynik jednej zmiennej można łatwo przewidzieć przy użyciu pozostałych zmiennych, gdy stosowana jest jedna procedura gorącego kodowania. W wyniku Pułapki Dummy Variable pojawia się kolejny problem znany jako wielokolinearność.