To jest stara wersja strony!
Drzewa decyzyjne
Drzewo decyzyjne to graficzna metoda wspomagania procesu decyzyjnego, stosowana w teorii decyzji. Algorytm drzew decyzyjnych jest również stosowany w uczeniu maszynowym do pozyskiwania wiedzy na podstawie przykładów.
Przykład drzewa decyzyjnego
Przykładowe drzewo decyzyjne zostało przedstawione poniżej.
Pytanie: Jak Twoim zdaniem wyglądałoby drzewo decyzyjne dla zestawu danych poniżej, spróbuj narysować je na kartce.
Sky | AirTemp | Humidity | Wind | Water | Forecast | Enjoy |
sunny | warm | normal | strong | warm | same | yes |
sunny | warm | high | strong | warm | same | yes |
rainy | cold | high | strong | warm | change | no |
sunny | warm | high | strong | cool | change | yes |
cloudy | warm | normal | weak | warm | same | yes |
cloudy | cold | high | weak | cool | same | no |
Algorytm ID3
Algorytm ID3 służy do budowania drzew decyzyjnych.
Bazuje on na dwóch parametrach, które wyliczane są dla każdego nowego węzła drzewa decyzyjnego.
Parametry te to:
Entropia
Gdzie
- Aktualny zbiór danych dla którego liczona jest entropia (dla każdego węzła drzewa będzie to inny - odpowiednio mniejszy zbiór danych)
- zbiór klas w zbiorze
- Stosunek liczby elementów z klasy
do liczby elementów w zbiorze
Gdzie,
Algorytm ID3 w pseudokodzie
ID3 (Examples, Target_Attribute, Attributes)
Create a root node for the tree
If all examples are positive, Return the single-node tree Root, with label = +.
If all examples are negative, Return the single-node tree Root, with label = -.
If number of predicting attributes is empty, then Return the single node tree Root,
with label = most common value of the target attribute in the examples.
Otherwise Begin
A ← The Attribute that best classifies examples (highest Information Gain).
Decision Tree attribute for Root = A.
For each possible value, v_i, of A,
Add a new tree branch below Root, corresponding to the test A = v_i.
Let Examples(v_i) be the subset of examples that have the value v_i for A
If Examples(v_i) is empty
Then below this new branch add a leaf node with label = most common target value in the examples
Else below this new branch add the subtree ID3 (Examples(v_i), Target_Attribute, Attributes – {A})
End
Return Root
Pytanie Korzystając ze zbioru danych w tabeli z poprzedniej sekcji, policz entropię i przyrost wiedzy dla poszczególnych atrybutów.
Dla którego z atrybutów entropia jest największa?
Dla którego z atrybutów information gain jest największy?
Analizujac wyniki, czy dobrze wybrałeś(aś) korzeń drzewa w z poprzedniego pytania?
Wprowadzenie do Weki
Weka, to narzędzie opensource do data miningu.
Uruchom je wykonując polecenie
<code>
weka
<code>
Wczytywanie i analiza danych
Pobierz paczkę plików z danymi: data.tar.gz
Wprowadzenie do weki:
Histotgramy
Nieprzydatne cechy
Drzewa decyzyjne
J48 (i inne)
Zbudowanie drzewa do przykladu z zajec i do innych
User clasifier
ZeroR