Przykład:

Definicje

Drzewem decyzyjnym nazywamy spójny skierowany(posiada kierunek strzałki) graf (zbiory złożone z wierzchołków i krawędzi) acykliczny (nie występują cykle / zamknięte ścieżki / jednokierunkowy).

Drzewo decyzyjne jest drzewem, w którym węzły odpowiadają testom przeprowadzanym na wartościach atrybutów reguł, gałęzie są możliwymi wynikami takich testów zaś liście reprezentują część decyzyjną.

Drzewo to graf bez cykli (pętli), w którym istnieje tylko jedna ścieżka między dwoma różnymi węzłami.

To drzewo reprezentujące pewien proces podziału zbioru obiektów na jednorodne klasy. Jego wewnętrzne węzły opisują sposób dokonania tego podziału, a liście odpowiadają klasom, do których należą obiekty. Z kolei krawędzie drzewa reprezentują wartości cech, na podstawie których dokonano podziału.

Schemat

Problemy

  • Od jakiego atrybutu zacząć? / Jakie atrybuty umieszczać w węzłach?
  • Kiedy zaprzestać rozbudowywać drzewo?
  • Co z atrybutami o zbyt dużej liczbie wartości lub atrybutami ilościowymi?
  • Jak uwzględniać dane sprzeczne, brakujące lub błędne?

Estymacja błędu klasyfikowania

n – liczba wszystkich klasyfikowanych obiektów

b – liczba błędnie sklasyfikowanych obiektów

Błąd klasyfikowania:

Dokładność klasyfikowania:

1 – e

Trening i testowanie

  • Zbiór dostępnych krotek(przykładów, obserwacji, próbek) dzielimy
    na dwa zbiory: zbiór treningowy (uczący) 2/3 i zbiór testowy (walidacyjny) 1/3
  • Model klasyfikacyjny (klasyfikator) jest budowany dwu-etapowo:
    – Uczenie (trening) – klasyfikator jest budowany w oparciu o zbiór treningowy danych
    – Testowanie – dokładność (jakość) klasyfikatora jest weryfikowana w oparciu o zbiór testowy danych

Podział cech (atrybutów)

  • Ilościowe – numeryczne, np. liczba języków obcych, waga w kg, wzrost w cm, wiek w latach etc.
  • Jakościowe (nominalne) to cechy nienumeryczne, nie da się z nich policzyć wartości średniej, ale da się np. powiedzieć która wartość tej cechy występuje najczęściej, np. waga w kategoriach {niska, średnia, wysoka}, kolor oczu, wykształcenie, płeć z wartościami {kobieta, mężczyzna}

Przykład implementacji w Python

from sklearn import tree

dtc_clf = tree.DecisionTreeClassifier()
dtc_clf = dtc_clf.fit(X,Y)
dtc_prediction = dtc_clf.predict(test_data)