Jak wygenerować syntetyczny zestaw danych przy użyciu modelu uczenia maszynowego wyuczonego z oryginalnego zestawu danych?

19

Zasadniczo model uczenia maszynowego jest oparty na zestawach danych. Chciałbym wiedzieć, czy istnieje jakiś sposób na wygenerowanie syntetycznego zestawu danych przy użyciu takiego wyuczonego modelu uczenia maszynowego, zachowującego oryginalne cechy zestawu danych?

[oryginalne dane -> zbuduj model uczenia maszynowego -> użyj modelu ml do wygenerowania danych syntetycznych .... !!!]

Czy to możliwe ? Jeśli to możliwe, wskaż mi powiązany zasób.

hadooper
źródło

Odpowiedzi:

27

Ogólne podejście polega na przeprowadzeniu tradycyjnej analizy statystycznej na zestawie danych w celu zdefiniowania wielowymiarowego losowego procesu, który wygeneruje dane o tych samych cechach statystycznych. Zaletą tego podejścia jest to, że twoje syntetyczne dane są niezależne od modelu ML, ale statystycznie „zbliżone” do twoich danych. (zobacz poniżej omówienie alternatywy)

Zasadniczo szacujesz wielowymiarowy rozkład prawdopodobieństwa związany z procesem. Po oszacowaniu rozkładu można wygenerować dane syntetyczne za pomocą metody Monte Carlo lub podobnych powtarzanych metod próbkowania. Jeśli twoje dane przypominają rozkład parametryczny (np. Logarytmiczny), to podejście jest proste i niezawodne. Trudną częścią jest oszacowanie zależności między zmiennymi. Zobacz: https://www.encyclopediaofmath.org/index.php/Multi-dimensional_statystyczny_analiza .

Jeśli dane są nieregularne, metody nieparametryczne są łatwiejsze i prawdopodobnie bardziej niezawodne. Wielowymiarowe oszacowanie gęstości jądra jest metodą dostępną i atrakcyjną dla osób z ML. Ogólne wprowadzenie i łącza do określonych metod można znaleźć na stronie : https://en.wikipedia.org/wiki/Nonparametric_statistics .

Aby sprawdzić, czy ten proces działał dla Ciebie, ponownie przejrzyj proces uczenia maszynowego ze zsyntetyzowanymi danymi i powinieneś otrzymać model dość zbliżony do oryginału. Podobnie, jeśli umieścisz zsyntetyzowane dane w swoim modelu ML, powinieneś otrzymać wyniki, które mają podobny rozkład jak oryginalne wyniki.

W przeciwieństwie do tego proponujesz:

[oryginalne dane -> zbuduj model uczenia maszynowego -> użyj modelu ml do wygenerowania danych syntetycznych .... !!!]

Osiąga to coś innego niż metoda, którą właśnie opisałem. Rozwiązałoby to odwrotny problem : „jakie dane wejściowe mogłyby wygenerować dany zestaw danych wyjściowych modelu”. O ile model ML nie jest nadmiernie dopasowany do oryginalnych danych, te zsyntetyzowane dane nie będą wyglądać jak oryginalne dane pod każdym względem, a nawet najbardziej.

Rozważ model regresji liniowej. Ten sam model regresji liniowej może mieć identyczne dopasowanie do danych, które mają bardzo różne cechy. Słynna demonstracja tego odbywa się poprzez kwartet Anscombe .

Wszystkie cztery zestawy są identyczne, gdy są badane przy użyciu prostych statystyk podsumowujących, ale różnią się znacznie, gdy są wykreślane

Chociaż nie mam referencji, uważam, że ten problem może również powstać w regresji logistycznej, uogólnionych modelach liniowych, SVM i grupowaniu metodą K-średnich.

Istnieje kilka typów modeli ML (np. Drzewo decyzyjne), w których można je odwrócić w celu wygenerowania danych syntetycznych, choć wymaga to trochę pracy. Zobacz: Generowanie danych syntetycznych w celu dopasowania wzorców wyszukiwania danych .

MrMeritology
źródło
czas przeczytać więcej o Monte-Carlo i wielowymiarowej analizie statystycznej ... dzięki za miłe wyjaśnienie .. !!!
hadooper
2

Istnieje bardzo powszechne podejście do radzenia sobie z niezrównoważonymi zestawami danych, zwane SMOTE, które generuje próbki syntetyczne z klasy mniejszości. Działa poprzez zaburzanie próbek mniejszości przy użyciu różnic z sąsiadami (pomnożonych przez pewną liczbę losową od 0 do 1)

Oto cytat z oryginalnego artykułu:

Próbki syntetyczne są generowane w następujący sposób: Weź różnicę między rozważanym wektorem cech (próbką) a jego najbliższym sąsiadem. Pomnóż tę różnicę przez liczbę losową od 0 do 1 i dodaj ją do rozważanego wektora cech.

Więcej informacji znajdziesz tutaj .

AlexPnt
źródło
1

Augmentacja danych to proces syntetycznego tworzenia próbek na podstawie istniejących danych. Istniejące dane są nieco zaburzone, aby wygenerować nowe dane, które zachowują wiele oryginalnych właściwości danych. Na przykład, jeśli dane to obrazy. Piksele obrazu można zamieniać. Wiele przykładów technik powiększania danych można znaleźć tutaj .

Brian Spiering
źródło