2013-04-19 7 views
5

Próbuję znaleźć sposób, w jaki algorytm C4.5 określa wartość progową dla atrybutów liczbowych. Przeszukałem i nie mogę zrozumieć, w większości miejsc znalazłem tę informację:Jak obliczyć wartość progową dla atrybutów liczbowych w algorytmie C4.5 Quinlana?

Próbki szkoleniowe są najpierw posortowane według wartości rozpatrywanego atrybutu Y. Istnieje tylko skończona liczba tych wartości, więc oznaczmy je w uporządkowanej kolejności jako {v1, v2, ..., vm}. Każda wartość progowa leżąca między vi i vi + 1 będzie miała taki sam efekt dzielenia spraw na te, których wartość atrybutu Y leży w {v1, v2, ..., vi} i tych, których wartość jest w {vi + 1, vi + 2, ..., vm}. W ten sposób możliwe są tylko m-1 podziały na Y, z których wszystkie powinny być systematycznie badane w celu uzyskania optymalnego podziału.

Zazwyczaj wybiera się punkt środkowy każdego interwału: (vi + vi + 1)/2 jako reprezentatywny próg. C4.5 wybiera jako próg mniejszą wartość vi dla każdego przedziału {vi, vi + 1}, a nie sam punkt środkowy.

uczę przykład Play/Dont Play (value table) i nie rozumiem, jak można dostać numer 75 (tree generated) dla wilgotności atrybutu, gdy stan jest słonecznie ponieważ wartości wilgotności do Stan słoneczny to {70,85,90,95}.

Czy ktoś wie?

Odpowiedz

4

Jak sugeruje wygenerowany obraz drzewa, bierzesz pod uwagę atrybuty w kolejności. Twój przykład 75 należy do outlook = sunny branch. Jeśli filtrujesz dane zgodnie z outlook = sunny, otrzymujesz następującą tabelę.

outlook temperature humidity windy play 
sunny 69   70   FALSE yes 
sunny 75   70   TRUE yes 
sunny 85   85   FALSE no 
sunny 80   90   TRUE no 
sunny 72   95   FALSE no 

Jak widać, próg wilgotności jest „< 75” dla tego warunku.

j4.8 jest następcą ID3 algorithm. Używa przyrostu informacji i entropii do decydowania o najlepszym podziale. Według Wikipedii

The attribute with the smallest entropy 
is used to split the set on this iteration. 
The higher the entropy, 
the higher the potential to improve the classification here. 
+2

Dzięki za odpowiedź. I tak, zgadzam się z tabelą, którą napisałeś. Ale pytanie brzmi: czy liczba 75? Jak uzyskać liczbę 75 z wartościami wilgotności (z zestawem: {70,85,90,95})? – Fabrizzio

+0

Z jakiego podręcznika pochodzi ten przykład? Wygląda na to, że 70 powinno być wartością podziału. – dan

+0

Czy istnieją różne sposoby obliczania wartości progowej? Spójrz na ten przykład w Internecie: W poniższej tabeli wartości ([dane]: http://goo.gl/xphRz) otrzymuje następujące drzewo: [arbol]: http: //goo.gl/3ydq7 . Przykład pokazuje wartość progową = 70, gdy Att1 to A. Ale ten sam przykład z algorytmem Quinlana pokazany jako 75 wartość progowa. Jak obliczyć tę wartość? – Fabrizzio

2

Nie jestem do końca pewien J48, ale przy założeniu, że jego podstawie C4.5 byłoby obliczyć zysk dla wszystkich możliwych podziałów (to znaczy na podstawie możliwych wartości funkcji). Dla każdego podziału oblicza przyrost informacji i wybiera podział z największym zyskiem informacji. W przypadku {70,85,90,95} obliczałoby to przyrost informacji za {70 | 85,90,95} vs {70,85 | 90,95} względem {70,85,90 | 95} i wybierz najlepszy.

Książka Quinlana o książce C4.5 to dobry punkt wyjścia (https://goo.gl/J2SsPf). Szczególnie patrz strona 25.

Powiązane problemy