Załóżmy, że analizujesz ogromny zestaw danych w wysokości miliardów obserwacji dziennie, gdzie każda obserwacja ma kilka tysięcy rzadkich i prawdopodobnie zbędnych zmiennych liczbowych i kategorialnych. Powiedzmy, że istnieje jeden problem regresji, jeden niezrównoważony problem klasyfikacji binarnej i jedno zadanie „dowiedzieć się, które predyktory są najważniejsze”. Myślałem o tym, jak podejść do problemu:
Dopasuj jakiś model predykcyjny do stopniowo coraz większych (losowych) podpróbek danych, aż:
Dopasowywanie i sprawdzanie poprawności modelu staje się trudne obliczeniowo (np. Nieuzasadnione spowolnienie na moim laptopie, R brakuje pamięci itp.), LUB
Wartości RMSE dla treningu i testu lub wartości precyzji / przywołania stabilizują się.
Jeśli błędy szkolenia i testu nie ustabilizowały się (1.), użyj prostszego modelu i / lub zaimplementuj wersje modelu z wieloma lub wieloma węzłami i zrestartuj od początku.
Jeżeli błędy w szkoleniu i testach ustabilizowały się (2.):
Jeśli (tzn. Nadal mogę uruchamiać algorytmy na ponieważ nie jest on jeszcze zbyt duży), spróbuj poprawić wydajność, rozszerzając przestrzeń funkcji lub używając bardziej złożonego modelu i uruchamiając od nowa.
Jeśli jest „duży”, a dalsze analizy są kosztowne, przeanalizuj znaczenie i koniec zmiennej.
Planuje używać pakietów, takich jak biglm
, speedglm
, multicore
i ff
na początku badań, a następnie użyć bardziej skomplikowane algorytmy i / lub na Wielonodowy (EC2), jak jest to konieczne.
Czy to brzmi jak rozsądne podejście, a jeśli tak, czy masz jakieś konkretne porady lub sugestie? Jeśli nie, co byś zamiast tego spróbował dla zestawu danych o tym rozmiarze?