Sztuczna Inteligencja Projekt



Podobne dokumenty
B jest globalnym pokryciem zbioru {d} wtedy i tylko wtedy, gdy {d} zależy od B i nie istnieje B T takie, że {d} zależy od B ;

Sztuczna Inteligencja Projekt

SYSTEMY UCZĄCE SIĘ WYKŁAD 4. DRZEWA REGRESYJNE, INDUKCJA REGUŁ. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska

Sztuczna inteligencja

WSPOMAGANIE DECYZJI - MIŁOSZ KADZIŃSKI LAB IV ZBIORY PRZYBLIŻONE I ODKRYWANIE REGUŁ DECYZYJNYCH

System informacyjny a system decyzyjny Relacja nierozróżnialności Klasy abstrakcji Teoria zbiorów przybliżonych Usuwanie niespójności z tablicy

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Pętle. Programowanie komputerowe

Eksploracja danych. KLASYFIKACJA I REGRESJA cz. 2. Wojciech Waloszek. Teresa Zawadzka.

Odkrywanie wiedzy z danych przy użyciu zbiorów przybliżonych. Wykład 3

Sortowanie topologiczne skierowanych grafów acyklicznych

Strategie ewolucyjne (ang. evolu4on strategies)

Elementy modelowania matematycznego

Optymalizacja reguł decyzyjnych względem pokrycia

Algorytmy i struktury danych

SZTUCZNA INTELIGENCJA

Matematyka dyskretna - wykład - część Podstawowe algorytmy kombinatoryczne

WYKŁAD 6. Reguły decyzyjne

Systemy uczące się wykład 1

Systemy ekspertowe : Tablice decyzyjne

Wstęp do programowania

Granular Computing 9999 pages 15 METODY SZTUCZNEJ INTELIGENCJI - PROJEKTY

1 Wprowadzenie do algorytmiki

mgr inż. Magdalena Deckert Poznań, r. Metody przyrostowego uczenia się ze strumieni danych.

Liczby losowe i pętla while w języku Python

Granular Computing 9999 pages 15 METODY SZTUCZNEJ INTELIGENCJI - PROJEKTY

Klasyfikacja obiektów Drzewa decyzyjne (drzewa klasyfikacyjne)

Pętle instrukcje powtórzeo

Wstęp do programowania

Metody eksploracji danych. Reguły asocjacyjne

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Odkrywanie wiedzy w danych

PODEJMOWANIE DECYZJI W WARUNKACH NIEPEŁNEJ INFORMACJI

Matematyka dyskretna

Drzewa. Jeżeli graf G jest lasem, który ma n wierzchołków i k składowych, to G ma n k krawędzi. Własności drzew

Wskazówki dotyczące zmiennych, tablic i procedur 1

Materiał Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Wskaźniki Tablice dynamiczne Referencje Funkcje

Matematyczne Podstawy Informatyki

Indukowane Reguły Decyzyjne I. Wykład 3

Reguły decyzyjne, algorytm AQ i CN2. Reguły asocjacyjne, algorytm Apriori.

Programowanie w Turbo Pascal

Klasyfikator. ˆp(k x) = 1 K. I(ρ(x,x i ) ρ(x,x (K) ))I(y i =k),k =1,...,L,

Wstęp do programowania

Wstęp do Programowania potok funkcyjny

WHILE (wyrażenie) instrukcja;

Wstęp do Techniki Cyfrowej... Teoria automatów

Algorytmy i struktury danych

Wprowadzenie. Data Science Uczenie się pod nadzorem

Systemy ekspertowe. Eksploracja danych z wykorzystaniem tablic decyzyjnych i zbiorów przybliżonych. Część trzecia

Zapis algorytmów: schematy blokowe i pseudokod 1

Programowanie w języku C++ Grażyna Koba

Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Instrukcje sterujące. wer. 11 z drobnymi modyfikacjami! Wojciech Myszka :53:

Technologie baz danych

Teoretyczne podstawy zbiorów przybliżonych

Wstęp do programowania

Wprowadzenie Sformułowanie problemu Typy reguł asocjacyjnych Proces odkrywania reguł asocjacyjnych. Data Mining Wykład 2

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej

Wstęp do Programowania potok funkcyjny

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Podstawy Programowania C++

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane:

Systemy operacyjne. Zajęcia 11. Monitory

Metody Sztucznej Inteligencji II

Metody indukcji reguł

Dynamiczne przetwarzanie stron. dr Beata Kuźmińska-Sołśnia

Konkurs z przedmiotu eksploracja i analiza danych: problem regresji i klasyfikacji

Bazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL.

Fakt 3.(zastosowanie różniczki do obliczeń przybliżonych) Przy czym błąd, jaki popełniamy zastępując przyrost funkcji

Bloki anonimowe w PL/SQL

Wykład 2. Poprawność algorytmów

Systemy ekspertowe. Wnioskowanie w systemach regułowych. Część piąta. Autor Roman Simiński.

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

ECDL Podstawy programowania Sylabus - wersja 1.0

METODA SYMPLEKS. Maciej Patan. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski

6. Zagadnienie parkowania ciężarówki.

Pętle. for, while, do... while, foreach. Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.

Efektywna analiza składniowa GBK

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0

Ćwiczenie: JavaScript Cookies (3x45 minut)

Konstrukcje warunkowe Pętle

Optymalizacja. Przeszukiwanie lokalne

Hierarchiczna analiza skupień

Analiza algorytmów zadania podstawowe

7. Zagadnienie parkowania ciężarówki.

Metody probabilistyczne klasyfikatory bayesowskie

Sortowanie. Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania:

Elementy inteligencji obliczeniowej

PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW

Podstawowe algorytmy i ich implementacje w C. Wykład 9

1 abbbaabaaabaa -wzorzec: aaba

Zbiory przybliżone, cz. 1 (wersja do druku) dr. Piotr Szczuko

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Elementy logiki. Wojciech Buszkowski Wydział Matematyki i Informatyki UAM Zakład Teorii Obliczeń

9.9 Algorytmy przeglądu

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Analiza stanów gry na potrzeby UCT w DVRP

L E X. Generator analizatorów leksykalnych

WYKŁAD 11 Uczenie maszynowe drzewa decyzyjne

Transkrypt:

Sztuczna Inteligencja Projekt Temat: Algorytm LEM2 Liczba osób realizujących projekt: 2 1. Zaimplementować algorytm LEM 2. 2. Zaimplementować klasyfikator Classif ier. 3. Za pomocą algorytmu LEM 2 wygenerować dla każdej klasy decyzyjnej reguły decyzyjne z 2/3 losowo wybranych obiektów zbioru iris.tab. 4. Za pomocą klasyfikatora Classif ier dokonać klasyfikacji pozostałych obiektów zbioru iris.tab. Ad 1. 1. Zaimplementować funkcję Satisf ied wyznaczającą [t] G dla dowolnego warunku t i dowolnego zbioru G obiektów. 2. Zaimplementować funkcję SatisfiedSet wyznaczającą zbiór T G = {t : [t] G }. 3. Zaimplementować funkcję ChooseCondition, która wybierze najlepszy warunek do dodania do reguły. 4. Zaimplementować funkcję DropCondition usuwającą zbędny warunek z reguły. 5. Zaimplementować funkcję DropRule usuwającą zbędną regułą ze zbioru reguł. Ad 2. Klasyfikator Classif ier ma przypisać każdy obiekt do klasy tej reguły, którą obiekt spełnia. Jeżeli występuje konflikt klas, tzn. obiekt spełnia reguły dotyczące różnych klas, to jest on przypisywany do klasy tych reguł, których spełnia więcej. W przypadku, gdy obiekt spełnia tyle samo reguł każdej ze spornych klas, to nie jest on przypisywany do żadnej klasy. 1

Charakterystyka algorytmu LEM2 Oznaczenia i definicje: X niepusta dolna lub górna aproksymacja klasy decyzyjnej; t = (a, v) warunek, gdzie a atrybut warunkowy, v wartość przyjmowana przez a; [t] blok, tj. zbiór obiektów spełniających warunek t = (a, v); T - zbiór warunków t; [T ] = t T [t] - zbiór obiektów spełniających każdy z warunków t T ; Zbiór X zależy od zbioru T wtedy i tylko wtedy, gdy [T ] X; T jest minimalnym kompleksem zbioru X wtedy i tylko wtedy, gdy X zależy od T i nie istnieje T T takie, że X zależy od T ; T - rodzina zbiorów T ; T jest lokalnym pokryciem zbioru X wtedy i tylko wtedy, gdy: 1. Każdy zbiór T T jest minimalnym kompleksem zbioru X; 2. T T [T ] = X; 3. T jest minimalny, tj. składa się z najmniejszej możliwej liczby zbiorów T. Opis działania algorytmu Algorytm LEM2 na wejściu otrzymuje aproksymację rozpatrywanej klasy decyzyjnej. Jeżeli jest to dolna aproksymacja, to są generowane reguły pewne, jeżeli górna, to możliwe (Zamiast aproksymacji można rozpatrywać obszar brzegowy, wtedy generowane są reguły przybliżone). Algorytm przy generowaniu każdej reguły bierze pod uwagę tylko te warunki, które są spełnione przynajmniej przez jeden obiekt z rozpatrywanego zbioru (tj. T G := {t : [t] G }). W każdym kroku generowania reguły (zbiór T reprezentuje regułę) wybierany jest taki warunek, który jest spełniany przez największą liczbę obiektów (tj. [t] G jest maksymalne). Jeżeli jest więcej takich warunków spełniających podane kryterium, to spośród nich wybierany jest ten, który jest spełniony przez najmniejszą liczbę wszystkich obiektów z U (tj. [t] jest minimalne). W tym przypadku jest to równoważne temu, że taki warunek jest spełniony przez najmniejszą liczbę obiektów spoza zbioru G. Reguła jest tworzona (tj. T := T {t}), dopóki nie jest dodany ani jeden warunek do reguły (tj. T = ) lub te warunki które już są dodane do reguły są spełniane nie tylko przez obiekty z rozpatrywanej aproksymacji (tj. [T ] X). Po wygenerowaniu każdej reguły, następuje jej przycinanie poprzez usunięcie 2

Algorytm 1: LEM2 Data: zbiór X; Result: pojedyncze lokalne pokrycie T zbioru X; begin G := X; T := ; while G do T := ; T G := {t : [t] G }; while T = or [T ] X do wybierz t T G takie, że [t] G jest maksymalne; jeżeli jest więcej niż jedno t spełniające warunek, to wybierz spośród nich pierwsze znalezione t takie, że [t] jest minimalne; T := T {t}; G := [t] G; T G = {t : [t] G } \ T ; end foreach t T do if [T \ {t}] X then T := T \ {t}; T := T {T }; G := X \ T T [T ]; foreach T T do if T T \{T }[T ] = X then T := T \ {T }; zbędnych warunków (tj. if [T \{t}] X then T := T \{t}). Przy generowaniu kolejnej reguły, rozpatrywane są tylko te obiekty z danej aproksymacji, które nie spełniają wygenerowanych do tej pory reguł (tj. G := X \ T T [T ]), czyli nie spełniają reguł znajdujących się w zbiorze T. Po wygenerowaniu wszystkich reguł, tzn. w sytuacji gdy nie ma już obiektów z rozpatrywanej aproksymacji niespełniających którejkolwiek z reguł (tj. G nie jest spełnione), następuje przycinanie zbioru reguł poprzez usuwanie zbędnych reguł (tj. if T T \{T }[T ] = X then T := T \ {T }). Przykład Dana jest tablica decyzyjna DT = (U, A {d}) : obiekt temperatura bol glowy oslabienie nudnosci grypa 1 b. wysoka tak tak nie tak 2 wysoka tak nie tak tak 3 normalna nie nie nie nie 4 normalna tak tak tak tak 5 wysoka nie tak nie tak 6 wysoka nie nie nie nie 7 normalna nie tak nie nie gdzie U = {1,..., 7}, A = {temperatura, bol glowy, oslabienie, nudnosci}, d = grypa. 3

Wyznaczyć reguły decyzyjne stosując algorytm LEM2. Niech X = {1, 2, 4, 5}. G := X; T := ; Pętla while G (krok 1): T := ; T G := {(temperatura, b. wysoka), (temperatura, wysoka), (temperatura, normalna), (bol glowy, tak), (bol glowy, nie), (oslabienie, tak), (oslabienie, nie), (nudnosci, tak), (nudnosci, nie)}; Pętla while T = or [T ] X (krok 1): Dla warunków (bol glowy, tak) i (oslabienie, tak) wyrażenie [t] G przyjmuje maksymalną wartość, tj. 3. Wybierany jest warunek (bol glowy, tak), gdyż (bol glowy, tak) = 3 < (oslabienie, tak) = 5. T := {(bol glowy, tak)}; G := {1, 2, 4}; T G = {(temperatura, b. wysoka), (temperatura, wysoka), (temperatura, normalna, (bol glowy, nie), (oslabienie, tak), (oslabienie, nie), (nudnosci, tak), (nudnosci, nie)}. Otrzymujemy T : and [T ] X, więc wychodzimy z pętli wewnętrznej. T := {{(bol glowy, tak)}}; G := {1, 2, 4, 5} \ {1, 2, 4} = {5}. Pętla while G (krok 2): T := ; T G := {(temperatura, wysoka), (bol glowy, nie), (oslabienie, tak), (nudnosci, nie)}; Pętla while T = or [T ] X (krok 1): Wybierany jest warunek (temperatura, wysoka), otrzymujemy T := {(temperatura, wysoka)}; G := {5}; T G = {(bol glowy, nie), (oslabienie, tak), (nudnosci, nie)}. Ponieważ [T ] = {2, 5, 6} X, więc Pętla while T = or [T ] X (krok 2): Wybierany jest warunek (bol glowy, nie), otrzymujemy T := {(temperatura, wysoka), (bol glowy, nie)}; G := {5}; T G = {(oslabienie, tak), (nudnosci, nie)} Ponieważ [T ] = {5, 6} X, więc Pętla while T = or [T ] X (krok 3): Wybierany jest warunek (oslabienie, tak), otrzymujemy T := {(temperatura, wysoka), (bol glowy, nie), (oslabienie, tak)}; G := {5}; T G = {(nudnosci, nie)} Ponieważ [T ] = {5} X, więc wychodzimy z pętli wewnętrznej. Przycinając regułę reprezentowaną przez zbiór T (pętla foreach t T ) otrzymujemy T = {(temperatura, wysoka), (oslabienie, tak)}; T := {{(bol glowy, tak)}, {(temperatura, wysoka), (oslabienie, tak)}}; G := {5} \ {5} =, więc wychodzimy z pętli zewnętrznej. Na podstawie otrzymanego lokalnego pokrycia konstruowane są reguły: (bol glowy, tak) (grypa, tak), (temperatura, wysoka) (oslabienie, tak) (grypa, tak). Zbiór reguł wygenerowanych przez algorytm LEM2 składa się z następujących reguł (po dwukropku podane pokrycie reguły): 4

(bol glowy, tak) (grypa, tak) : 1, 2, 4, (temperatura, wysoka) (oslabienie, tak) (grypa, tak) : 5, (temperatura, normalna) (bol glowy, nie) (grypa, nie) : 3, 7, (bol glowy, nie) (oslabienie, nie) (grypa, nie) : 3, 6. 5