Techniki powiększania danych dla ogólnych zestawów danych?

21

W wielu aplikacjach uczenia maszynowego tak zwane metody powiększania danych pozwoliły na zbudowanie lepszych modeli. Załóżmy na przykład zestaw szkoleniowy zawierający zdjęć kotów i psów. Obracając, odbijając, dostosowując kontrast itp. Można wygenerować dodatkowe obrazy z oryginalnych.100

W przypadku obrazów powiększanie danych jest stosunkowo proste. Załóżmy jednak (na przykład), że jeden zestaw szkoleniowy zawiera próbek i kilkaset zmiennych ciągłych, które reprezentują różne rzeczy. Powiększanie danych nie wydaje się już tak intuicyjne. Co można zrobić w takim przypadku?100

mmh
źródło
2
Myślę, że niektóre metody, takie jak PCA lub AE, są nadal intuicyjne w zakresie powiększania danych. Pierwszą metodą jest zastosowanie PCA i zachowanie pierwszych wartości własnych i ustawianie wartości własnych losowo z rozkładu, gaussa itp. Jeśli inne metody używają Autokoderów do konstruowania danych. Jeśli liczba jednostek ukrytych jest zbliżona do jednostek widocznych, sama konstrukcja może być całkiem dobra. Zrekonstruowane dane można wykorzystać jako rozszerzoną część danych.
yasin.yazici
@mmh, czy to odpowiedziało na twoje pytanie?
shf8888,
100x50503020
Zobacz moją pracę magisterską, strona 80, aby zapoznać się z technikami augmentacji danych dla obrazów.
Martin Thoma,
Powiększanie danych ma sens w przypadku obrazów, np. Obrócony obraz obiektu jest nadal obrazem obiektu i potrzebujesz do tego modelu, ale prawdopodobnie niekoniecznie masz taki obraz w zestawie danych. Jaka jest w tym przypadku potrzeba / punkt rozszerzenia danych? Nie jest dla mnie jasne, że powinieneś to robić.
Gung - Przywróć Monikę

Odpowiedzi:

17

Rozumiem, że to pytanie dotyczy zarówno konstrukcji obiektów, jak i radzenia sobie z bogactwem funkcji, które już masz + zbuduje, w stosunku do twoich obserwacji ( N << P).

Konstrukcja funkcji

Rozwijając komentarz @ yasin.yazici, możliwe są następujące sposoby rozszerzenia danych:

  • PCA
  • Automatyczne kodowanie
  • Przekształć, takie jak log, moce itp.
  • Podział zmiennych ciągłych na kategorie dyskretne (tj. Zmienna ciągła wynosi 1 SD powyżej średniej, 1 poniżej średniej itp.)
  • Zmienne złożone (na przykład patrz tutaj )

Jestem pewien, że brakuje wielu innych.

Wybór funkcji / redukcja wymiarów

Możesz zmniejszyć wymiarowość za pomocą technik takich jak PCA (choć być może nie po rozszerzeniu danych o zmienne PCA). Alternatywnie możesz użyć algorytmów, które dokonują wyboru funkcji, takich jak lasso, losowy las itp.

shf8888
źródło
2
Czy możesz powiedzieć, w jaki sposób można zastosować automatyczne kodowanie do budowy funkcji?
roni
1
@roni Udane szkolenie z autokodera daje pewną reprezentację danych na wyższym poziomie abstrakcji. Mam nadzieję, że bardziej przydatna reprezentacja, której można użyć w klasyfikatorze.
Chris Anderson
0

Napotkałem podobny problem, w którym chciałem powiększyć nieznakowane dane liczbowe. Rozszerzyłem dane w następujący sposób: (Powiedzmy, że mam zestaw danych o rozmiarze 100 * 10).

  1. Utwórz listę, losowo próbkując wartości z {0,1}, tak aby liczba zer była mniejsza niż liczba 1s, powiedzmy, że w tym przypadku proporcja 0s wynosi 20%. Będziemy mieli listę zer i jedynek o długości 100.
  2. Użyj tej listy jako zmiennej zależnej i przekaż ją do smote, aby wygenerować więcej punktów danych. (Tutaj smote generuje punkty na krawędziach łączące punkty danych odpowiadające zerom na wygenerowanej liście).
  3. Powtarzaj ten proces, aż uzyskasz zestaw danych o wymaganym rozmiarze.
Harshita Vemula
źródło
1
Nie publikuj identycznych odpowiedzi w wielu wątkach. Jeśli naprawdę uważasz, że ta sama odpowiedź, którą opublikowałeś w innym miejscu, w pełni odpowiada na inne pytanie, oflaguj to pytanie jako duplikat pierwszego.
Gung - Przywróć Monikę