Jakie algorytmy uczenia maszynowego są dobre do oszacowania, które funkcje są ważniejsze?

12

Mam dane z minimalną liczbą funkcji, które się nie zmieniają, oraz kilkoma dodatkowymi funkcjami, które można zmienić i mają duży wpływ na wynik. Mój zestaw danych wygląda następująco:

Funkcje to A, B, C (zawsze obecne) oraz D, E, F, G, H (czasami obecne)

A = 10, B = 10, C = 10                  outcome = 10
A = 8,  B = 7,  C = 8                   outcome = 8.5
A = 10, B = 5,  C = 11, D = 15          outcome = 178
A = 10, B = 10, C = 10, E = 10, G = 18  outcome = 19
A = 10, B = 8,  C = 9,  E = 8,  F = 4   outcome = 250
A = 10, B = 11, C = 13, E = 8,  F = 4   outcome = 320
...

Chcę przewidzieć wartość wyniku, a kombinacja dodatkowych parametrów jest bardzo ważna dla ustalenia wyniku. W tym przykładzie obecność E i F prowadzi do dużego wyniku, podczas gdy obecność E i G nie. Jakie algorytmy lub techniki uczenia maszynowego są dobre, aby uchwycić to zjawisko?

Benjamin Crouzier
źródło
Czy przez „czasami obecny” masz na myśli, że znasz ich wartość tylko przez jakiś czas? Lub że wiadomo, że w większości przypadków nie odgrywają roli? A może coś innego?
David J. Harris,
@ DavidJ.Harris Przez „czasami obecny” mam na myśli, że konkretny przykład szkolenia nie posiada właściwości. To tak, jakby było równe zero. W moim problemie wszystkie moje funkcje będą liczbami dodatnimi w danym zakresie (na przykład od 5 do 15 lub od 100 do 1000).
Benjamin Crouzier
1
warto spojrzeć na ten link eren.0fees.net/2012/10/22/…
erogol

Odpowiedzi:

14

Jest to jeden z głównych obszarów badań w uczeniu maszynowym i jest znany jako Wybór funkcji .

Ogólnie rzecz biorąc, jedynym sposobem, aby powiedzieć, jaki jest najlepszy podzbiór cech (w przypadku danych wejściowych do jakiegoś modelu predykcyjnego, który może je łączyć), jest wypróbowanie wszystkich możliwych podzbiorów. Jest to zwykle niemożliwe, dlatego ludzie próbują próbować przestrzeń podzbiorów cech za pomocą różnych heurystyk (patrz artykuł na temat niektórych typowych podejść).

Bitowe
źródło
3

Z mojego zrozumienia, szukasz miary o różnym znaczeniu. Występują w kilku odmianach opartych na kilku różnych podejściach teoretycznych, ale wszystkie mają silne powiązania z metodami stosowanymi do optymalizacji algorytmu, o którym mówisz. Zasadniczo każdy algorytm uczenia maszynowego będzie miał kanoniczną metodę optymalizacji; propagacja wsteczna dla sieci neuronowych, sekwencyjna optymalizacja minimum dla SVM, różne kryteria informacyjne i testy istotności statystycznej dla drzew decyzyjnych, w tym istotność chi kwadrat lub zanieczyszczenie gini. Oczywiście dla każdego z algorytmów często proponowane są inne nowatorskie metody optymalizacji.

Te metody optymalizacji dla każdego algorytmu zasadniczo definiują zmienne znaczenie dla danego modelu. Zasadniczo szukasz przybliżenia lub interpretowalnej reprezentacji wyników tego etapu optymalizacji, który podejmuje algorytm. Jest to jednak problematyczne z kilku powodów.

  1. Trudność w określeniu wpływu danej zmiennej na wybór formy modelu, biorąc pod uwagę, że selekcja jest często procesem stochastycznym. Zmienne w pewnym stopniu wpływają na wybór modelu, tak że nawet jeśli zmienna nie jest ważna dla ostatecznej prognozy w modelu , może mieć kluczowe znaczenie dla samej formy modelowej. Biorąc pod uwagę, że generowanie samego modelu jest często stochastyczne (zoptymalizowane przy użyciu optymalizacji roju cząstek lub metody workowania itp.), Trudno jest dokładnie zrozumieć, w jaki sposób dana zmienna mogła ukształtować swoją formę.

  2. Trudność w wyodrębnieniu znaczenia pojedynczej zmiennej, biorąc pod uwagę, że może ona być ważna tylko w połączeniu lub interakcji z inną zmienną.

  3. Niektóre zmienne mogą być ważne tylko dla niektórych obserwacji. Brak znaczenia dla innych obserwacji może mylić pomiar ogólnej ważności przez uśrednienie prawdziwej różnicy.

Trudno jest również uzyskać natychmiast interpretowalną metrykę o zmiennym znaczeniu dokładnie taką, jak zdefiniowano w modelu, ponieważ może ona nie wygenerować pojedynczej liczby (szczególnie w przypadku workowania). Zamiast tego w tych przypadkach istnieje rozkład ważności dla każdej zmiennej.

Jednym ze sposobów rozwiązania tych problemów może być zaburzenie. Jest to sposób na przeanalizowanie ostatecznego modelu przez dodanie losowego szumu do zmiennych, a następnie sprawdzenie, jak to wpływa na wyniki. Zaletą jest to, że pozwala ona na ustalenie, które zmienne są najważniejsze empirycznie poprzez symulację - odpowiedź na pytanie, które zmienne zniszczyłyby przewidywanie najbardziej, gdyby zostały usunięte. Wadą jest to, że istnieje duża szansa, że ​​nawet jeśli zmienne zostaną usunięte / zaburzone, model (jeśli zostanie ponownie przeszkolony) może wykorzystać inne zmienne do zrekonstruowania ich działania, co oznacza, że ​​miara „zmiennego znaczenia”, którą wyprowadzasz tylko naprawdę wskazuje znaczenie w wyuczonym modelu, ale nie ogólne znaczenie we wszystkich możliwych modelach.

analityczny
źródło
3

Jak wspomina @Bitwise, wybór lub ekstrakcja funkcji jest sama w sobie ogromnym obszarem badań i istnieje niezliczona ilość sposobów, aby to zrobić.

Moim zdaniem wszystkie pozostałe odpowiedzi są prawidłowe, ale ostatecznie prawdopodobnie polubisz najbardziej i wybierzesz metodę najbardziej intuicyjną dla Ciebie i najlepiej zrozumiałą. Nadal dodałbym dwie możliwe opcje.

Regresja wielokrotna jest prawdopodobnie najstarszą techniką. Chodzi o dopasowanie modelu do opisu odpowiedzi z predyktorów i zachowanie tylko predyktorów, które mają duży wpływ na odpowiedź (duży współczynnik proporcjonalności). Tutaj będzie prawdopodobnie musiał przekodować nieobecność D, E, F i G, D=0, E=0, F=0, G =0lub coś podobnego.

Inną techniką, która nigdy nie zyskała popularności, na którą zasługuje, jest analiza współwładności (wariant analizy kanonicznej ). O ile mi wiadomo, nie ma jego implementacji i trzeba by zacząć od zera ( na przykład tam ). Jest to metoda liniowa, która wyszukuje najlepszą liniową kombinację cech, która pasuje do twoich wyników. Ten post na blogu pokazuje przykład, jak można z niego korzystać.

gui11aume
źródło
2

Korzystam z pozyskiwania informacji (znanej również jako informacja wzajemna). Mój doradca i ja regularnie używamy podejścia opisanego w tym artykule Cohen, 2008 do analizy cech do klasyfikacji według SVM.

Kyle.
źródło
2

Losowe lasy mogą być bardzo przydatne do tego, co chcesz zrobić. Pakiet randomForest dla R ma funkcję, która oblicza 2 miary ważności. Ma także możliwość tworzenia wykresów częściowej zależności, dzięki czemu można wizualnie sprawdzić marginalny wpływ predyktora na odpowiedź.

dcl
źródło
1

Jestem tu paskudny, ale z jakiegoś powodu. Czy zastanawiałeś się nad zastąpieniem niejednolitych obserwacji zmienną wskaźnikową obecną | not_present? Z twojego opisu wygląda na to, że ta wartość wskaźnika jest ważną cechą, ponieważ obecność czynników od D do H nie ma charakteru informacyjnego: to znaczy, że ich obecność wskazuje tylko na większe wyniki.

jcb
źródło