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)