Przykład tworzenia drzewa decyzyjnego

W tym przykładzie pokazano, jak zbudować drzewo decyzyjne w przykładowym zestawie danych ADULT.

Uwaga: Ta funkcja jest dostępna począwszy od produktu Db2® w wersji 11.5.4.

Przykładowe dane ADULT można podzielić na zestaw danych uczących i zestaw danych sprawdzania poprawności w następujący sposób:

CALL IDAX.SPLIT_DATA('intable=ADULT, traintable=ADULTTRAIN, testtable=ADULTTEST, id=ID, fraction=0.35');

Aby zbudować drzewo decyzyjne, można użyć ograniczeń dotyczących różnych parametrów drzewa. Najbardziej znane ograniczenia to głębokość drzewa, minimalna liczba rekordów na węzeł drzewa i minimalna poprawa zanieczyszczenia na węzeł drzewa.

Następujące wywołanie uruchamia algorytm w zestawie danych ADULTTRAIN i buduje drzewo decyzyjne.

CALL IDAX.GROW_DECTREE('model=adult_dect, intable=ADULTTRAIN, id=ID, target=MARITAL_STATUS, maxdepth=8, minsplit=10, minimprove=0.01');

Drzewo decyzyjne ma następujące atrybuty:

  1. Co najwyżej osiem poziomów w drzewie
  2. Co najmniej dziesięć rekordów na tryb bez liścia
  3. Węzły niezawierające liści o nieczystości co najmniej o 1% większe niż zanieczyszczenie ich węzłów podrzędnych

Aby przyciąć węzły przepasujące model, można zastosować model do zestawu danych sprawdzania poprawności.

W poniższym wywołaniu przedstawiono sposób czyszczenia węzłów nadpasających w drzewie decyzyjnym.

CALL IDAX.PRUNE_DECTREE('model=adult_dect, valtable=ADULTTEST');

Przycinając węzły, liczba węzłów w drzewie decyzyjnym zmniejsza się z 69 do 25 w przypadku modelu adult_dect.

Aby sprawdzić zbudowany model, należy użyć procedury składowanej PRINT_MODEL, jak pokazano w poniższym przykładzie:

CALL IDAX.PRINT_MODEL('model=adult_dect');

Procedura składowana PREDICT_DECTREE prognozuje wartość kolumny MARITAL_STATUS.

W poniższym wywołaniu przedstawiono sposób powiązania wartości z nowymi transakcjami.

CALL IDAX.PREDICT_DECTREE('model=adult_dect, intable=ADULTTEST, outtable=adult_dect_out');