Eksploracja danych - klasyfikacja oparta na regułach
IF-THEN Rules
Klasyfikator oparty na regułach korzysta z zestawu reguł IF-THEN do klasyfikacji. Regułę możemy wyrazić w następujący sposób:
Rozważmy regułę R1,
R1: IF age = youth AND student = yes
THEN buy_computer = yes
Points to remember −
Nazywa się część JEŻELI reguły rule antecedent lub precondition.
TO część reguły jest nazywana rule consequent.
Poprzednia część warunku składa się z co najmniej jednego testu atrybutów, a testy te są logicznie połączone operatorem AND.
Następna część składa się z przewidywania klas.
Note - Możemy również napisać regułę R1 w następujący sposób -
R1: (age = youth) ^ (student = yes))(buys computer = yes)
Jeśli warunek jest spełniony dla danej krotki, to poprzednik jest spełniony.
Wyodrębnianie reguł
Tutaj dowiemy się, jak zbudować klasyfikator oparty na regułach, wyodrębniając reguły IF-THEN z drzewa decyzyjnego.
Points to remember −
Aby wyodrębnić regułę z drzewa decyzyjnego -
Dla każdej ścieżki od katalogu głównego do węzła-liścia tworzona jest jedna reguła.
Aby utworzyć poprzednik reguły, każde kryterium podziału jest logicznie połączone operatorem AND.
Węzeł liścia zawiera prognozę klasy, tworząc następnik reguły.
Indukcja reguł z wykorzystaniem algorytmu pokrycia sekwencyjnego
Algorytm pokrycia sekwencyjnego może być użyty do wyodrębnienia reguł IF-THEN z danych uczących. Nie wymagamy najpierw generowania drzewa decyzyjnego. W tym algorytmie każda reguła dla danej klasy obejmuje wiele krotek tej klasy.
Niektóre z sekwencyjnych algorytmów pokrycia to AQ, CN2 i RIPPER. Zgodnie z ogólną strategią, zasady są uczone pojedynczo. Za każdym razem, gdy reguły są uczone, krotka objęta regułą jest usuwana, a proces jest kontynuowany przez pozostałe krotki. Dzieje się tak, ponieważ ścieżka do każdego liścia w drzewie decyzyjnym odpowiada regule.
Note - Indukcja drzewa decyzyjnego może być traktowana jako uczenie się zestawu reguł jednocześnie.
Poniżej przedstawiono algorytm uczenia sekwencyjnego, w którym reguły są uczone dla jednej klasy na raz. Ucząc się reguły z klasy Ci, chcemy, aby reguła obejmowała wszystkie krotki tylko z klasy C, a nie krotka z żadnej innej klasy.
Algorithm: Sequential Covering
Input:
D, a data set class-labeled tuples,
Att_vals, the set of all attributes and their possible values.
Output: A Set of IF-THEN rules.
Method:
Rule_set={ }; // initial set of rules learned is empty
for each class c do
repeat
Rule = Learn_One_Rule(D, Att_valls, c);
remove tuples covered by Rule form D;
until termination condition;
Rule_set=Rule_set+Rule; // add a new rule to rule-set
end for
return Rule_Set;
Przycinanie reguł
Reguła jest przycinana z następującego powodu -
Ocena jakości dokonywana jest na oryginalnym zestawie danych szkoleniowych. Reguła może działać dobrze na danych uczących, ale gorzej na kolejnych danych. Dlatego wymagane jest przycinanie reguł.
Reguła jest przycinana przez usunięcie spojówki. Reguła R jest przycinana, jeśli przycięta wersja R ma wyższą jakość niż to, co zostało ocenione na niezależnym zestawie krotek.
FOLIA to jedna z prostych i skutecznych metod przycinania reguł. Dla danej reguły R,
gdzie pos i neg to odpowiednio liczba dodatnich krotek pokrytych przez R.
Note- Ta wartość będzie rosła wraz z dokładnością R na zestawie do przycinania. Stąd, jeśli wartość FOIL_Prune jest wyższa dla przyciętej wersji R, to przycinamy R.