Błędne dane w uczeniu maszynowym

18

Pracuję nad projektem Machine Learning z danymi, które są już (w dużym stopniu) stronnicze w wyniku selekcji danych.

Załóżmy, że masz zestaw zakodowanych reguł. Jak zbudować model uczenia maszynowego, aby go zastąpić, skoro wszystkie dane, których może użyć, to dane, które zostały już odfiltrowane według tych reguł?

Aby to wyjaśnić, wydaje mi się, że najlepszym przykładem jest ocena ryzyka kredytowego : zadaniem jest odfiltrowanie wszystkich klientów, którzy prawdopodobnie nie dokonają płatności.

  • Teraz jedyne (oznaczone) dane, które masz, pochodzą od klientów, którzy zostali zaakceptowani przez zestaw reguł, ponieważ dopiero po zaakceptowaniu zobaczysz, czy ktoś płaci, czy nie (oczywiście). Nie wiesz, jak dobry jest zestaw reguł i jak bardzo wpłyną one na dystrybucję płatną na niepłaconą. Ponadto masz nieznakowane dane od klientów, które zostały odrzucone, ponownie z powodu zestawu reguł. Więc nie wiesz, co by się stało z tymi klientami, gdyby zostali zaakceptowani.

Np. Jedną z zasad może być: „Jeśli wiek klienta <18 lat, to nie akceptuj”

Klasyfikator nie ma sposobu, aby dowiedzieć się, jak obsługiwać klientów filtrowanych według tych reguł. Jak klasyfikator powinien się tutaj uczyć wzorców?

Zignorowanie tego problemu doprowadziłoby do narażenia modelu na dane, z którymi nigdy wcześniej się nie spotkał. Zasadniczo chcę oszacować wartość f (x), gdy x jest poza [a, b] tutaj.

Laksan Nathan
źródło
8
Sposób, w jaki jest to ogólnie rozpatrywane w ocenie ryzyka kredytowego, polega na tym, że nie filtruje pewnej części wnioskodawców według zasad. Niewielka liczba kandydatów jest losowo przyjmowana i oznaczana jako taka.
Matthew Drury,
To naprawdę dobrze wiedzieć. Może uda mi się nawet skonfigurować takie rzeczy.
Laksan Nathan
1
Kiedy wyjaśniam ten problem osobom niebędącym ekspertami, rysuję chmurę (rzeczywistość) i wielokąt przybliżający chmurę (model). Wyświetlam błędy fałszywie dodatnie i fałszywie ujemne. Wizualnie jasne jest, że potrzebuję obu błędów, aby ulepszyć model, aby lepiej przybliżyć chmurę.
MSalters
Przygotowuję teraz prezentację. Ta analogia naprawdę się przydaje, dzięki!
Laksan Nathan
Nazywa się to dylematem poszukiwawczo-wydobywczym.
seanv507

Odpowiedzi:

12

Masz rację - nawet najlepsze modele mogą zawieść spektakularnie, jeśli rozkład danych poza próbą różni się znacznie od rozkładu danych, na których model został przeszkolony / przetestowany.

Myślę, że najlepsze, co możesz zrobić, to trenować model na posiadanych danych z etykietami, ale staraj się, aby model był interpretowalny. To prawdopodobnie oznacza tylko ograniczenie do prostych modeli. Następnie możesz spróbować uzasadnić, w jaki sposób reguły wyuczone przez Twój model mogą współdziałać z poprzednimi regułami, które masz, próbując oszacować, jak dobrze twój model może działać na niefiltrowanej populacji.

Na przykład - załóżmy, że Twój model stwierdza, że ​​w oznaczonym zestawie danych im młodszy klient, tym większe prawdopodobieństwo, że domyślnie. W takim przypadku uzasadnione może być założenie, że Twój model będzie działał dobrze, jeśli usuniesz poprzedni filtr „Jeśli wiek klienta <18 lat, to nie akceptuj”.

spłukać
źródło
4

Nie jestem pewien, czy całkowicie rozumiem to pytanie, ale o ile rozumiem, pytasz, jak wytrenować klasyfikatora, aby przewidywał próbki leżące poza domeną próbek, które już widział. Jest to, ogólnie rzecz biorąc i o ile wiem, niemożliwe. Teoria uczenia maszynowego opiera się na idei „empirycznej minimalizacji ryzyka”, która sprowadza się do założenia, że ​​twój zestaw treningowy jest dobrym przybliżeniem twojego prawdziwego rozkładu na próbki i etykiety. Jeśli założenie to zostanie naruszone, tak naprawdę nie ma żadnych gwarancji.

Wspominasz o danych nieznakowanych - nie wiem, czy to rozwiązałoby twój problem, ale nauka częściowo nadzorowana ma wiele metod uczenia się klasyfikatorów na podstawie zarówno danych oznaczonych, jak i nieznakowanych, i możesz rozważyć ich przeanalizowanie (na przykład , transdukcyjne SVM).

bibliolityczny
źródło
Zgadzam się, że nie ma „rozwiązania” dla mojego problemu. Ale może jest kilka praktycznych porad, jak pracować z tego rodzaju problemami.
Laksan Nathan
2

Twoje zasady mogą dać ci sposób na zwiększenie danych . Skopiuj próbkę dodatnią, zmień wiek na 17, a następnie oznacz ją jako próbkę ujemną.

Ta procedura niekoniecznie będzie trywialna lub przydatna dla wszystkich zestawów danych. Pracuję z danymi NLP i trudno jest dobrze sobie radzić w tej dziedzinie. Na przykład, jeśli masz inne cechy skorelowane z wiekiem, możesz skończyć z nierealistycznymi próbkami. Zapewnia to jednak możliwość wystawienia systemu na działanie czegoś takiego jak próbki, które nie znalazły się w zbiorze danych.

Jim K.
źródło
Dodanie szumu do danych z pewnością jest sposobem na rozwiązanie tego problemu. Ale tylko w nielicznych przypadkach, w których dane klienta można łatwo sklasyfikować. Nie zrobiłbym tego w takim stopniu, że ponownie spowodowałoby to „stronnicze” wyniki wiedzy w dziedzinie - kolektywne / subiektywne postrzeganie, które prowadziłoby do retrospektywnego zderzenia rzekomej wiedzy.
Laksan Nathan
2

Jedną rzeczą, która działała dla nas w podobnej sytuacji, jest trochę uczenia się wzmacniającego (eksploruj i wykorzystuj). Oprócz modelu opartego na regułach uruchomiliśmy eksploratora, który z niewielkim prawdopodobieństwem zmieniłby odpowiedź modelu, więc w sporadycznych przypadkach, gdy model nie poleciłby karty 17-latkowi, eksplorator wywróciłby model decyzja i wydanie karty. Na podstawie tych sporadycznych przypadków wygenerowałbyś dane do nauki dla przyszłego modelu uczenia się, w którym można by podjąć decyzję o zaleceniu kart dla 17-latków w oparciu o to, czy te, które zostały wydane 17-latkom przez odkrywcę, nie są domyślne, więc możesz buduj systemy, które mogą działać poza uprzedzeniami istniejącego modelu.

RandomStats
źródło
Ponieważ te sporadyczne przypadki wiążą się z pewnym ryzykiem finansowym, byłoby to podejście krok po kroku, potencjalnie ujawniające nowy wzorzec w dłuższej perspektywie. Zasadniczo kompromis eksploracja-eksploatacja, jak o tym wspominasz. Z pewnością zostanie to uwzględnione w projekcie.
Laksan Nathan
2

Z praktycznego punktu widzenia trudno / nierozsądnie jest poprosić model o przewidzenie czegoś w przypadkach, które nie są możliwe w obecnym systemie (brak darmowego lunchu).

Jednym ze sposobów obejścia tego problemu jest dodanie losowości do obecnego (wdrożonego) systemu, np. Dodanie możliwości ominięcia (niektórych) reguł z małym, kontrolowanym prawdopodobieństwem (a zatem przewidywalnym kosztem).

Kiedy już uda ci się przekonać osoby odpowiedzialne za system do zrobienia tego, możesz użyć metod oceny niezgodnej z polityką, takich jak próbkowanie ważności, aby zadać pytania „co-jeśli”. Np. Jakie byłoby spodziewane ryzyko kredytowe, gdybyśmy pozwolili ludziom, którzy są obecnie zaniechani przepisami, wziąć kredyt. Można nawet zasymulować wpływ twojego (tendencyjnego) modelu prognostycznego na tę populację. Dobrym odniesieniem do tego rodzaju metod jest praca Bottou na temat alternatywnego uczenia się i wnioskowania.

oDDsKooL
źródło
Niezłe referencje, dzięki. Poświęcę czas, aby przejść przez to.
Laksan Nathan
1

Klasyczna odpowiedź statystyczna jest taka, że ​​jeśli proces selekcji jest w danych i opisany przez model lub selekcja jest losowa, wówczas model parametryczny uwzględnia to poprawnie. Patrz artykuł Donalda Rubina Wnioskowanie i brakujące dane (1976). Musisz uwzględnić mechanizm wyboru danych w swoim modelu. Jest to dziedzina, w której wnioskowanie parametryczne powinno być lepsze niż samo uczenie maszynowe.

alegarra
źródło
1

Jest to podobne do dylematu życia pozagrobowego: jaki stosunek dobrych i złych uczynków (danych) jest wystarczający, aby dostać się do nieba zamiast do piekła (klasy), po śmierci (filtr!). Tutaj śmierć służy jako filtr, prowadząc do brakujących wartości w kierunku nadzorowanego programu uczenia się.

Chcę rozróżnić między problemem braku wartości a problemem „stronniczych danych”. Nie ma czegoś takiego jak stronnicze dane, istnieje coś takiego jak „stronniczy model” wyjaśniający wspomniane dane, ale same dane nie są stronnicze, po prostu ich brakuje. Jeśli brakujące dane są w znaczący sposób skorelowane z danymi możliwymi do zaobserwowania, to jest całkowicie możliwe wytrenowanie obiektywnego modelu i osiągnięcie dobrych wyników predykcyjnych.

Jeśli brakujące dane są całkowicie nieskorelowane z danymi obserwowalnymi, to jest to przypadek „nie wiesz, czego nie wiesz”. Nie możesz używać ani nadzorowanych, ani nadzorowanych metod uczenia się. Problem leży poza sferą danych.

Dlatego, dla sensownego rozwiązania, załóżmy, że brakujące dane są skorelowane z danymi obserwowalnymi. Wykorzystamy wspomnianą korelację.

Istnieje kilka algorytmów eksploracji danych, które próbują rozwiązać taki problem. Możesz wypróbować metody Ensemble, takie jak Bagging-n-Boosting lub algorytmy „częstego wyszukiwania wzorców”, takie jak Apriori i FP-growth. Możesz także badać metody w Solidnej Statystyki.

Dynamiczny Gwiezdny Pył
źródło