Algorytm optymalizacji drzew decyzyjnych

16

tło

Binarne drzewo decyzja T jest zakorzenione drzewo gdzie każdy węzeł wewnętrzny (i korzeń) jest oznaczony przez indeks w j{1,...,n} taki sposób, że żadna ścieżka od korzenia do liścia nie powtarza indeksu, liście są oznaczone wyjściami w {A,B} , a każda krawędź jest oznaczona przez 0 dla lewego dziecka i 1 dla prawego dziecka. Aby zastosować drzewo do wejścia x :

  1. Zacznij od katalogu głównego
  2. jeśli jesteś przy liściu, wyprowadzasz etykietę liścia A lub B i kończysz
  3. Przeczytaj etykietę bieżącego węzła, jeśli x j = 0, to przejdź do lewego dziecka, a jeśli x j = 1, przejdź do prawego dziecka.jxj=0xj=1
  4. przejdź do kroku (2)

Drzewo jest używane jako sposób oceny funkcji, w szczególności mówimy, że drzewo reprezentuje całkowitą funkcję f, jeśli dla każdego x { 0 , 1 } n mamy T ( x ) = f ( x ) . Złożoność zapytania drzewa jest jego głębokością, a złożoność zapytania funkcji to głębokość najmniejszego drzewa, które ją reprezentuje.Tfx{0,1}nT(x)=f(x)


Problem

Dane binarne drzewo decyzyjne T generuje binarne drzewo decyzyjne T 'o minimalnej głębokości, tak że T i T' reprezentują tę samą funkcję.

Pytanie

Jaki jest najbardziej znany algorytm? Czy znane są jakieś dolne granice? Co jeśli wiemy, że ? A jeśli wymagamy tylko, aby T miała w przybliżeniu minimalną głębokość?depth(T)=O(logdepth(T))T


Naiwne podejście

Naiwne podejście jest podana , aby wyliczyć wszystkie rekursywnie binarne drzewa decyzyjne o głębokości d - 1 podczas testowania, jeśli oceniać na samo jak T . Wydaje się, że wymaga to O ( d 2 n n !d=depth(T)d1Tkroki (przy założeniu, że potrzebadkroków, aby sprawdzić, coT(x)ocenia dla dowolnegox). Czy istnieje lepsze podejście?O(d2nn!(nd)!)dT(x)x

Motywacja

To pytanie jest motywowane przez poprzednie pytanie dotyczące kompromisu między złożonością zapytania a złożonością czasową . W szczególności celem jest ograniczenie separacji czasowej dla wszystkich funkcji. Możemy stworzyć drzewo z algorytmu czasu optymalnego z czasem wykonania t , a następnie chcielibyśmy przekonwertować go na drzewo T ' dla algorytmu optymalnego dla zapytania. Niestety, jeśli t O ( n ! / ( N - d ) ! ) (I często d Θ ( n )TtTtO(n!/(nd)!)dΘ(n)) wąskim gardłem jest konwersja. Byłoby miło, gdybyśmy mogli zastąpić przez coś jak 2 d .n!/(nd)!2d

Artem Kaznatcheev
źródło
Znalezienie optymalnego drzewa decyzyjnego jest NP-zakończone. Nauczono mnie tego w klasach teorii decyzji i eksploracji danych, jednak były one oparte na notatkach i nie znam oryginalnego artykułu, który przedstawił wynik.
chazisop
@chazisop cool, dzięki. Nie jest dla mnie oczywiste, że znalezienie optymalnego drzewa decyzyjnego jest w NP, ale pomyślę o tym / poszukuję go jeszcze trochę. Czasami znajomość twierdzenia jest w połowie drogi do udowodnienia: D.
Artem Kaznatcheev
Myślę, że najwcześniejszym odniesieniem do tego jest: Niższe granice list uczenia się i drzew decyzyjnych. (Hancock i in. 1994) cs.uwaterloo.ca/~mli/dl.ps
Lev Reyzin
1
Laurent Hyafil i Ronald L. Rivest w Konstruowaniu optymalnych binarnych drzew decyzyjnych udowodnili, że znalezienie optymalnego drzewa decyzyjnego jest problemem NP-zupełnym (NP76 ). odnośnik: tutaj
antoine,

Odpowiedzi:

16

Mam 3 odpowiedzi, wszystkie dające nieco inne wyniki twardości.

Niech będzie jakąś funkcją.f:{0,1}n{0,1}

odpowiedź 1

Biorąc pod uwagę, drzewa decyzyjnego obliczeniową F i numer, jest NP-trudno powiedzieć, czy istnieje drzewo decyzyjne T ' obliczeniowej f wielkości co najwyżej tej liczby. TfTf( Zantema and Bodlaender '00 )

Odpowiedź 2

Biorąc pod uwagę drzewo decyzyjne obliczające f , NP jest trudne do przybliżenia najmniejszego drzewa decyzyjnego obliczającego f do dowolnego stałego współczynnika. Tff( Sieling '08 )

Odpowiedź 3

Niech będzie wielkość najmniejszego drzewa decyzyjnego obliczeniowej f . Biorąc pod uwagę drzewo decyzyjne T obliczające f , zakładając, że N P D T I M E ( 2 n ϵ ) dla niektórych ϵ < 1 , nie można znaleźć równoważnego drzewa decyzyjnego T o rozmiarze s k dla dowolnego k 0 .sfTfNPDTIME(2nϵ)ϵ<1Tskk0

Myślę, że tej silniejszej odpowiedzi (opartej na słabszym założeniu) można uzyskać na podstawie znanych wyników w teorii uczenia się algorytmów Occama dla drzew decyzyjnych za pomocą następującego argumentu:

  1. Czy można znaleźć drzewo decyzyjne zmiennych w czasie n log s , gdzie s jest najmniejszym drzewem decyzyjnym zgodnym z przykładami pochodzącymi z rozkładu (model PAC). ( Blum '92 ) nnlogss
  2. Przy założeniu, że przez pewien ε < 1 , nie można dowiedzieć się, PAC WIELKOŚĆ s drzewa decyzyjne według rozmiaru s k drzew decyzyjnych dla każdego k 0 . ( Alekhnovich i in. '07 )NPDTIME(2nϵ)ϵ<1sskk0

Te dwa wyniki wydają się sugerować wynik twardości dla twojego problemu. Z jednej strony (1) możemy znaleźć duże drzewo decyzyjne; Z drugiej strony (2), nie powinny być w stanie zminimalizować je, aby uzyskać równoważną jeden „mały”, o wymiarach , nawet jeśli taka istnieje od wielkości s .sks

Lew Reyzin
źródło
(Znalazłem twoją odpowiedź z tej odpowiedzi , która została opublikowana niecałą godzinę temu.)Wygląda na to, że „ ” można zastąpić „dodatnim ϵ , ponieważ zmniejszenie ϵ zmniejsza prawą stronę pojemnika .ϵ<1ϵϵ Gdzie także w tym dokumencie pokazano 2.?
Zobacz punkt 2 w streszczeniu tutaj: researchcher.watson.ibm.com/researcher/files/us-vitaly/…
Lev Reyzin
(pochodzący z tej samej odpowiedzi co Ricky Demer) czy mógłbyś bardziej szczegółowo opisać, w jaki sposób otrzymujesz „odpowiedź 3” z punktów 1. i 2.? Nie jestem zbyt obeznany z nauką teorii i trudno mi połączyć części ...
Marc
Ten problem spójności i możliwości uczenia się są ściśle powiązane za pomocą brzytwy Ockhama. Chodzi o to, że jeśli możesz znaleźć spójną funkcję z małego zestawu, możesz odnieść sukces w nauce PAC. Dlatego trudność wyniku uczenia się implikuje wynik „twardości spójności”. Nie jestem pewien, o ile więcej mogę wyjaśnić w komentarzu ...
Lew Reyzin
O ile rozumiem, algorytm wywołany dla 1. nie działa w czasie co byłoby konieczne, aby uzyskać sprzeczność z 2. (dokładny wynik w artykule, jeśli poprawnie go otrzymałem mówi, że nie ma algorytmu uczenia się czasu dla drzew decyzyjnych). Więc może być problem z twoją argumentacją. Poly(n,s)
Marc