Wrocław University of Technology WYKŁAD 6 Reguły decyzyjne autor: Maciej Zięba Politechnika Wrocławska
Reprezentacje wiedzy Wiedza w postaci reguł decyzyjnych Wiedza reprezentowania jest w postaci reguł decyzyjnych. Każda reguła opisana jest w formie implikacji, na którą składa się koniunkcja wartości atrybutów (lewa strona implikacji), oraz jeden z możliwych wariantów decyzyjnych (prawa strona implikacji). Proces podejmowania decyzji odbywa się poprzez wybór odpowiedniej reguły (bądź reguł) decyzyjnych, która dotyczy (pokrywa) danego zagadnienia i na jej podstawie przeprowadzenie procesu wnioskowania. Uczenie polega na znalezieniu zestawu reguł najlepiej opisujących rzeczywistość. Interpretowalna reprezentacja wiedzy. Przykładowa reguła: (Kwota kredytu > 700) (Dochod < 1100) (status = odmowa)) 2/7
Reguły decyzyjne Przykład reguł Nazwa Wartości Status of A 1,1 : x < 0$ existing A 1,2 : 0 x < 200$ checking A 1,3 : x 200$ account A 1,4 : no checking account Credit A 2,1 : x < 4000$ amount A 2,2 : 4000$ x < 13000$ A 2,3 : x 13000$ Duration A 3,1 : x < 18 months of credit A 3,2 : x 18 months Employment A 4,1 : unemployment status A 4,2 : part-time job A 4,3 : full-time job Personal A 5,1 : single status A 5,2 : married A 5,3 : divorced or widowed Credit B 1,1 :good credit status status (class) B 1,2 : bad credit status Struktura reguł decyzyjnych jest następująca: α 1 α M α out 3/7
Reguły decyzyjne Przykład reguł Nazwa Wartości Status of A 1,1 : x < 0$ existing A 1,2 : 0 x < 200$ checking A 1,3 : x 200$ account A 1,4 : no checking account Credit A 2,1 : x < 4000$ amount A 2,2 : 4000$ x < 13000$ A 2,3 : x 13000$ Duration A 3,1 : x < 18 months of credit A 3,2 : x 18 months Employment A 4,1 : unemployment status A 4,2 : part-time job A 4,3 : full-time job Personal A 5,1 : single status A 5,2 : married A 5,3 : divorced or widowed Credit B 1,1 :good credit status status (class) B 1,2 : bad credit status Struktura reguł decyzyjnych jest następująca: α 1 α M α out Przykładowe reguły: R 1 : α A4,1 α B1,2 R 2 : α A2,3 α A3,2 α A4,2 α A5,1 α B1,2 R 3 : α A1,1 α A2,3 α B1,2 R 4 : otherwise α B1,1 3/7
Reguły decyzyjne Przykład reguł Nazwa Wartości Status of A 1,1 : x < 0$ existing A 1,2 : 0 x < 200$ checking A 1,3 : x 200$ account A 1,4 : no checking account Credit A 2,1 : x < 4000$ amount A 2,2 : 4000$ x < 13000$ A 2,3 : x 13000$ Duration A 3,1 : x < 18 months of credit A 3,2 : x 18 months Employment A 4,1 : unemployment status A 4,2 : part-time job A 4,3 : full-time job Personal A 5,1 : single status A 5,2 : married A 5,3 : divorced or widowed Credit B 1,1 :good credit status status (class) B 1,2 : bad credit status Struktura reguł decyzyjnych jest następująca: α 1 α M α out Przykładowe reguły: R 1 : α A4,1 α B1,2 R 2 : α A2,3 α A3,2 α A4,2 α A5,1 α B1,2 R 3 : α A1,1 α A2,3 α B1,2 R 4 : otherwise α B1,1 3/7
Reguły decyzyjne Przykład reguł Nazwa Wartości Status of A 1,1 : x < 0$ existing A 1,2 : 0 x < 200$ checking A 1,3 : x 200$ account A 1,4 : no checking account Credit A 2,1 : x < 4000$ amount A 2,2 : 4000$ x < 13000$ A 2,3 : x 13000$ Duration A 3,1 : x < 18 months of credit A 3,2 : x 18 months Employment A 4,1 : unemployment status A 4,2 : part-time job A 4,3 : full-time job Personal A 5,1 : single status A 5,2 : married A 5,3 : divorced or widowed Credit B 1,1 :good credit status status (class) B 1,2 : bad credit status Struktura reguł decyzyjnych jest następująca: α 1 α M α out Przykładowe reguły: R 1 : α A4,1 α B1,2 R 2 : α A2,3 α A3,2 α A4,2 α A5,1 α B1,2 R 3 : α A1,1 α A2,3 α B1,2 R 4 : otherwise α B1,1 3/7
Reguły decyzyjne Przykład reguł Nazwa Wartości Status of A 1,1 : x < 0$ existing A 1,2 : 0 x < 200$ checking A 1,3 : x 200$ account A 1,4 : no checking account Credit A 2,1 : x < 4000$ amount A 2,2 : 4000$ x < 13000$ A 2,3 : x 13000$ Duration A 3,1 : x < 18 months of credit A 3,2 : x 18 months Employment A 4,1 : unemployment status A 4,2 : part-time job A 4,3 : full-time job Personal A 5,1 : single status A 5,2 : married A 5,3 : divorced or widowed Credit B 1,1 :good credit status status (class) B 1,2 : bad credit status Struktura reguł decyzyjnych jest następująca: α 1 α M α out Przykładowe reguły: R 1 : α A4,1 α B1,2 R 2 : α A2,3 α A3,2 α A4,2 α A5,1 α B1,2 R 3 : α A1,1 α A2,3 α B1,2 R 4 : otherwise α B1,1 3/7
Reguły decyzyjne Przykład reguł Nazwa Wartości Status of A 1,1 : x < 0$ existing A 1,2 : 0 x < 200$ checking A 1,3 : x 200$ account A 1,4 : no checking account Credit A 2,1 : x < 4000$ amount A 2,2 : 4000$ x < 13000$ A 2,3 : x 13000$ Duration A 3,1 : x < 18 months of credit A 3,2 : x 18 months Employment A 4,1 : unemployment status A 4,2 : part-time job A 4,3 : full-time job Personal A 5,1 : single status A 5,2 : married A 5,3 : divorced or widowed Credit B 1,1 :good credit status status (class) B 1,2 : bad credit status Struktura reguł decyzyjnych jest następująca: α 1 α M α out Przykładowe reguły: R 1 : α A4,1 α B1,2 R 2 : α A2,3 α A3,2 α A4,2 α A5,1 α B1,2 R 3 : α A1,1 α A2,3 α B1,2 R 4 : otherwise α B1,1 3/7
Reguły decyzyjne Przykład reguł Nazwa Wartości Status of A 1,1 : x < 0$ existing A 1,2 : 0 x < 200$ checking A 1,3 : x 200$ account A 1,4 : no checking account Credit A 2,1 : x < 4000$ amount A 2,2 : 4000$ x < 13000$ A 2,3 : x 13000$ Duration A 3,1 : x < 18 months of credit A 3,2 : x 18 months Employment A 4,1 : unemployment status A 4,2 : part-time job A 4,3 : full-time job Personal A 5,1 : single status A 5,2 : married A 5,3 : divorced or widowed Credit B 1,1 :good credit status status (class) B 1,2 : bad credit status Struktura reguł decyzyjnych jest następująca: α 1 α M α out Przykładowe reguły: R 1 : α A4,1 α B1,2 R 2 : α A2,3 α A3,2 α A4,2 α A5,1 α B1,2 R 3 : α A1,1 α A2,3 α B1,2 R 4 : otherwise α B1,1 Czy klient który ma 100$, chce 300$ kredytu na 12 miesięcy, jest bezrobotny i rozwiedziony? 3/7
Reguły decyzyjne Przykład reguł Nazwa Wartości Status of A 1,1 : x < 0$ existing A 1,2 : 0 x < 200$ checking A 1,3 : x 200$ account A 1,4 : no checking account Credit A 2,1 : x < 4000$ amount A 2,2 : 4000$ x < 13000$ A 2,3 : x 13000$ Duration A 3,1 : x < 18 months of credit A 3,2 : x 18 months Employment A 4,1 : unemployment status A 4,2 : part-time job A 4,3 : full-time job Personal A 5,1 : single status A 5,2 : married A 5,3 : divorced or widowed Credit B 1,1 :good credit status status (class) B 1,2 : bad credit status Struktura reguł decyzyjnych jest następująca: α 1 α M α out Przykładowe reguły: R 1 : α A4,1 α B1,2 R 2 : α A2,3 α A3,2 α A4,2 α A5,1 α B1,2 R 3 : α A1,1 α A2,3 α B1,2 R 4 : otherwise α B1,1 Czy klient który ma 100$, chce 300$ kredytu na 12 miesięcy, jest bezrobotny i rozwiedziony? Nie dostanie kredytu. 3/7
Indukcja reguł decyzyjnych Algorytm PRISM 1. Dla każdej klasy y Y generowany jest zestaw reguł. 2. Każda reguła generowana jest na bazie danych uczących zawierających obserwacje dotychczas niepokryte przez żadną z utworzonych dotychczas reguł. 3. Dla danej klasy y i aktualnego zbioru danych D regułę konstruujemy następująco: 3.1 Budujemy regułę początkową: R : α y. 3.2 Znajdujemy taki atrybut m i jego wartość k, o najwyższej wartości prawdopodobieństwa: p(y x m = k) prawdopodobieństwa estymujemy na bazie danych D. 3.3 Uzupełniamy regułę o własność α m,k : R : α m,k α y. 3.4 Usuwamy ze zbioru danych obserwacje pokryte przez regułę R oraz atrybut m. 3.5 Procedurę uzupełniania reguły R powtarzamy do momentu aż p(y x m = k) = 1 lub wszystkie atrybuty zostaną wykorzystane. 4/7
Algorytm PRISM Przykład Credit amount Employment status Personal status Credit status (class) A 2,3 : x 13000$ A 4,3 : full-time job A 5,2 : married B 1,2 : bad A 2,1 : x < 4000$ A 4,1 : unemployment A 5,2 : married B 1,1 : good A 2,1 : x < 4000$ A 4,3 : full-time job A 5,1 : single B 1,1 : good A 2,2 : 4000$ x < 13000$ A 4,2 : part-time job A 5,1 : single B 1,1 : good A 2,3 : x 13000$ A 4,3 : full-time job A 5,3 : divorced B 1,2 : bad A 2,3 : x 13000$ A 4,3 : full-time job A 5,1 : single B 1,2 : bad A 2,2 : 4000$ x < 13000$ A 4,2 : part-time job A 5,3 : divorced B 1,2 : bad A 2,2 : 4000$ x < 13000$ A 4,1 : unemployment A 5,1 : single B 1,2 : bad A 2,1 : x < 4000$ A 4,2 : part-time job A 5,3 : divorced B 1,1 : good A 2,3 : x 13000$ A 4,3 : full-time job A 5,1 : single B 1,1 : good A 2,2 : 4000$ x < 13000$ A 4,3 : full-time job A 5,2 : married B 1,1 : good A 2,2 : 4000$ x < 13000$ A 4,3 : full-time job A 5,3 : divorced B 1,1 : good P(class= bad Credit amount= A 2,1 ) = 0 3 P(class= bad Credit amount= A 2,2 ) = 2 5 P(class= bad Credit amount= A 2,3 ) = 3 4 P(class= bad Employment status= A 4,1 ) = 1 2 P(class= bad Employment status= A 4,2 ) = 1 3 P(class= bad Employment status= A 4,3 ) = 3 7 P(class= bad Personal status= A 5,1 ) = 2 5 P(class= bad Personal status= A 5,2 ) = 1 3 P(class= bad Personal status= A 5,3 ) = 2 4 5/7
Algorytm PRISM Przykład Credit amount Employment status Personal status Credit status (class) A 2,3 : x 13000$ A 4,3 : full-time job A 5,2 : married B 1,2 : bad A 2,1 : x < 4000$ A 4,1 : unemployment A 5,2 : married B 1,1 : good A 2,1 : x < 4000$ A 4,3 : full-time job A 5,1 : single B 1,1 : good A 2,2 : 4000$ x < 13000$ A 4,2 : part-time job A 5,1 : single B 1,1 : good A 2,3 : x 13000$ A 4,3 : full-time job A 5,3 : divorced B 1,2 : bad A 2,3 : x 13000$ A 4,3 : full-time job A 5,1 : single B 1,2 : bad A 2,2 : 4000$ x < 13000$ A 4,2 : part-time job A 5,3 : divorced B 1,2 : bad A 2,2 : 4000$ x < 13000$ A 4,1 : unemployment A 5,1 : single B 1,2 : bad A 2,1 : x < 4000$ A 4,2 : part-time job A 5,3 : divorced B 1,1 : good A 2,3 : x 13000$ A 4,3 : full-time job A 5,1 : single B 1,1 : good A 2,2 : 4000$ x < 13000$ A 4,3 : full-time job A 5,2 : married B 1,1 : good A 2,2 : 4000$ x < 13000$ A 4,3 : full-time job A 5,3 : divorced B 1,1 : good P(class= bad Credit amount= A 2,1 ) = 0 3 P(class= bad Credit amount= A 2,2 ) = 2 5 P(class= bad Credit amount= A 2,3 ) = 3 4 P(class= bad Employment status= A 4,1 ) = 1 2 P(class= bad Employment status= A 4,2 ) = 1 3 P(class= bad Employment status= A 4,3 ) = 3 7 P(class= bad Personal status= A 5,1 ) = 2 5 P(class= bad Personal status= A 5,2 ) = 1 3 P(class= bad Personal status= A 5,3 ) = 2 4 5/7
Algorytm PRISM Przykład Credit amount Employment status Personal status Credit status (class) A 2,3 : x 13000$ A 4,3 : full-time job A 5,2 : married B 1,2 : bad A 2,1 : x < 4000$ A 4,1 : unemployment A 5,2 : married B 1,1 : good A 2,1 : x < 4000$ A 4,3 : full-time job A 5,1 : single B 1,1 : good A 2,2 : 4000$ x < 13000$ A 4,2 : part-time job A 5,1 : single B 1,1 : good A 2,3 : x 13000$ A 4,3 : full-time job A 5,3 : divorced B 1,2 : bad A 2,3 : x 13000$ A 4,3 : full-time job A 5,1 : single B 1,2 : bad A 2,2 : 4000$ x < 13000$ A 4,2 : part-time job A 5,3 : divorced B 1,2 : bad A 2,2 : 4000$ x < 13000$ A 4,1 : unemployment A 5,1 : single B 1,2 : bad A 2,1 : x < 4000$ A 4,2 : part-time job A 5,3 : divorced B 1,1 : good A 2,3 : x 13000$ A 4,3 : full-time job A 5,1 : single B 1,1 : good A 2,2 : 4000$ x < 13000$ A 4,3 : full-time job A 5,2 : married B 1,1 : good A 2,2 : 4000$ x < 13000$ A 4,3 : full-time job A 5,3 : divorced B 1,1 : good P(class= bad Credit amount= A 2,1 ) = 0 3 P(class= bad Credit amount= A 2,2 ) = 2 5 P(class= bad Credit amount= A 2,3 ) = 3 4 P(class= bad Employment status= A 4,1 ) = 1 2 P(class= bad Employment status= A 4,2 ) = 1 3 P(class= bad Employment status= A 4,3 ) = 3 7 P(class= bad Personal status= A 5,1 ) = 2 5 P(class= bad Personal status= A 5,2 ) = 1 3 P(class= bad Personal status= A 5,3 ) = 2 4 5/7
Algorytm PRISM Przykład Credit amount Employment status Personal status Credit status (class) A 2,3 : x 13000$ A 4,3 : full-time job A 5,2 : married B 1,2 : bad A 2,1 : x < 4000$ A 4,1 : unemployment A 5,2 : married B 1,1 : good A 2,1 : x < 4000$ A 4,3 : full-time job A 5,1 : single B 1,1 : good A 2,2 : 4000$ x < 13000$ A 4,2 : part-time job A 5,1 : single B 1,1 : good A 2,3 : x 13000$ A 4,3 : full-time job A 5,3 : divorced B 1,2 : bad A 2,3 : x 13000$ A 4,3 : full-time job A 5,1 : single B 1,2 : bad A 2,2 : 4000$ x < 13000$ A 4,2 : part-time job A 5,3 : divorced B 1,2 : bad A 2,2 : 4000$ x < 13000$ A 4,1 : unemployment A 5,1 : single B 1,2 : bad A 2,1 : x < 4000$ A 4,2 : part-time job A 5,3 : divorced B 1,1 : good A 2,3 : x 13000$ A 4,3 : full-time job A 5,1 : single B 1,1 : good A 2,2 : 4000$ x < 13000$ A 4,3 : full-time job A 5,2 : married B 1,1 : good A 2,2 : 4000$ x < 13000$ A 4,3 : full-time job A 5,3 : divorced B 1,1 : good P(class= bad Credit amount= A 2,1 ) = 0 3 P(class= bad Credit amount= A 2,2 ) = 2 5 P(class= bad Credit amount= A 2,3 ) = 3 4 P(class= bad Employment status= A 4,1 ) = 1 2 P(class= bad Employment status= A 4,2 ) = 1 3 P(class= bad Employment status= A 4,3 ) = 3 7 P(class= bad Personal status= A 5,1 ) = 2 5 P(class= bad Personal status= A 5,2 ) = 1 3 P(class= bad Personal status= A 5,3 ) = 2 4 5/7
Algorytm PRISM Przykład Credit amount Employment status Personal status Credit status (class) A 2,3 : x 13000$ A 4,3 : full-time job A 5,2 : married B 1,2 : bad A 2,1 : x < 4000$ A 4,1 : unemployment A 5,2 : married B 1,1 : good A 2,1 : x < 4000$ A 4,3 : full-time job A 5,1 : single B 1,1 : good A 2,2 : 4000$ x < 13000$ A 4,2 : part-time job A 5,1 : single B 1,1 : good A 2,3 : x 13000$ A 4,3 : full-time job A 5,3 : divorced B 1,2 : bad A 2,3 : x 13000$ A 4,3 : full-time job A 5,1 : single B 1,2 : bad A 2,2 : 4000$ x < 13000$ A 4,2 : part-time job A 5,3 : divorced B 1,2 : bad A 2,2 : 4000$ x < 13000$ A 4,1 : unemployment A 5,1 : single B 1,2 : bad A 2,1 : x < 4000$ A 4,2 : part-time job A 5,3 : divorced B 1,1 : good A 2,3 : x 13000$ A 4,3 : full-time job A 5,1 : single B 1,1 : good A 2,2 : 4000$ x < 13000$ A 4,3 : full-time job A 5,2 : married B 1,1 : good A 2,2 : 4000$ x < 13000$ A 4,3 : full-time job A 5,3 : divorced B 1,1 : good P(class= bad Credit amount= A 2,1 ) = 0 3 P(class= bad Credit amount= A 2,2 ) = 2 5 P(class= bad Credit amount= A 2,3 ) = 3 4 P(class= bad Employment status= A 4,1 ) = 1 2 P(class= bad Employment status= A 4,2 ) = 1 3 P(class= bad Employment status= A 4,3 ) = 3 7 P(class= bad Personal status= A 5,1 ) = 2 5 P(class= bad Personal status= A 5,2 ) = 1 3 P(class= bad Personal status= A 5,3 ) = 2 4 5/7
Algorytm PRISM Przykład Credit amount Employment status Personal status Credit status (class) A 2,3 : x 13000$ A 4,3 : full-time job A 5,2 : married B 1,2 : bad A 2,1 : x < 4000$ A 4,1 : unemployment A 5,2 : married B 1,1 : good A 2,1 : x < 4000$ A 4,3 : full-time job A 5,1 : single B 1,1 : good A 2,2 : 4000$ x < 13000$ A 4,2 : part-time job A 5,1 : single B 1,1 : good A 2,3 : x 13000$ A 4,3 : full-time job A 5,3 : divorced B 1,2 : bad A 2,3 : x 13000$ A 4,3 : full-time job A 5,1 : single B 1,2 : bad A 2,2 : 4000$ x < 13000$ A 4,2 : part-time job A 5,3 : divorced B 1,2 : bad A 2,2 : 4000$ x < 13000$ A 4,1 : unemployment A 5,1 : single B 1,2 : bad A 2,1 : x < 4000$ A 4,2 : part-time job A 5,3 : divorced B 1,1 : good A 2,3 : x 13000$ A 4,3 : full-time job A 5,1 : single B 1,1 : good A 2,2 : 4000$ x < 13000$ A 4,3 : full-time job A 5,2 : married B 1,1 : good A 2,2 : 4000$ x < 13000$ A 4,3 : full-time job A 5,3 : divorced B 1,1 : good P(class= bad Credit amount= A 2,1 ) = 0 3 P(class= bad Credit amount= A 2,2 ) = 2 5 P(class= bad Credit amount= A 2,3 ) = 3 4 P(class= bad Employment status= A 4,1 ) = 1 2 P(class= bad Employment status= A 4,2 ) = 1 3 P(class= bad Employment status= A 4,3 ) = 3 7 P(class= bad Personal status= A 5,1 ) = 2 5 P(class= bad Personal status= A 5,2 ) = 1 3 P(class= bad Personal status= A 5,3 ) = 2 4 5/7
Algorytm PRISM Przykład Wybieramytrzecią wartość atrybutu Credit amount i modyfikujemy regułę: α A2,3? α B1,2 Employment status Personal status Credit status (class) A 4,3 : full-time job A 5,2 : married B 1,2 : bad A 4,3 : full-time job A 5,3 : divorced B 1,2 : bad A 4,3 : full-time job A 5,1 : single B 1,2 : bad A 4,3 : full-time job A 5,1 : single B 1,1 : good P(class= bad Credit amount= A 2,3,Employment status= A 4,3 ) = 3 4 P(class= bad Credit amount= A 2,3,Personal status= A 5,1 ) = 1 2 P(class= bad Credit amount= A 2,3,Personal status= A 5,2 ) = 1 1 P(class= bad Credit amount= A 2,3,Personal status= A 5,3 ) = 1 1 Wybieramy drugą lub trzecią wartość personal status i mamy: α A2,3 α A5,3 α B1,2 Osiągnięto wartość prawdopodobieństwa równą 1 - reguła kompletna. 6/7
Algorytm PRISM Przykład Wybieramytrzecią wartość atrybutu Credit amount i modyfikujemy regułę: α A2,3? α B1,2 Employment status Personal status Credit status (class) A 4,3 : full-time job A 5,2 : married B 1,2 : bad A 4,3 : full-time job A 5,3 : divorced B 1,2 : bad A 4,3 : full-time job A 5,1 : single B 1,2 : bad A 4,3 : full-time job A 5,1 : single B 1,1 : good P(class= bad Credit amount= A 2,3,Employment status= A 4,3 ) = 3 4 P(class= bad Credit amount= A 2,3,Personal status= A 5,1 ) = 1 2 P(class= bad Credit amount= A 2,3,Personal status= A 5,2 ) = 1 1 P(class= bad Credit amount= A 2,3,Personal status= A 5,3 ) = 1 1 Wybieramy drugą lub trzecią wartość personal status i mamy: α A2,3 α A5,3 α B1,2 Osiągnięto wartość prawdopodobieństwa równą 1 - reguła kompletna. 6/7
Klasyfikatory regułowe Podsumowanie Algorytm PRISM generuje dokładne reguły. W rezultacie, zestaw wygenerowanych reguł jest ogromny, i niektóre dotyczą tylko jednej obserwacji. Reguły stworzone poprzez zastosowanie PRISM są zbytnio dopasowane do zbioru uczącego - problem overfittingu. Modyfikację metody PRISM stanowi klasyfikator RIPPER. Wejściowy zbiór danych dzielony jest na dwa podzbiory: rosnący i ucinający. Na zbiorze rosnącym generowana jest pojedyncza reguła z wykorzystaniem podejścia PRISM. Ucinany jest ostatnio dodany atrybut. Jeżeli jakość reguły badana zbiorze ucinającym pogorszyła się, to wówczas ucinanie jest kontynuowane. W przeciwnym wypadku zapamiętywana jest reguła przed ostatnim ucięciem. 7/7