W tej jednostce poznasz najprostszy i najczęściej stosowany algorytm splittera, który tworzy warunki w formie w tych ustawieniach:
- Zadanie binarnej klasyfikacji
- Przykłady bez brakujących wartości
- Bez wstępnie obliczonego indeksu w przypadku przykładów
Załóżmy, że mamy zbiór przykładów z cechą liczbową i etykietą binarną „pomarańczowy” i „niebieski”. Formalnie zbiór danych można opisać w ten sposób:
gdzie:
- to wartość cechy liczbowej w (zbiorze liczb rzeczywistych).
- to binarna wartość etykiety klasyfikacji w skali {pomarańczowy, niebieski}.
Naszym celem jest znalezienie wartości progowej (progres) takiej, aby podział przykładów na grupy i zgodnie z warunkiem poprawiał rozdzielność etykiet, np. więcej przykładów „pomarańczowych” w grupie i więcej przykładów „niebieskich” w grupie .
Entropia Shannona to miara nieuporządkowania. Etykieta binarna:
- Entropia Shannona osiąga maksimum, gdy etykiety w przykładach są zrównoważone (50% niebieskiego i 50% pomarańczowego).
- Entropia Shannona jest minimalna (wartość 0), gdy etykiety w przykladach są czyste (100% niebieski lub 100% pomarańczowy).
Rysunek 8. 3 poziomy entropii.
Formalnie chcemy znaleźć warunek, który zmniejsza ważoną sumę entropii rozkładu etykiet w i . Odpowiadająca temu wartość to wzrost informacji, który jest różnicą między entropią i entropią {,}. Ta różnica nazywana jest wzrostem informacji.
Rysunek poniżej przedstawia niekorzystny podział, w którym entropia pozostaje wysoka, a zysk informacji jest niski:
Rysunek 9. Nieudany podział nie zmniejsza entropii etykiety.
Natomiast na rysunku poniżej widać lepszy podział, w którym entropia jest niska (a informacyjność – wysoka):
Rysunek 10. Dobry podział zmniejsza entropię etykiety.
Formalnie:
gdzie:
- to zyski informacyjne z podziału zbioru na zbiory i .
- to entropia zbioru przykładów .
- to liczba elementów w zbiorze .
- to wartość progowa.
- to dodatnia wartość etykiety, np. „niebieski” w przykładzie powyżej. Wybranie innej etykiety jako „etykiety pozytywnej” nie zmienia wartości entropii ani zysku informacyjnego.
- to stosunek wartości dodatnich etykiet w przypadku przykładów .
- to zbiór danych (zdefiniowany wcześniej w tym module).
W tym przykładzie rozważamy zbiór danych do klasyfikacji binarnej z jedną cechą numeryczną . Na rysunku poniżej dla różnych wartości progu (oś X) przedstawiono:
- Histogram funkcji .
- Stosunek przykładów „niebieski” w zbiorach , i zgodnie z wartością progową.
- entropia w , i ;
- Zysk informacji, czyli różnica entropii między a {,} zważona przez liczbę przykładów.
Rysunek 11. 4 wykresy progów.
Te wykresy przedstawiają:
- Wykres „częstotliwość” pokazuje, że obserwacje są stosunkowo dobrze rozłożone, a ich skoncentrowanie się na wartościach od 18 do 60. Szeroki zakres wartości oznacza, że istnieje wiele potencjalnych podziałów, co jest korzystne dla trenowania modelu.
Stosunek etykiet „niebieskich” w zbiorze danych wynosi ok. 25%. Wykres „stosunek niebieskiej etykiety” pokazuje, że w przypadku wartości progowych od 20 do 50:
- Zbiór zawiera nadmiar przykładów etykiet „niebieskich” (do 35% dla progu 35).
- Zestaw zawiera uzupełniający deficyt przykładów etykiet „niebieskich” (tylko 8% dla progu 35).
Zarówno wykres „stosunek niebieskich etykiet” (ang. „ratio of blue labels”), jak i wykres „entropii” (ang. „entropy”) wskazują, że w tym zakresie progu etykiety można stosunkowo dobrze rozdzielić.
To spostrzeżenie potwierdza wykres „wzrost informacji”. Widzimy, że maksymalny przyrost informacji uzyskujemy przy t ≈ 28, a jego wartość wynosi ~0,074. Dlatego warunek zwracany przez splitter będzie miał postać .
Zysk informacji jest zawsze dodatni lub równy 0. Zbliża się do zera, gdy wartość progowa zbliża się do wartości maksymalnej lub minimalnej. W takich przypadkach albo , albo staje się pusty, a drugi z nich zawiera cały zbiór danych i wyświetla entropię równą entropii w . Zysk informacji może też wynosić 0, gdy = = . Przy progu 60 proporcje etykiet „niebieskich” zarówno dla , jak i dla są takie same jak w , a wzrost informacji wynosi 0.
Wartości kandydatów dla w zbiorze liczb rzeczywistych () są nieskończenie. Jednak ze względu na ograniczoną liczbę przykładów istnieje tylko skończona liczba podziałów zbioru na zbiory i . Dlatego tylko skończona liczba wartości jest istotna dla testu.
Klasycznym podejściem jest sortowanie wartości xi w rosnącej kolejności xs(i), tak aby:
Następnie przetestuj dla każdej wartości leżącej w połowie odległości między kolejnymi posortowanymi wartościami funkcji . Załóżmy na przykład, że masz 1000 wartości zmiennoprzecinkowych danej cechy. Po posortowaniu załóżmy, że pierwsze 2 wartości to 8,5 i 8,7. W tym przypadku pierwszą wartością progową do przetestowania będzie 8, 6.
Formalnie rozważamy te wartości kandydatów dla t:
Złożoność czasowa tego algorytmu to , gdzie to liczba przykładów w węźle (z powodu sortowania wartości cech). Gdy jest stosowany w drzewie decyzyjnym, algorytm rozdzielania jest stosowany do każdego węzła i każdej cechy. Pamiętaj, że każdy węzeł otrzymuje około połowy przykładów swojego rodzica. Dlatego zgodnie z twierdzeniem głównym złożoność czasową trenowania schematu decyzyjnego za pomocą tego rozdrabniania można wyrazić w ten sposób:
gdzie:
- to liczba cech.
- to liczba przykładów treningowych.
W tym algorytmie nie ma znaczenia, jakie są wartości funkcji – liczy się tylko kolejność. Z tego powodu działa niezależnie od skali lub dystrybucji wartości cech. Dlatego podczas trenowania drzewa decyzyjnego nie trzeba normalizować ani skalować cech liczbowych.