Co to jest redukcja wymiarowości? Jaka jest różnica między wyborem funkcji a ekstrakcją?

58

Z wikipedii,

redukcja wymiarów lub redukcja wymiarów to proces zmniejszania liczby rozważanych zmiennych losowych, który można podzielić na wybór cech i ekstrakcję cech.

Jaka jest różnica między wyborem funkcji a ekstrakcją funkcji?

Jaki jest przykład zmniejszenia wymiarów w zadaniu przetwarzania języka naturalnego?

alvas
źródło

Odpowiedzi:

51

Po prostu:

  • wybór funkcji: wybierasz podzbiór oryginalnego zestawu funkcji; podczas
  • ekstrakcja funkcji: tworzysz nowy zestaw funkcji z oryginalnego zestawu funkcji.

Przykłady ekstrakcji cech: ekstrakcja konturów na obrazach, ekstrakcja digramów z tekstu, ekstrakcja fonemów z nagrania tekstu mówionego itp.

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.

damienfrancois
źródło
2
Oba należą do kategorii inżynierii operacji, ponieważ wymagają ręcznego tworzenia lub wybierania operacji. Redukcja wymiarów zazwyczaj wiąże się ze zmianą podstawy lub inną matematyczną re-reprezentacją danych
szaleje
1
@ragingSloth, myślę, że pierwszy to zdecydowanie wybór funkcji - a nie inżynieria funkcji. Podczas gdy przykłady przetwarzania obrazów i tekstu rzeczywiście wydają się być inżynierią funkcji
Alexey Grigorev
Sposób, w jaki go znalazłem, w przypadku niektórych fragmentów funkcji nadal można w przybliżeniu odtworzyć oryginalne wymiary. Ale w przypadku wyboru funkcji nie ma rekonstrukcji, ponieważ usunięto niepotrzebne wymiary.
Bob
16

Redukcja wymiarów polega zwykle na wyborze podstawy lub reprezentacji matematycznej, w ramach której można opisać większość, ale nie całą wariancję danych, zachowując w ten sposób odpowiednie informacje, jednocześnie zmniejszając ilość informacji niezbędnych do ich przedstawienia. Istnieje wiele technik służących robi to w tym, lecz nie ograniczając się do PCA, ICAi Matrix Feature Factorization. Sprowadzą one istniejące dane i zredukują je do najbardziej dyskryminujących elementów, które pozwalają reprezentować większość informacji w zbiorze danych za pomocą mniejszej liczby bardziej dyskryminujących funkcji.

Wybór funkcji to ręczne wybieranie cech, które są wysoce dyskryminujące. Ma to o wiele więcej wspólnego z inżynierią funkcji niż analizą i wymaga znacznie więcej pracy ze strony naukowca danych. Wymaga zrozumienia, jakie aspekty zestawu danych są ważne w jakichkolwiek prognozach, a które nie. Wyodrębnianie elementów zwykle obejmuje generowanie nowych elementów, które są kompozytami istniejących elementów. Obie te techniki należą do kategorii inżynierii obiektów. Zasadniczo inżynieria funkcji jest ważna, jeśli chcesz uzyskać najlepsze wyniki, ponieważ obejmuje tworzenie informacji, które mogą nie istnieć w zbiorze danych, oraz zwiększenie stosunku sygnału do szumu.

wściekły szlam
źródło
2
Zgadzam się głównie, z precyzją: Wybór funkcji nie musi być dokonywany ręcznie, może być automatyczny. Zobacz na przykład metodę Lasso ( en.wikipedia.org/wiki/Least_squares#Lasso_method ).
jrouquie
Zgadzam się z twoją Dimensionality Reductionklauzulą, ale nieco się różnią w Feature Engineeringużyciu - co z tego, co widziałem, jest tylko Feature Extraction : Feature Selectionjest rozpatrywane osobno. To tylko różnica terminologiczna.
javadba,
7

Podobnie jak w @damienfrancois, wybór funkcji odpowiedzi dotyczy wyboru podzbioru funkcji. Tak więc w NLP byłoby wybranie zestawu konkretnych słów (typowe w NLP jest to, że każde słowo reprezentuje cechę o wartości równej częstotliwości słowa lub innej wadze opartej na TF / IDF lub podobnej).

Redukcja wymiarów polega na wprowadzeniu nowej przestrzeni elementów, w której reprezentowane są elementy oryginalne. Nowa przestrzeń ma mniejszy wymiar niż oryginalna przestrzeń. W przypadku tekstu przykładem może być sztuczka haszująca, w której fragment tekstu jest redukowany do wektora kilku bitów (powiedzmy 16 lub 32) lub bajtów. Niesamowite jest to, że geometria przestrzeni jest zachowana (podana wystarczająca liczba bitów), więc względne odległości między dokumentami pozostają takie same jak w oryginalnej przestrzeni, dzięki czemu można wdrożyć standardowe techniki uczenia maszynowego bez konieczności radzenia sobie z nieograniczonymi (i ogromną liczbą) z) wymiarów znalezionych w tekście.

iliasfl
źródło
5

Wybór cech polega na wybraniu niektórych cech na podstawie niektórych wyników statystycznych, ale ekstrakcja cech wykorzystuje techniki wydobywania informacji z drugiej warstwy z danych, np. Interesujące częstotliwości sygnału za pomocą transformaty Fouriera.

Redukcja wymiarowości polega na transformacji danych do przestrzeni niskiego wymiaru, w której dane zachowują swoją strukturę euklidesową, ale nie cierpią z powodu przekleństwa wymiarowości. Załóżmy na przykład, że wyodrębniasz niektóre funkcje słów ze zbioru danych, w którym każdy dokument może być zamodelowany jako punkt w przestrzeni n-wymiarowej, a n jest zbyt duży (przykład zabawki). W tym przypadku wiele algorytmów nie działa zgodnie ze zniekształceniem odległości w przestrzeni wielowymiarowej. Teraz musisz zmniejszyć wymiarowość, wybierając albo najbardziej pouczające cechy, albo przekształcając je w wielowymiarowy rozmaitość, stosując metody redukcji wymiarów, np. PCA, LLE itp.[x1,...,xn]

DanielWelke
źródło
Spośród dostępnych odpowiedzi ten najlepiej pasuje do tego, co widziałem w kilku zespołach Data Science i ML Platform
javadba,
3

Aby uzupełnić odpowiedź Damiena, przykładem redukcji wymiarowości w NLP jest model tematyczny , w którym dokument reprezentujesz za pomocą wektora wskazującego wagi jego elementów składowych.

Emre
źródło
2

A1. Co to jest redukcja wymiarów: jeśli myślisz o danych w macierzy, gdzie wiersze są instancjami, a kolumny atrybutami (lub elementami), to redukcja wymiarów odwzorowuje tę macierz danych na nową macierz z mniejszą liczbą kolumn. W przypadku wizualizacji, jeśli myślisz o każdej macierzy-kolumnie (atrybucie) jako wymiarze w przestrzeni elementów, wówczas zmniejszenie wymiarów jest rzutowaniem instancji z przestrzeni o wyższym wymiarze (więcej kolumn) na podprzestrzeń o niższych wymiarach (mniej kolumn). Redukcja wymiarów jest rzutowaniem na podprzestrzeń Typowym celem tej transformacji jest (1) zachowanie informacji w matrycy danych, przy jednoczesnym zmniejszeniu złożoności obliczeniowej; (2) poprawa separowalności różnych klas danych.

A2 Redukcja wymiarów jako wybór funkcji lub ekstrakcja funkcji: użyję wszechobecnego zestawu danych Iris , który jest prawdopodobnie „cześć światem” nauki danych. W skrócie, zestaw danych Iris ma 3 klasy i 4 atrybuty (kolumny). Zilustruję wybór funkcji i ekstrakcję dla zadania polegającego na zmniejszeniu wymiarów zestawu danych Iris z 4 do 2.

Obliczam pary wariancji tego zestawu danych za pomocą biblioteki w języku Python o nazwie seaborn. Kod to: sns.pairplot (tęczówka, odcień = „gatunek”, markery = [„o”, „s”, „D”]). Otrzymuję rysunek, Wykres parowy tęczówki że mogę wybrać parę atrybutów (2 wymiary), które zapewniają mi największy podział między 3 klasami (gatunkami) w zbiorze danych Iris. Byłby to przypadek wyboru funkcji.

Następny jest ekstrakcja funkcji. W tym miejscu rzutuję 4-wymiarową przestrzeń cech tęczówki na nową 2-wymiarową podprzestrzeń, która nie jest wyrównana względem osi z pierwotną przestrzenią. To są nowe atrybuty. Zazwyczaj są one oparte na rozkładzie w oryginalnej wysokiej przestrzeni wymiarowej. Najpopularniejszą metodą jest analiza głównych składników, która oblicza wektory własne w pierwotnej przestrzeni. PCA za pomocą SVD Oczywiście nie jesteśmy ograniczeni do używania jedynie liniowej i globalnej projekcji do podprzestrzeni opartej na wektorach własnych. Możemy również zastosować metody projekcji nieliniowej. Oto przykład nieliniowego PCA wykorzystującego sieci neuronowe Wyodrębniononieliniowe PCA z użyciem NN atrybuty (wymiary) w ostatnim przykładziez oryginalnych 4 atrybutów za pomocą sieci neuronowych. Możesz eksperymentować z różnymi odmianami PCA dla zestawu danych tęczówki, korzystając z tego kodu metod pca .

Podsumowanie: Chociaż metody wyodrębniania funkcji mogą wydawać się lepsze pod względem wydajności niż wybór funkcji, wybór zależy od aplikacji. Atrybuty wyodrębniania funkcji zwykle tracą fizyczną interpretację, co może, ale nie musi, stanowić problemu w zależności od wykonywanego zadania. Na przykład, jeśli projektujesz bardzo drogie zadanie gromadzenia danych z kosztownymi czujnikami i musisz zaoszczędzić na atrybutach (liczbie różnych czujników), chciałbyś zebrać małą próbkę pilotażową przy użyciu wszystkich dostępnych czujników, a następnie wybrać te, które są najbardziej pouczające dla zadania gromadzenia dużych zbiorów danych.

Dynamiczny Gwiezdny Pył
źródło
1

Wyciąg z praktycznego uczenia maszynowego dzięki scikit-learn i Tensorflow

  1. Czyszczenie danych: Napraw lub usuń wartości odstające (opcjonalnie). Uzupełnij brakujące wartości (np. Zero, średnia, mediana…) lub upuść ich wiersze (lub kolumny).
  2. Wybór funkcji (opcjonalnie): Usuń atrybuty, które nie dostarczają przydatnych informacji dla zadania.
  3. Inżynieria funkcji, w stosownych przypadkach: Dyskretne funkcje ciągłe. Rozkłada funkcje (np. Jakościowe, data / godzina itp.). Dodaj obiecujące przekształcenia funkcji (np. Log (x), sqrt (x), x ^ 2 itd.). Agreguj funkcje w obiecujące nowe funkcje.
  4. Skalowanie funkcji: standaryzuj lub normalizuj funkcje.
Hadi Askari
źródło
0

Kilka świetnych odpowiedzi tutaj, w szczególności odpowiedź @ damienfrancois bardzo zwięźle oddaje ogólną ideę.

Nie widzę jednak żadnych przykładów inżynierii cech dla danych relacyjnych lub szeregów czasowych. W takim przypadku badacze danych generalnie wyodrębniają wzorce statystyczne między relacjami i w czasie. Na przykład, aby przewidzieć, co klienci będą w przyszłości w bazie danych e-commerce, można wyodrębnić ilości, takie jak średnia historyczna kwota zakupu lub częstotliwość wcześniejszych zakupów.

Napisałem artykuł na ten temat, który jest o wiele bardziej szczegółowy z kilkoma przykładami tutaj: https://www.featurelabs.com/blog/feature-engineering-vs-feature-selection/

bschreck
źródło
0

Zacznę od odwrotnej kolejności, która ekstrakcja cech i dlaczego istnieje potrzeba wyboru cech i zmniejszenia wymiarów.

Zaczynając od wyodrębnienia funkcji, która służy głównie do celów klasyfikacji. Klasyfikacja jest procesem podejmowania decyzji, do której kategorii należy dany obiekt. Składa się z dwóch faz: i) faza szkolenia, w której dane lub obiekty są poznawane przy użyciu pewnych procesów (ekstrakcja cech) ii) faza testowania, w której nieznany obiekt jest klasyfikowany przy użyciu funkcji poznanych w poprzedniej fazie (szkolenie).

Wyodrębnianie funkcji, jak sugeruje nazwa, biorąc pod uwagę, że celem danych jest znalezienie podstawowego wzorca. Ten podstawowy wzór, który jest terminem jako cechą odpowiadającą tym odpowiednim danym. Istnieją różne metodologie ekstrakcji funkcji, takie jak Support Vector Machine (SVM).

Teraz ekstrakcja funkcji powinna generować funkcje, które powinny być

  • krzepki
  • dyskryminujący
  • optymalny zestaw funkcji

Wybór funkcji: określony zestaw danych może być reprezentowany przez pojedynczą funkcję lub zestaw funkcji. W procesie klasyfikacji system jest szkolony dla co najmniej dwóch klas. Tak więc system szkoleniowy wygeneruje jedną funkcję lub zestaw funkcji. Funkcje te powinny posiadać właściwości wymienione powyżej.

Problem pojawia się, gdy istnieje zestaw funkcji dla każdej klasy i istnieje korelacja między niektórymi funkcjami. Oznacza to, że spośród tych korelujących cech jedna lub kilka jest wystarczających do przedstawienia, i to właśnie tam pojawia się wybór cech. Ponadto funkcje te muszą być przechowywane wraz ze wzrostem zapotrzebowania na pamięć zestawu funkcji.

Potem następuje redukcja wymiarów, która jest niczym innym jak częścią procesu wyboru cech. Jest to proces wyboru optymalnego zestawu funkcji, które najlepiej opisują dane. Istnieje wiele technik tego samego, takich jak analiza głównych składników, niezależna analiza składników i faktoryzacja macierzy itp.

Chirag Arora
źródło
-3

Na przykład ... jeśli masz grunty rolne, wybór jednego konkretnego obszaru tego gruntu byłby wyborem cech. Jeśli chcesz znaleźć dotknięte nim rośliny na tym obszarze, musisz obserwować każdą roślinę na podstawie konkretnej cechy, która jest wspólna w każdej roślinie, aby znaleźć nieprawidłowości ... w tym celu rozważymy ekstrakcję cech. W tym przykładzie pierwotna ziemia rolna odpowiada zmniejszeniu wymiarów.

Divya
źródło
Nie, nie dotyczy to w szczególności danych przestrzennych. Dotyczy to również danych tymczasowych, czasoprzestrzennych i innych rodzajów danych.
Emre