Wybór funkcji a ekstrakcja funkcji. Którego użyć, kiedy?

16

Wyodrębnianie funkcji i wybór funkcji zasadniczo zmniejszają wymiarowość danych, ale ekstrakcja funkcji sprawia, że ​​dane są bardziej rozdzielne, jeśli mam rację.

Która technika byłaby lepsza od drugiej i kiedy?

Myślałem, ponieważ ponieważ wybór funkcji nie modyfikuje oryginalnych danych i ich właściwości, zakładam, że użyjesz wyboru funkcji, gdy ważne jest, aby funkcje, których trenujesz, pozostały niezmienione. Ale nie mogę sobie wyobrazić, dlaczego miałbyś chcieć czegoś takiego…

Sid
źródło

Odpowiedzi:

18

Dodając do odpowiedzi udzielonej przez Toros,

Te (patrz poniżej punktory) trzy są dość podobne, ale z subtelnymi różnicami - :( zwięzłe i łatwe do zapamiętania)

  • ekstrakcja i inżynieria cech : przekształcanie surowych danych w cechy odpowiednie do modelowania;

  • transformacja funkcji : transformacja danych w celu poprawy dokładności algorytmu;

  • wybór funkcji : usuwanie niepotrzebnych funkcji.

Aby dodać przykład tego samego,

Wyodrębnianie funkcji i inżynieria (możemy coś z nich wydobyć)

  • Teksty (ngrams, word2vec, tf-idf itp.)
  • Obrazy (CNN, teksty, pytania i odpowiedzi)
  • Dane geoprzestrzenne (długość, długość itp.)
  • Data i godzina (dzień, miesiąc, tydzień, rok, na bieżąco)
  • Szeregi czasowe, sieć itp
  • Techniki redukcji wymiarów (PCA, SVD, twarze własne itp.)
  • Może możemy również użyć klastrowania (DBSCAN itp.)
  • .....(I wiele innych)

Przekształcanie cech (przekształcanie ich, aby miało sens)

  • Normalizacja i zmiana rozkładu (skalowanie)
  • Interakcje
  • Uzupełnienie brakujących wartości (mediana wypełnienia itp.)
  • .....(I wiele innych)

Wybór funkcji (budowanie modelu na tych wybranych funkcjach)

  • Podejścia statystyczne
  • Wybór przez modelowanie
  • Wyszukiwanie w siatce
  • Cross Validation
  • .....(I wiele innych)

Mam nadzieję że to pomoże...

Spójrz na linki udostępnione przez innych. Są całkiem niezłe ...

Aditya
źródło
dobry sposób na otrzymanie +1 za to.
Toros91
Uznanie dla tej społeczności. Wiele się z niej
uczę
1
To prawda, że ​​jestem członkiem od października 2017 r. Nauczyłem się wielu rzeczy. Mam nadzieję, że będzie tak samo dla ciebie. Czytałem twoje odpowiedzi, są dobre .BTW przepraszam za rzecz, którą przeszedłeś na SO. Nie widziałem całej sprawy, ale jak powiedział Neil Slater, że zachowałeś spokój aż do końca. Tak trzymaj! Przed nami jeszcze długa droga. :)
Toros91
Jaka jest kolejność ich przetwarzania? Oprócz czyszczenia i dzielenia danych. Który z 5 jest pierwszym krokiem?
technazi,
Podział danych odbywa się na samym końcu, gdy upewnisz się, że dane są gotowe do wysłania do Modelowania ... I imho nie ma takiego uporządkowania wyżej wymienionych rzeczy, ponieważ pokrywają się one kilka razy (ekstrakcja funkcji, inżynieria funkcji, Transformacja funkcji.), Ale Wybór funkcji jest z pewnością dokonywany po podzieleniu danych na ciąg jako sprawdzania poprawności, pod warunkiem, że używasz metryki modeli lub czegoś równoważnego w zbiorze danych sprawdzania poprawności (w celu zmierzenia jego wydajności) w celu weryfikacji krzyżowej lub czegoś równoważnego, możesz iteracyjnie rozpocząć upuszczając kolumny i zobacz imp colsorimp
Aditya
5

Jak powiedziała Aditya, istnieją 3 terminy związane z funkcjami, które czasami są ze sobą mylone. Spróbuję udzielić podsumowania każdemu z nich:

  • Wyodrębnianie funkcji: generowanie funkcji z danych, które są w formacie, który jest trudny do bezpośredniej analizy / nie są bezpośrednio porównywalne (np. Obrazy, szeregi czasowe itp.) W przykładzie szeregów czasowych niektóre proste funkcje mogą być przykład: długość szeregów czasowych, okres, wartość średnia, std itp.
  • Transformacja funkcji: Transformacja istniejących funkcji w celu utworzenia nowych na podstawie starych. Bardzo popularną techniką zmniejszania wymiarów jest analiza głównych składników (pca), która wykorzystuje pewną transformację ortogonalną w celu uzyskania zestawu zmiennych nieskorelowanych liniowo na podstawie początkowego zestawu zmiennych.
  • Wybór cech: wybór cech o najwyższym „znaczeniu” / wpływie na zmienną docelową, z zestawu istniejących cech. Można tego dokonać różnymi technikami: np. Regresja liniowa, drzewa decyzyjne, obliczanie wag „istotności” (np. Wynik Fishera, ReliefF)

Jeśli jedyną rzeczą, którą chcesz osiągnąć, jest zmniejszenie wymiarów w istniejącym zbiorze danych, możesz użyć metody transformacji lub wyboru funkcji. Ale jeśli musisz znać fizyczną interpretację funkcji, które określasz jako „ważne” lub próbujesz ograniczyć ilość danych, które należy zebrać do analizy (potrzebujesz całego początkowego zestawu funkcji do transformacji funkcji), wtedy tylko wybór funkcji może działać.

Więcej informacji na temat wyboru funkcji i redukcji wymiarów można znaleźć w następujących linkach:

missrg
źródło
4

Myślę, że są to 2 różne rzeczy,

Zacznijmy od wyboru funkcji :

Technika ta służy do wybierania funkcji, które wyjaśniają najwięcej zmiennej docelowej (ma korelację ze zmienną docelową). Ten test jest przeprowadzany tuż przed zastosowaniem modelu do danych.

Aby to lepiej wyjaśnić, przejdźmy do przykładu: istnieje 10 cech i 1 zmienna docelowa, 9 cech wyjaśnia 90% zmiennej docelowej, a 10 cech razem wyjaśnia 91% zmiennej docelowej. Tak więc zmienna 1 nie robi dużej różnicy, więc starasz się ją usunąć przed modelowaniem (jest to również subiektywne dla biznesu). Mogę być również nazywany jako Znaczenie predyktora.

Teraz porozmawiajmy o wyodrębnianiu funkcji ,

Który jest wykorzystywany w uczeniu bez nadzoru, wydobywanie konturów na obrazach, wydobywanie bi-gramów z tekstu, wydobywanie fonemów z nagrywania mówionego tekstu. Jeśli nic nie wiesz o danych, np. Brak słownika danych, zbyt wiele funkcji, co oznacza, że ​​dane nie są w zrozumiałym formacie. Następnie spróbuj zastosować tę technikę, aby uzyskać funkcje, które wyjaśniają większość danych. Wyodrębnianie cech obejmuje przekształcenie cech, które często nie jest odwracalne, ponieważ niektóre informacje są tracone w procesie zmniejszania wymiarów.

Możesz zastosować Wyodrębnianie cech dla danych danych, aby wyodrębnić cechy, a następnie zastosować Wybieranie cech w odniesieniu do zmiennej docelowej, aby wybrać podzbiór, który może pomóc w stworzeniu dobrego modelu z dobrymi wynikami.

możesz przejść przez te Link-1 , Link-2 dla lepszego zrozumienia.

możemy je zaimplementować w R, Python, SPSS.

daj mi znać, jeśli potrzebujesz dodatkowych wyjaśnień.

Toros91
źródło
3

Oba są bardzo różne: Wybór operacji rzeczywiście zmniejsza wymiary, ale ekstrakcja operacji dodaje wymiary obliczane na podstawie innych operacji.

W przypadku danych z paneli lub szeregów czasowych zwykle ma się zmienną datetime i nie chce się trenować zmiennej zależnej w samej dacie, ponieważ nie pojawią się one w przyszłości. Więc powinieneś wyeliminować datetime: eliminację funkcji.

Z drugiej strony dzień tygodnia / weekend może być bardzo istotny, dlatego musimy obliczyć status dnia tygodnia na podstawie daty / godziny: wyodrębnienie funkcji.

vinnief
źródło
0

Kluczową częścią sukcesu projektu uczenia maszynowego jest opracowanie dobrego zestawu funkcji do trenowania. Proces ten, zwany inżynierią funkcji, obejmuje:

• Wybór funkcji: wybieranie najbardziej przydatnych funkcji, z których można korzystać w ramach istniejących funkcji.
• Wyodrębnianie funkcji: łączenie istniejących funkcji w celu uzyskania bardziej użytecznej (jak widzieliśmy wcześniej, algorytmy redukcji wymiarów mogą pomóc).
• Tworzenie nowych funkcji przez gromadzenie nowych danych

Cytując: „Praktyczne uczenie się maszyn dzięki SciKit-Learn, Keras & Tensorflow - Aurelien Geron”

Aditya
źródło