Przygotowanie danych do uczenia maszynowego: przewodnik krok po kroku
Opublikowany: 2023-07-07Wiele lat temu, kiedy Spotify pracował nad swoim silnikiem rekomendacji, stanął przed wyzwaniami związanymi z jakością danych wykorzystywanych do trenowania algorytmów uczenia maszynowego (ML). Gdyby nie zdecydowali się wrócić do etapu przygotowania danych i zainwestować dodatkowego wysiłku w oczyszczenie, normalizację i transformację swoich danych, prawdopodobnie nasze wrażenia słuchowe nie byłyby tak przyjemne.
Dokładne przygotowanie danych do ML pozwoliło platformie streamingowej wyszkolić potężny silnik ML, który dokładnie przewiduje preferencje słuchania użytkowników i oferuje wysoce spersonalizowane rekomendacje muzyczne. Spotify uniknął kluczowego błędu popełnianego przez firmy, jeśli chodzi o przygotowywanie danych do ML — nie inwestowania wystarczającego wysiłku lub pomijania etapu.
Wiele firm zakłada, że wprowadzenie dużych ilości danych do silnika ML wystarczy do wygenerowania dokładnych prognoz. Prawda jest taka, że może to spowodować szereg problemów, na przykład stronniczość algorytmu lub ograniczoną skalowalność.
Sukces ML zależy w dużej mierze od danych. A smutne jest to, że wszystkie zestawy danych są błędne. Dlatego przygotowanie danych jest kluczowe dla ML. Pomaga wykluczyć nieścisłości i stronniczość nieodłącznie związane z surowymi danymi, dzięki czemu wynikowy model ML generuje bardziej wiarygodne i dokładne prognozy.
W tym poście na blogu podkreślamy znaczenie przygotowania danych do uczenia maszynowego i dzielimy się naszym podejściem do gromadzenia, czyszczenia i przekształcania danych. Tak więc, jeśli jesteś nowy w ML i chcesz mieć pewność, że Twoja inicjatywa zakończy się sukcesem, czytaj dalej.
Jak przygotować dane do uczenia maszynowego
Pierwszym krokiem w kierunku pomyślnego przyjęcia ML jest jasne sformułowanie problemu biznesowego. Nie tylko gwarantuje, że tworzony model ML jest zgodny z potrzebami biznesowymi, ale także pozwala zaoszczędzić czas i pieniądze na przygotowywaniu danych, które mogą nie być istotne.
Ponadto jasne sformułowanie problemu sprawia, że model ML jest zrozumiały (co oznacza, że użytkownicy rozumieją, w jaki sposób podejmuje decyzje). Jest to szczególnie ważne w sektorach takich jak opieka zdrowotna i finanse, gdzie ML ma duży wpływ na życie ludzi.
Po rozwiązaniu problemu biznesowego nadszedł czas, aby rozpocząć pracę z danymi.
Ogólnie proces przygotowania danych do ML można podzielić na następujące etapy.
- Zbieranie danych
- Czyszczenie danych
- Transformacja danych
- Podział danych
Przyjrzyjmy się bliżej każdemu z nich.
Gromadzenie danych
Przygotowanie danych do ML rozpoczyna się od zebrania danych. Na etapie zbierania danych zbierasz dane do trenowania i dostrajania przyszłego modelu ML. Czyniąc to, pamiętaj o rodzaju, objętości i jakości danych: te czynniki określą najlepszą strategię przygotowania danych.
Uczenie maszynowe wykorzystuje trzy rodzaje danych: ustrukturyzowane, nieustrukturyzowane i częściowo ustrukturyzowane.
- Dane strukturalne są zorganizowane w określony sposób, zwykle w formacie tabeli lub arkusza kalkulacyjnego. Przykłady danych strukturalnych obejmują zakres informacji zebranych z baz danych lub systemów transakcyjnych.
- Dane nieustrukturyzowane obejmują obrazy, filmy, nagrania dźwiękowe i inne informacje, które nie są zgodne z konwencjonalnymi modelami danych.
- Częściowo ustrukturyzowane dane nie są zgodne z formatem tabelarycznego modelu danych. Mimo to nie jest całkowicie zdezorganizowany, ponieważ zawiera pewne elementy strukturalne, takie jak tagi lub metadane, które ułatwiają interpretację. Przykłady obejmują dane w formatach XML lub JSON.
Struktura danych determinuje optymalne podejście do przygotowania ich do ML. Dane strukturalne można na przykład łatwo organizować w tabele i czyścić poprzez deduplikację, uzupełnianie brakujących wartości lub standaryzację formatów danych. Z kolei wyodrębnienie istotnych cech z nieustrukturyzowanych danych wymaga bardziej złożonych technik, takich jak przetwarzanie języka naturalnego lub widzenie komputerowe.
Na optymalne podejście do przygotowania danych do ML ma również wpływ ilość danych treningowych. Duży zestaw danych może wymagać próbkowania, co obejmuje wybranie podzbioru danych do uczenia modelu ze względu na ograniczenia obliczeniowe. Mniejszy z kolei może wymagać od analityków danych podjęcia dodatkowych kroków w celu wygenerowania większej ilości danych w oparciu o istniejące punkty danych (więcej na ten temat poniżej).
Istotna jest również jakość gromadzonych danych. Korzystanie z niedokładnych lub stronniczych danych może mieć wpływ na wyniki prania maszynowego, co może mieć poważne konsekwencje, zwłaszcza w takich obszarach, jak finanse, opieka zdrowotna i wymiar sprawiedliwości w sprawach karnych. Istnieją techniki, które umożliwiają korygowanie danych pod kątem błędów i stronniczości. Mogą jednak nie działać na zbiorze danych, który jest z natury przekrzywiony. Kiedy już wiesz, co sprawia, że dane są „dobre”, musisz zdecydować, jak je zbierać i gdzie je znaleźć. Jest na to kilka strategii.
- Zbieranie danych ze źródeł wewnętrznych: jeśli masz informacje przechowywane w hurtowni danych przedsiębiorstwa, możesz ich użyć do szkolenia algorytmów uczenia maszynowego. Dane te mogą obejmować transakcje sprzedaży, interakcje z klientami, dane z platform mediów społecznościowych oraz dane z innych źródeł.
- Zbieranie danych ze źródeł zewnętrznych: możesz skorzystać z publicznie dostępnych źródeł danych, takich jak rządowe portale danych, akademickie repozytoria danych i społeczności udostępniające dane, takie jak Kaggle, UCI Machine Learning Repository lub Google Dataset Search.
- Web scraping: Ta technika polega na wydobywaniu danych ze stron internetowych za pomocą zautomatyzowanych narzędzi. Takie podejście może być przydatne do zbierania danych ze źródeł, które nie są dostępne za pomocą innych środków, takich jak recenzje produktów, artykuły informacyjne i media społecznościowe.
- Ankiety: To podejście może służyć do zbierania określonych punktów danych od określonej grupy docelowej. Jest to szczególnie przydatne do zbierania informacji o preferencjach lub zachowaniu użytkowników.
Czasami jednak strategie te nie dostarczają wystarczającej ilości danych. Kiedy tak się stanie, możesz zrekompensować brak punktów danych za pomocą tych technik.
- Powiększanie danych: pozwala generować więcej danych z istniejących próbek, przekształcając je na różne sposoby, na przykład obracając, przesuwając lub skalując.
- Aktywne uczenie się: pozwala wybrać najbardziej pouczającą próbkę danych do etykietowania przez eksperta.
- Uczenie się transferu: obejmuje wykorzystanie wstępnie wyszkolonych algorytmów ML stosowanych do rozwiązywania powiązanych zadań jako punktu wyjścia do szkolenia nowego modelu ML, a następnie dostrajanie nowego modelu na nowych danych.
- Wspólne udostępnianie danych: obejmuje współpracę z innymi badaczami i organizacjami w celu gromadzenia i udostępniania danych dla wspólnego celu.
Czyszczenie danych
Kolejnym krokiem do przygotowania danych do ML jest ich wyczyszczenie. Czyszczenie danych polega na wyszukiwaniu i poprawianiu błędów, niespójności i brakujących wartości. Istnieje kilka podejść do czyszczenia danych.
Postępowanie z brakującymi danymi
Brakujące wartości to częsty problem w ML. Może to być obsługiwane przez imputację (pomyśl: uzupełnianie brakujących wartości przewidywanymi lub szacunkowymi danymi), interpolację (wyprowadzanie brakujących wartości z otaczających punktów danych) lub usuwanie (po prostu usuwanie wierszy lub kolumn z brakującymi wartościami ze zbioru danych).
Obsługa wartości odstających
Wartości odstające to punkty danych, które znacząco różnią się od reszty zbioru danych. Wartości odstające mogą wystąpić z powodu błędów pomiaru, błędów wprowadzania danych lub po prostu dlatego, że reprezentują nietypowe lub ekstremalne obserwacje. Na przykład w zbiorze danych wynagrodzeń pracowników wartością odstającą może być pracownik, który zarabia znacznie więcej lub mniej niż inni. Z wartościami odstającymi można sobie poradzić, usuwając je, przekształcając w celu zmniejszenia ich wpływu, stosując winsoring (pomyśl: zastępowanie wartości skrajnych najbliższymi wartościami mieszczącymi się w normalnym zakresie rozkładu) lub traktując je jako oddzielną klasę danych.
Usuwanie duplikatów
Kolejnym krokiem w procesie przygotowania danych do ML jest usunięcie duplikatów. Duplikaty nie tylko zniekształcają prognozy ML, ale także marnują miejsce w pamięci masowej i wydłużają czas przetwarzania, zwłaszcza w przypadku dużych zbiorów danych. Aby usunąć duplikaty, analitycy danych stosują różne techniki identyfikacji duplikatów (np. dokładne dopasowywanie, dopasowywanie rozmyte, haszowanie lub łączenie rekordów). Po zidentyfikowaniu można je usunąć lub połączyć. Jednak w niezrównoważonych zestawach danych duplikaty mogą być w rzeczywistości mile widziane w celu osiągnięcia normalnego rozkładu.
Postępowanie z nieistotnymi danymi
Dane nieistotne odnoszą się do danych, które nie są przydatne lub nie mają zastosowania do rozwiązania problemu. Obsługa nieistotnych danych może pomóc zredukować szum i poprawić dokładność prognoz. Aby zidentyfikować nieistotne dane, zespoły ds. danych mogą skorzystać z takich technik, jak analiza głównych składowych, analiza korelacji lub po prostu polegać na swojej wiedzy dziedzinowej. Po zidentyfikowaniu takie punkty danych są usuwane z odpowiedniego zbioru danych.
Postępowanie z nieprawidłowymi danymi
Przygotowanie danych do uczenia maszynowego musi również obejmować obsługę niepoprawnych i błędnych danych. Powszechne techniki postępowania z takimi danymi to transformacja danych (zmiana danych tak, aby spełniały ustalone kryteria) lub całkowite usuwanie błędnych punktów danych.

Obsługa niezrównoważonych danych
Niezrównoważony zbiór danych to zbiór danych, w którym liczba punktów danych w jednej klasie jest znacznie mniejsza niż liczba punktów danych w innej klasie. Może to skutkować stronniczym modelem, w którym priorytetowo traktuje się klasę większościową, ignorując klasę mniejszościową. Aby rozwiązać ten problem, zespoły ds. danych mogą uciekać się do takich technik, jak ponowne próbkowanie (oversampling klasy mniejszościowej lub undersampling klasy większościowej w celu zrównoważenia dystrybucji danych), syntetyczne generowanie danych (generowanie dodatkowych punktów danych dla klasy mniejszościowej w sposób syntetyczny), koszt -uczenie wrażliwe (przypisywanie większej wagi klasie mniejszości podczas szkolenia) i uczenie zespołowe (łączenie wielu modeli wyszkolonych na różnych podzbiorach danych przy użyciu różnych algorytmów).
Działania te pomagają zapewnić, że dane szkoleniowe są dokładne, kompletne i spójne. Chociaż jest to duże osiągnięcie, nie wystarczy jeszcze stworzyć niezawodnego modelu ML. Tak więc następny krok na drodze do przygotowania danych do uczenia maszynowego polega na upewnieniu się, że punkty danych w zbiorze danych szkoleniowych są zgodne z określonymi zasadami i standardami. Ten etap procesu zarządzania danymi jest nazywany transformacją danych.
Transformacja danych
Na etapie transformacji danych konwertujesz surowe dane do formatu odpowiedniego dla algorytmów ML. To z kolei zapewnia wyższą wydajność i dokładność algorytmu.
Nasi eksperci w przygotowaniu danych do ML wymieniają następujące popularne techniki transformacji danych.
skalowanie
W zbiorze danych różne funkcje mogą używać różnych jednostek miary. Na przykład zestaw danych nieruchomości może zawierać informacje o liczbie pokoi w każdej nieruchomości (w zakresie od jednego do dziesięciu) oraz cenie (w zakresie od 50 000 USD do 1 000 000 USD). Bez skalowania trudno jest zrównoważyć znaczenie obu funkcji. Algorytm może przywiązywać zbyt dużą wagę do cechy o większych wartościach — w tym przypadku do ceny — a za mało do cechy o pozornie mniejszych wartościach. Skalowanie pomaga rozwiązać ten problem, przekształcając wszystkie punkty danych w taki sposób, aby mieściły się w określonym zakresie, zwykle między 0 a 1. Teraz możesz jednakowo porównywać różne zmienne.
Normalizacja
Inną techniką stosowaną w przygotowaniu danych do ML jest normalizacja. Jest to podobne do skalowania. Jednak podczas gdy skalowanie zmienia zakres zbioru danych, normalizacja zmienia jego dystrybucję.
Kodowanie
Dane kategoryczne mają ograniczoną liczbę wartości — na przykład kolory, modele samochodów lub gatunki zwierząt. Ponieważ algorytmy ML zazwyczaj działają z danymi liczbowymi, dane kategoryczne muszą być zakodowane, aby mogły być używane jako dane wejściowe. Kodowanie oznacza zatem konwersję danych kategorycznych na format numeryczny. Istnieje kilka technik kodowania do wyboru, w tym kodowanie na gorąco, kodowanie porządkowe i kodowanie etykiet.
Dyskretyzacja
Dyskretyzacja to podejście do przygotowania danych do ML, które pozwala przekształcić zmienne ciągłe, takie jak czas, temperatura czy waga, na zmienne dyskretne. Rozważmy zestaw danych zawierający informacje o wzroście osób. Wzrost każdej osoby można mierzyć jako zmienną ciągłą w stopach lub centymetrach. Jednak w przypadku niektórych algorytmów ML może być konieczne podzielenie tych danych na kategorie, takie jak „niski”, „średni” i „wysoki”. To właśnie robi dyskretyzacja. Pomaga uprościć zestaw danych szkoleniowych i zmniejszyć złożoność problemu. Typowe podejścia do dyskretyzacji obejmują dyskretyzację opartą na klastrach i drzewach decyzyjnych.
Redukcja wymiarowości
Redukcja wymiarowości oznacza ograniczenie liczby cech lub zmiennych w zbiorze danych i zachowanie tylko tych informacji, które są istotne dla rozwiązania problemu. Rozważmy na przykład zbiór danych zawierający informacje o historii zakupów klientów. Zawiera daty zakupu, zakupione przedmioty, ceny przedmiotów oraz miejsce, w którym dokonano zakupów. Zmniejszając wymiarowość tego zbioru danych, pomijamy wszystkie oprócz najważniejszych cech, np. zakupiony przedmiot i jego cenę. Redukcję wymiarowości można przeprowadzić za pomocą różnych technik, z których niektóre to analiza głównych składowych, liniowa analiza dyskryminacyjna i stochastyczne osadzanie sąsiadów z rozkładem t.
Dziennik transformacji
Inny sposób przygotowania danych do ML, transformacja dziennika, odnosi się do zastosowania funkcji logarytmicznej do wartości zmiennej w zbiorze danych. Jest często używany, gdy dane uczące są silnie skośne lub mają duży zakres wartości. Zastosowanie funkcji logarytmicznej może sprawić, że rozkład danych będzie bardziej symetryczny.
Mówiąc o transformacji danych, należy wspomnieć również o inżynierii cech. Chociaż jest to forma transformacji danych, inżynieria funkcji jest czymś więcej niż techniką lub etapem w procesie przygotowywania danych do uczenia maszynowego. Oznacza wybieranie, przekształcanie i tworzenie funkcji w zbiorze danych. Inżynieria cech obejmuje kombinację technik statystycznych, matematycznych i obliczeniowych, w tym wykorzystanie modeli uczenia maszynowego, w celu tworzenia funkcji, które przechwytują najbardziej istotne informacje w danych.
Zwykle jest to proces iteracyjny, który wymaga testowania i oceny różnych technik i kombinacji funkcji w celu znalezienia najlepszego podejścia do rozwiązania problemu.
Dzielenie danych
Kolejnym krokiem w procesie przygotowania danych do ML jest podzielenie wszystkich zebranych danych na podzbiory — proces znany jako dzielenie danych. Zazwyczaj dane są podzielone na zestaw danych szkoleniowych, walidacyjnych i testowych.
- Szkoleniowy zestaw danych jest używany do faktycznego nauczenia modelu ML rozpoznawania wzorców i relacji między zmiennymi wejściowymi i docelowymi. Ten zbiór danych jest zazwyczaj największy.
- Zestaw danych walidacji to podzbiór danych, który jest używany do oceny wydajności modelu podczas szkolenia. Pomaga dostroić model, dostosowując hiperparametry (pomyśl: parametry procesu uczenia, które są ustawiane ręcznie przed treningiem, takie jak szybkość uczenia się, siła regularyzacji lub liczba ukrytych warstw). Zestaw danych sprawdzania poprawności pomaga również zapobiegać nadmiernemu dopasowaniu do danych szkoleniowych.
- Testowy zestaw danych to podzbiór danych, który jest używany do oceny wydajności wyszkolonego modelu. Jego celem jest ocena dokładności modelu na nowych, niewidocznych danych. Zestaw danych testowych jest używany tylko raz — po wytrenowaniu i dostrojeniu modelu w zestawach danych szkoleniowych i walidacyjnych.
Dzieląc dane, możemy ocenić, jak dobrze model ML działa na danych, których wcześniej nie widział. Bez podziału istnieje prawdopodobieństwo, że model będzie działał słabo na nowych danych. Może się tak zdarzyć, ponieważ model mógł po prostu zapamiętać punkty danych zamiast uczyć się wzorców i uogólniać je na nowe dane.
Istnieje kilka podejść do podziału danych, a wybór optymalnego zależy od rozwiązywanego problemu i właściwości zbioru danych. Nasi eksperci zajmujący się przygotowywaniem danych do uczenia maszynowego twierdzą, że często wymaga to od zespołu danych pewnych eksperymentów w celu określenia najskuteczniejszej strategii podziału. Poniżej przedstawiono najczęstsze strategie.
- Próbkowanie losowe: W przypadku tej strategii dane są dzielone losowo. Podejście to jest często stosowane do dużych zbiorów danych reprezentatywnych dla modelowanej populacji. Alternatywnie jest używany, gdy nie ma znanych relacji w zbiorze danych, co może wymagać bardziej specjalistycznego podejścia.
- Próbkowanie warstwowe: W tej strategii dane są dzielone na podzbiory w oparciu o etykiety klas lub inne cechy, a następnie te podzbiory są losowo próbkowane. Ta strategia jest stosowana do niezrównoważonych zbiorów danych, w których liczba wartości w jednej klasie znacznie przekracza liczbę wartości w innych. W takim przypadku próbkowanie warstwowe pomaga upewnić się, że zestawy danych uczących i testujących mają podobny rozkład wartości z każdej klasy.
- Próbkowanie oparte na czasie: Strategia ta jest stosowana, gdy dane zebrane do określonego punktu w czasie tworzą zestaw danych szkoleniowych, podczas gdy dane zebrane po osiągnięciu wartości zadanej są formowane w zestaw danych testowych. To podejście jest stosowane, gdy dane były gromadzone przez długi czas — na przykład w zbiorach danych finansowych lub medycznych, ponieważ pozwala upewnić się, że model może dokładnie przewidywać przyszłe dane.
- Walidacja krzyżowa: dzięki tej strategii dane są dzielone na wiele podzbiorów lub fałd. Niektóre fałdy są używane do uczenia modelu, podczas gdy pozostałe służą do oceny wydajności. Proces jest powtarzany wiele razy, przy czym każde zagięcie służy jako dane testowe co najmniej raz. Istnieje kilka technik walidacji krzyżowej — na przykład k-krotna walidacja krzyżowa i walidacja krzyżowa z pominięciem jednego. Walidacja krzyżowa zwykle zapewnia dokładniejsze oszacowanie wydajności modelu niż ocena pojedynczego zestawu danych testowych.
Na zakończenie
Właściwe przygotowanie danych do uczenia maszynowego jest niezbędne do opracowania dokładnych i niezawodnych rozwiązań uczenia maszynowego. W ITRex rozumiemy wyzwania związane z przygotowaniem danych i znaczenie posiadania wysokiej jakości zestawu danych dla pomyślnego procesu uczenia maszynowego.
Jeśli chcesz zmaksymalizować potencjał swoich danych poprzez ML, skontaktuj się z zespołem ITRex. Nasi eksperci pomogą w gromadzeniu, czyszczeniu i przekształcaniu Twoich danych.
Ten artykuł został pierwotnie opublikowany na stronie internetowej itrex.
