Gdy odkrywam uczenie maszynowe, widzę różne interesujące techniki, takie jak:
- automatycznie dostraja algorytmy za pomocą technik takich jak
grid search
, - uzyskać bardziej dokładne wyniki dzięki połączeniu różnych algorytmów tego samego „typ”, to jest
boosting
, - uzyskać bardziej dokładne wyniki dzięki połączeniu różnych algorytmów (ale nie ten sam rodzaj algorytmów), to
stacking
, - i prawdopodobnie dużo więcej muszę jeszcze odkryć ...
Moje pytanie jest następujące: są wszystkie te kawałki. Ale czy można je połączyć, aby stworzyć algorytm, który pobiera oczyszczone dane i daje dobre wyniki, wykorzystując najlepsze ze wszystkich technik? (Oczywiście będzie to prawdopodobnie mniej wydajne niż profesjonalny naukowiec danych, ale będzie lepszy ode mnie!) Jeśli tak, czy masz przykładowe kody lub znasz ramy, które mogą to zrobić?
EDYCJA: Po kilku odpowiedziach wydaje się, że trzeba trochę zawęzić. Weźmy przykład, mamy jedną kolumnę z danymi kategorycznymi, nazwijmy ją y
i chcemy przewidzieć na podstawie danych liczbowych, X
które są albo manekinami, albo rzeczywistymi danymi liczbowymi (wysokość, temperatura). Zakładamy, że czyszczenie zostało wykonane wcześniej. Czy istnieje algorytm, który może pobierać takie dane i generować prognozy? (testując wiele algorytmów, dostosowując je, wzmacniając itp.) Jeśli tak, to czy jest on wydajny obliczeniowo (czy obliczenia są wykonywane w rozsądnym czasie, jeśli porównamy go z normalnym algorytmem) i czy masz przykład kodu?
źródło
auto.arima
(zforecast
biblioteki) mogą być lepsze niż ludzie - Rob Hyndman kilkakrotnie wspominał w swoich prezentacjach. Są więc obszary, w których z powodzeniem stosuje się pewnego rodzaju „automatyczne uczenie się”.Odpowiedzi:
Jeśli wiesz z góry, jakie dane będziesz wprowadzać („to miesięczna sprzedaż CPG, z cenami i znacznikami promocji, a ja chcę prognozę punktową”), więc możesz z wyprzedzeniem dostroić konfigurację, prawdopodobnie będzie to możliwe i już zrobione, zobacz różne „systemy ekspertów” dla niektórych konkretnych zadań.
Jeśli szukasz czegoś, co może zabrać dowolny rodzaj danych i zrobić z nim „coś pożytecznego” („och, tutaj mam rozpoznać pismo odręczne i wyprowadzić kody pocztowe, i tam powinienem wykryć oszustwo, a ten plik wejściowy oczywiście to zadanie oceniania zdolności kredytowej ”), nie, nie sądzę, że wydarzy się to za długo.
Przepraszamy za odpowiedź opartą na opiniach na pytanie, które może zostać zamknięte jako pytanie oparte na opinii.
EDYCJA, aby odpowiedzieć na edytowane pytanie:
To brzmi jak coś, w czym Losowe Lasy są naprawdę całkiem dobre. Potem znowu, „ogólnego przeznaczenia” algorytm jak terminali, prawdopodobnie nigdy nie pokazał algorytm, który został dostrojony do określonego typu znany wcześniej, ryzyko np odręczny cyfry lub domyślnych kredytowej.y
źródło
To, co opisujesz , istnieje już do pewnego stopnia, na przykład w AutoWEKA , i jest aktywnie badane (np. Wyzwania takie jak AutoML Chalearna ).
Jest to zwykle uwzględniane w podpolu optymalizacji hiperparametrów. Pakiety oprogramowania, takie jak Optunity , Hyperopt i ParamILS, mogą być używane do automatycznej optymalizacji hiperparametrów dla danego podejścia i wyboru, które podejście będzie najlepsze. To powiedziawszy, takie problemy z optymalizacją nie są trywialne i zwykle zajmuje dużo czasu, aby automatycznie uzyskać najlepszy model (lub blisko niego).
Przykład użycia Optunity do automatycznego określania najlepszego algorytmu uczenia się i optymalizacji jego hiperparametrów można znaleźć na stronie http://optunity.readthedocs.org/en/latest/notebooks/notebooks/sklearn-automated-classification.html
źródło
Postępy w tuningu hiperparametrów i modelach zespołów zabierają wiele „sztuki” z budowania modeli. Istnieją jednak dwa ważne aspekty budowania modelu, z którymi strojenie hiperparametrów i zestawy nie radzą sobie i nie pozwalają znaleźć najlepszego możliwego modelu.
Po pierwsze, niektóre typy algorytmów lepiej modelują określone typy danych. Na przykład, jeśli występują interakcje między zmiennymi, model addytywny ich nie znajdzie, ale drzewo decyzji. Znajomość zachowania modeli w różnych zestawach danych i wybranie odpowiedniego zestawu danych może wymagać wiedzy o domenie, aby znaleźć najlepszy algorytm modelowania.
Po drugie, inżynieria obiektów i ekstrakcja obiektów to prawdziwa „sztuka” modelowania budowania. Twoje pytanie zakłada, że zestaw danych jest już przygotowany. Ale nie powinieneś zakładać, że zestaw danych stanowi najlepszą możliwą reprezentację tego, co próbujesz wymodelować. To jest zawsze otwarte pytanie. W wielu przypadkach, gdy zestaw danych jest złożony, możesz opracowywać funkcje przez cały dzień, ale ryzykujesz wrzuceniem do algorytmu coraz więcej szumów. Aby wiedzieć, które funkcje dodać, musisz wiedzieć, które funkcje mają sens z perspektywy statystycznej, a które z punktu widzenia eksperta w danej dziedzinie.
Z tych dwóch powodów dochodzę do wniosku, że nie, nie będziesz w stanie znaleźć algorytmu, który automatycznie znajdzie najlepszy możliwy model. Dlatego też sceptycznie podchodzę do sprzedawców oprogramowania, które zastąpią zapotrzebowanie na naukowców zajmujących się danymi.
Jeśli jednak zawężasz ambicje znalezienia najlepszego modelu na podstawie stałego zestawu modeli o optymalnych parametrach hiperparametrów, gdzie „najlepszy” jest zdefiniowany jako najwyższa dokładność predykcyjna w zestawie treningowym, to tak, jest to możliwe.
Sprawdź
caret
pakietR
jako przykład automatycznego dostrajania modeli.caret
wykorzystuje wyszukiwanie siatki, które ma wady i buduje tylko jeden model na raz. Istnieją jednak funkcje umożliwiające porównywanie modeli i wygodne opakowania dla długiej listy modeli z wielu różnychR
pakietów.źródło
Zależy od kogo zapytasz.
Niedawno usłyszałem przemówienie Scotta Goldera w Context Relevant . Ich produkt jest zasadniczo robotem do wybierania cech i modeli. Podstawowym modelem bazowym jest regresja logistyczna, ale system zasadniczo korzysta z uczenia maszynowego, aby ustalić właściwą kombinację wyboru funkcji, redukcji wymiarów, regularyzacji itp. W celu wygenerowania dokładnych prognoz. To była bardzo imponująca rozmowa, a wszystkie szczegóły są bardzo zastrzeżone. Najwyraźniej ich klientami są duże firmy finansowe, a system może obsługiwać dowolnie ogromne zbiory danych.
Wydaje się, że przynajmniej kilka osób uważa, że zautomatyzowana nauka danych już tu jest, przynajmniej w przypadku niektórych aplikacji. A niektóre z tych osób (klienci Kontekstu Odnośnego) najwyraźniej płacą przez nos za dostęp do nich.
źródło
Nie, to nie sen. Wdrożyliśmy to (połączenie wszystkich wymienionych przez ciebie technik, w tym zestawionych zestawów) w bibliotece uczenia maszynowego H2O . Możesz przeczytać więcej na ten temat i znaleźć przykłady kodu w R i Python tutaj .
źródło