Drzewa decyzyjne a sieci neuronowe

20

Wdrażam strukturę uczenia maszynowego, aby próbować przewidywać oszustwa w systemach finansowych, takich jak banki itp. Oznacza to, że istnieje wiele różnych danych, które można wykorzystać do szkolenia modelu, np. numer karty, nazwa posiadacza karty, kwota, kraj itp.

Mam problem z ustaleniem, która struktura jest najlepsza dla tego problemu. Mam pewne doświadczenie z drzewami decyzyjnymi, ale obecnie zacząłem pytać, czy sieć neuronowa byłaby lepsza dla tego rodzaju problemu. Także jeśli jakakolwiek inna metoda byłaby najlepsza, proszę oświecić mnie.

Jakie są zalety i wady każdej struktury i która struktura byłaby najlepsza dla tego problemu?

Nie jestem również pewien tego faktu, ale myślę, że drzewa decyzyjne mają wielką przewagę nad sieciami neuronowymi pod względem szybkości wykonywania. Jest to ważne, ponieważ szybkość jest również kluczowym czynnikiem w tym projekcie.

Topo
źródło

Odpowiedzi:

24

Istnieje wiele różnic między nimi, ale w praktyce należy wziąć pod uwagę trzy główne kwestie: szybkość, interpretowalność i dokładność.

Drzewa decyzyjne

  • Powinien być szybszy po przeszkoleniu (chociaż oba algorytmy mogą trenować powoli, w zależności od dokładnego algorytmu i ilości / wymiarów danych). Dzieje się tak, ponieważ drzewo decyzyjne z natury „wyrzuca” funkcje wejściowe, które nie są dla niego przydatne, podczas gdy sieć neuronowa wykorzysta je wszystkie, chyba że dokonasz wyboru niektórych funkcji jako etapu wstępnego przetwarzania.
  • Jeśli ważne jest, aby zrozumieć, co robi model, drzewa są bardzo interpretowalne.
  • Tylko funkcje modelu, które są równoległymi do osi podziałami danych, co może nie mieć miejsca.
  • Prawdopodobnie chcesz mieć pewność przycinania drzewa, aby uniknąć nadmiernego dopasowania.

Sieci neuronowe

  • Wolniej (zarówno w przypadku szkolenia, jak i klasyfikacji) i mniej interpretowalny.
  • Jeśli twoje dane dotrą do strumienia, możesz dokonywać aktualizacji przyrostowych ze stochastycznym spadkiem gradientu (w przeciwieństwie do drzew decyzyjnych, które wykorzystują z natury algorytmy uczenia wsadowego).
  • Może modelować więcej dowolnych funkcji (interakcje nieliniowe itp.), A zatem może być bardziej dokładny, pod warunkiem, że istnieje wystarczająca ilość danych treningowych. Ale może być również podatny na nadmierne dopasowanie.

Możesz spróbować wdrożyć oba i przeprowadzić pewne eksperymenty na danych, aby sprawdzić, które z nich są lepsze, i sprawdzić czasy działania. Możesz też użyć czegoś takiego jak interfejs Weka GUI z reprezentatywną próbką danych, aby przetestować obie metody.

Może się również zdarzyć, że użycie algorytmów „workowania” lub „wzmacniania” w drzewach decyzyjnych poprawi dokładność przy jednoczesnym zachowaniu pewnej prostoty i szybkości. Krótko mówiąc, jeśli szybkość i interpretacja są naprawdę ważne, prawdopodobnie drzewa są od czego zacząć. W przeciwnym razie będzie to zależeć, a będziesz miał do wykonania eksplorację empiryczną.

bełkotać
źródło
Wydaje się, że wiesz o tym trochę, czy masz jakieś doświadczenie z sieciami bayesowskimi lub innymi metodami uczenia maszynowego, które mogą pomóc w rozwiązaniu tego problemu?
Topo
1
Nie miałem wiele do czynienia z pełnymi sieciami bayesowskimi, głównie naiwnymi Bayesami i modelami tematycznymi. Nigdy nie pracowałem nad problemami z wykrywaniem oszustw, ale naiwne Bayesa lub regresja logistyczna również mogą być rozsądnym podejściem.
burr