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:

JEŚLI warunek TO wniosek

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,

FOIL_Prune = poz - neg / pos + neg

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.