Jak przeprowadzić eksploracyjną analizę danych, aby wybrać odpowiedni algorytm uczenia maszynowego

16

Studiujemy uczenie maszynowe za pośrednictwem uczenia maszynowego: perspektywa probabilistyczna (Kevin Murphy). Chociaż tekst wyjaśnia teoretyczne podstawy każdego algorytmu, rzadko mówi, w którym przypadku algorytm jest lepszy, a kiedy to robi, nie mówi, jak powiedzieć, w którym przypadku jestem.

Na przykład przy wyborze jądra powiedziano mi, aby przeprowadzić eksploracyjną analizę danych, aby ocenić stopień złożoności moich danych. W prostych danych dwuwymiarowych mogę wykreślić i sprawdzić, czy właściwe jest jądro liniowe czy radialne. Ale co robić w wyższym wymiarze?

Mówiąc bardziej ogólnie, co ludzie mają na myśli, mówiąc „poznaj swoje dane” przed wybraniem algorytmu? W tej chwili mogę jedynie odróżnić algorytm klasyfikacji od regresji i algorytm liniowy od nieliniowego (którego nie mogę sprawdzić).

EDYCJA: Mimo że moje pierwotne pytanie dotyczy uniwersalnej reguły ogólnej, poproszono mnie o podanie dodatkowych informacji na temat mojego konkretnego problemu.

Dane: panel z każdym rzędem przypadającym na miesiąc kraju (łącznie około 30 000 wierszy, obejmujący ~ 165 krajów w ciągu ~ 15 lat).

Odpowiedź: 5 interesujących zmiennych binarnych (tj. Czy protest / zamach stanu / kryzys itp. Zdarzy się w tym miesiącu).

Cechy: ~ 400 zmiennych (połączenie ciągłego, kategorycznego, binarnego) wyszczególniających garść cech charakterystycznych dla 2 poprzednich miesięcy krajowych (można utworzyć dłuższe opóźnienie). Używamy tylko zmiennych opóźnionych, ponieważ celem jest przewidywanie.

Przykłady obejmują kurs walutowy, wzrost PKB (ciągły), poziom wolnej prasy (kategoryczny), demokrację, konflikt sąsiada (binarny). Należy pamiętać, że wiele z tych 400 funkcji to zmienne opóźnione.

Heisenberg
źródło

Odpowiedzi:

15

To szerokie pytanie bez prostej odpowiedzi. Na CMU prowadziłem 3-miesięczny kurs na ten temat. Obejmował takie kwestie, jak:

  1. Wykorzystanie prognoz do zrozumienia korelacji między zmiennymi a ogólną strukturą dystrybucji.
  2. Jak zbudować model regresji poprzez sukcesywne modelowanie reszt.
  3. Określanie, kiedy dodać nieliniowe warunki interakcji do modelu liniowego.
  4. Jak decydować między knn a drzewem decyzyjnym vs. klasyfikatorem logistycznym. Przejrzałem kilka zestawów danych UCI i pokazałem, jak można stwierdzić, który klasyfikator wygra przed ich uruchomieniem.

Niestety nie ma filmu ani podręcznika na kurs, ale wygłosiłem przemówienie podsumowujące główne punkty z zajęć. Nie znam żadnego podręcznika, który obejmuje ten sam grunt.

Tom Minka
źródło
Poświęcę dzień lub dwa na zapoznanie się z tymi pomocnymi materiałami, ale póki mam twoją uwagę: dlaczego nie mamy podręcznika / zasobu na ten temat? Czy to nie jest ważne, ponieważ kiedy ktoś angażuje się w projekt, musi pomyśleć o tym pytaniu?
Heisenberg
1
Ładne pytanie (+1) i odpowiedź (+1). @Heisenberg: Zgadzam się z Tomem, że nie widziałem konkretnego podręcznika na ten temat. Oprócz jego zasobów zasugerowałbym jednak dwa zasoby online (mimo że nie koncentrują się one na aplikacjach ML): 1) sekcja EDA Podręcznika statystyki inżynierskiej NIST; 2) interesujący artykuł prof. Andrew Gelmana na temat EDA dla złożonych modeli.
Aleksandr Blekh
0

Istnieje kilka rzeczy, które możesz sprawdzić w swoich danych.

1 - correlation between variables
2 - categorical variables or continuous variables?
3 - relation between number of samples and number of variables
4 - are the samples independent or is it a time series? 

Na podstawie tych punktów i rodzaju informacji, które chcesz wyodrębnić z danych, możesz zdecydować, jakiego algorytmu użyć.

Donbeo
źródło
Czy możesz wyjaśnić, w jaki sposób każda z tych 4 informacji wpływa na mój wybór algorytmu? Wiem tylko, że 2 decyduje o klasyfikacji vs regresji. Co z pozostałymi 3? (szczególnie # 4 - Mam dane panelowe 165 krajów w ciągu 10 lat)
Heisenberg
W 2- myślałem o zmiennych kategorialnych jako danych wejściowych. Ostateczna decyzja dotycząca algorytmu zależy od problemu, który próbujesz rozwiązać. Jest teraz sposób, aby wiedzieć o tym wcześniej. W 2- może drzewo decyzji może ci pomóc. W 3 musisz uważać na nadmierne dopasowanie. W 4- musisz zdecydować, jak ocenić swoją wydajność. Tylko jeśli wyjaśnisz konkretny problem, możemy pomóc Ci zdecydować, jakiego algorytmu użyć.
Donbeo
Zredagowałem swoje pytanie, aby uzyskać więcej informacji na temat mojego konkretnego problemu.
Heisenberg