Title | Zbiory przybliżone - wprowadzenie do pakietu Rough Sets |
---|---|
Course | Zaawansowane systemy sztucznej inteligencji |
Institution | Politechnika Bialostocka |
Pages | 10 |
File Size | 198 KB |
File Type | |
Total Downloads | 13 |
Total Views | 132 |
Piotr Hońko...
Instrukcja do zajęć z pracowni specjalistycznej w roku akademickim 2015/2016 Sztuczna inteligencja
Zbiory przybliżone – wprowadzenie do pakietu RoughSets
Opracował: Piotr Hońko
Białystok, 2016
1
Spis treści 1. Podstawowe funkcje.........................................................................................................................3 2. Tablica decyzyjna utworzona na podstawie ramki danych..........................................................3 3. Tablica decyzyjna utworzona na podstawie pliku z danymi........................................................4 4. Relacja nieodróżnialności................................................................................................................4 5. Aproksymacje...................................................................................................................................5 6. Obszar pozytywny............................................................................................................................5 7. Relatywna macierz odróżnialności.................................................................................................5 8. Zbiór wszystkich reduktów tablicy decyzyjnej..............................................................................6 9. Pojedynczy redukt tablicy decyzyjnej............................................................................................6 10. Reguły decyzyjne............................................................................................................................7 11. Operowanie na zbiorze reguł.........................................................................................................8 12. Dyskretyzacja – algorytm MD (wersja globalna i lokalna)......................................................10 13. Podtablica utworzona na podstawie tablicy decyzyjnej...........................................................10
2
Przegląd instrukcji dotyczy pakietu RoughSets (wer. 1.3-0) testowanego w systemie R (wer. 3.2.4) 1.
Podstawowe funkcje •
library(packet) – ładowanie pakietu funkcji, np. packet=RoughSets;
•
str(object) – wyświetlanie struktury dowolnego obiektu utworzonego w systemie R;
•
summary(object) – wyświetlanie statystyki lub zawartości dowolnego obiektu utworzonego
w systemie R. 2.
Tablica decyzyjna utworzona na podstawie ramki danych •
Funkcja SF.asDecisionTable() ◦ Argumenty: ▪ dataset – dane zawierające obiekty i atrybutu, reprezentowane przez ramkę danych; ▪ decision.attr – pozycja atrybutu decyzyjnego na liście atrybutów (NULL – tworzony jest system informacyjny/zbiór testowy); ▪ indx.nominal
–
pozycje
atrybutów
nominalnych
(NULL
–
automatyczne
rozpoznawanie typów atrybutów). ◦ Wynik: obiekt klasy DecisionTable: ▪ desc.attrs – nazwy atrybutów i zakresy ich wartości; ▪ nominal.attrs – informacja, czy dany atrybut jest nominalny; ▪ decision.attr – pozycja atrybutu decyzyjnego. •
Przykład ◦ Konstrukcja atrybutów: a1=c("MBA","MSc","MSc","MBA","MBA","MCE","MSc","MCE") a2=c("Medium","High","High","High","Low","Low","Medium","Low") a3=c("Yes","Yes","Yes","No","Yes","Yes","Yes","No") a4=c("Excellent","Neutral","Excellent","Good","Neutral","Good","Neutral","Excellent") a5=c("Accept","Accept","Accept","Accept","Reject","Reject","Reject","Reject")
◦ Tworzenie ramki danych wraz z nadaniem nazw poszczególnym atrybutom: df=data.frame(Diploma=a1,Experience=a2,French=a3,Reference=a4,Decision=a5)
◦ Tworzenie tablicy decyzyjnej na podstawie ramki danych df: dt=SF.asDecisionTable(dataset=df,decision.attr=5,indx.nominal=c(1:4))
◦ Wyświetlanie informacji o atrybutach tablicy dt: attr(dt,"desc.attrs")
3
3.
Tablica decyzyjna utworzona na podstawie pliku z danymi •
Funkcja SF.read.DecisionTable() ◦ Argumenty: ▪ filename – plik zawierające dane (".csv", ".txt", ".dat", ".xls"); ▪ header – parametr logiczny, określający, czy plik posiada nagłówek, tj. czy pierwszy wiersz jest traktowany jako lista atrybutów; ▪ sep – określenie separatora pól; ▪ decision.attr – pozycja atrybutu decyzyjnego na liście atrybutów (NULL – tworzony jest system informacyjny/zbiór testowy); ▪ indx.nominal
–
pozycje
atrybutów
nominalnych
(NULL
–
automatyczne
rozpoznawanie typów atrybutów). ◦ Wynik: obiekt klasy DecisionTable. •
Przykład ◦ Dany jest pliku D:\hiring.txt o zawartości: Diploma,Experience,French,Reference,Decision MBA,Medium,Yes,Excellent,Accept MSc,High,Yes,Neutral,Accept …
Tworzenie tablicy decyzyjnej na podstawie pliku D:\hiring.txt: dt0=SF.read.DecisionTable("D:\\hiring.txt",header=TRUE,sep=",",decision.attr=5, indx.nominal=c(1:4))
4.
Relacja nieodróżnialności •
Funkcja BC.IND.relation.RST() ◦ Argumenty: ▪ decision.table – tablica decyzyjna; ▪ attribute – podzbiór atrybutów, względem którego generowana jest relacja nieodróżnialności (NULL – uwzględniany jest cały zbiór). ◦ Wynik: obiekt klasy IndiscernibilityRelation: ▪ IND.relation – klasy nieodróżnialności; ▪ type.relation – relacja nieodróżnialności (equivalence).
•
Przykład ◦ Wyznaczanie relacji nieodróżnialności tablicy decyzyjnej dt względem atrybutów Experience, French:
4
ind=BC.IND.relation.RST(dt,c(2,3))
5.
Aproksymacje •
Funkcja BC.LU.approximation.RST() ◦ Argumenty: ▪ decision.table – tablica decyzyjna, składająca się z atrybutów nominalnych; ▪ IND – relacja nieodróżnialności. ◦ Wynik: obiekt klasy LowerUpperApproximation: ▪ lower.approximation – indeksy obiektów z dolnej aproksymacji; ▪ upper.approximation – indeksy obiektów z górnej aproksymacji.
•
Przykład ◦ Wyznaczanie aproksymacji dla klas decyzyjnych tablicy decyzyjnej dt przy zastosowaniu relacji nieodróżnialności ind: app=BC.LU.approximation.RST(dt,ind)
6.
Obszar pozytywny •
Funkcja BC.positive.reg.RST() ◦ Argumenty: ▪ decision.table – tablica decyzyjna, składająca się z atrybutów nominalnych; ▪ roughset – obiekt klasy LowerUpperApproximation. ◦ Wynik: obiekt klasy PositiveRegion: ▪ positive.reg – indeksy obiektów należących do obszaru pozytywnego; ▪ degree.dependency – stopień zależności (jakość klasyfikacji tablicy decyzyjnej, czyli stosunek liczby obiektów należących do obszaru pozytywnego do liczby wszystkich obiektów).
•
Przykład ◦ Wyznaczanie
obszaru
pozytywnego
tablicy
decyzyjnej
dt
przy
zastosowaniu
aproksymacji app: pr=BC.positive.reg.RST(dt, app)
7.
Relatywna macierz odróżnialności •
Funkcja BC.discernibility.mat.RST() ◦ Argumenty: ▪ decision.table – tablica decyzyjna; ▪ range.object – wektor obiektów, względem których ma być generowana macierz 5
odróżnialności (NULL – rozpatrywany jest cały zbiór obiektów); ▪ return.matrix – zapisywanie macierzy w postaci tablicowej. ◦ Wynik: obiekt klasy DiscernibilityMatrix: ▪ disc.mat – macierz odróżnialności; ▪ disc.list – lista reprezentująca macierz odróżnialności; ▪ names.attr – atrybuty występujące w macierzy. •
Przykład ◦ Generowanie relatywnej macierzy odróżnialności dla tablicy decyzyjnej dt: dm=BC.discernibility.mat.RST(dt, return.matrix=TRUE)
8.
Zbiór wszystkich reduktów tablicy decyzyjnej •
Funkcja FS.all.reducts.computation() ◦ Argumenty: ▪ discernibilityMatrix – macierz odróżnialności. ◦ Wynik: obiekt klasy ReductSet: ▪ decision.reduct – zbiór reduktów; ▪ core – rdzeń zbioru atrybutów;
•
Przykład ◦ Obliczanie zbioru wszystkich reduktów tablicy decyzyjnej dt na podstawie relatywnej macierzy odróżnialności dm: rs=FS.all.reducts.computation(dm)
9.
Pojedynczy redukt tablicy decyzyjnej •
Funkcja FS.quickreduct.RST() – algorytm QuickReduct ◦ Argumenty: ▪ decision.table – tablica decyzyjna. ◦ Wynik: obiekt klasy FeatureSubset: ▪ reduct – lista atrybutów, należących do zwróconego zbioru ((nad)redukt, podzbiór atrybutów); ▪ type.method – typ użytej metody (quickreduct); ▪ type.task – typ zadania ( feature selection).
•
Przykład ◦ Obliczanie pojedynczego reduktu tablicy decyzyjnej dt: red=FS.quickreduct.RST(dt)
6
•
Funkcja FS.DAAR.heuristic.RST() – algorytm DAAR ◦ Argumenty: ▪ decision.table – tablica decyzyjna; ▪ attrDescriptions – lista możliwych wartości poszczególnych atrybutów; ▪
decisionIdx – indeks atrybutu decyzyjnego.
◦ Wynik: obiekt klasy FeatureSubset. •
Przykład ◦ Obliczanie pojedynczego reduktu tablicy decyzyjnej dt: red=FS.DAAR.heuristic.RST(dt, attrDescriptions = attr(dt,"desc.attrs"), decisionIdx = attr(dt, "decision.attr"))
10. Reguły decyzyjne •
Funkcja RI.AQRules.RST() – algorytm AQ ◦ Argumenty: ▪ decision.table – tablica decyzyjna; ▪ confidence – minimalne zaufanie (tj. dokładność) generowanych reguł; ▪ TimesCovered – dla każdego obiektu treningowego generowanych jest co najmniej TimesCovered reguł, które go pokrywają.
◦ Wynik: obiekt klasy RuleSetRST: ▪ rules: wszystkie reguły zapisane w postaci listy zawierającej: •
idx: indeksy atrybutów, wykorzystywanych przez regułę;
•
values: wartości, wykorzystywane przez atrybutu w części przesłanki reguły;
•
consequent: wartość atrybutu decyzyjnego;
•
support: indeks obiektu, który rozpoznaje regułę;
•
laplace: jakość klasyfikacji (miara Laplace'a).
▪ uniqueCls: lista klas decyzyjnych; ▪ clsProbs: dystrybucja klas; ◦ majorityCls: najczęściej występująca wartość atrybutu decyzyjnego w regułach. •
Przykład ◦ Generowanie zbioru reguł z tablicy decyzyjnej dt: rs=RI.AQRules.RST(dt,0.8,2)
•
Funkcja RI.CN2Rules.RST() – algorytm CN2 ◦ Argumenty: 7
▪ decision.table – tablica decyzyjna; ▪ K – liczba określająca złożoność generowanych reguł. ◦ Wynik: obiekt klasy RuleSetRST. •
Przykład ◦ Generowanie zbioru reguł z tablicy decyzyjnej dt: rs=RI.CN2Rules.RST(dt,2)
•
Funkcja RI.LEM2Rules.RST() – algorytm LEM2 ◦ Argumenty: ▪ decision.table – tablica decyzyjna. ◦ Wynik: obiekt klasy RuleSetRST.
•
Przykład ◦ Generowanie zbioru reguł z tablicy decyzyjnej dt: rs=RI.LEM2Rules.RST(dt)
•
Funkcja RI.indiscernibilityBasedRules.RST() – generowanie reguł z klas nieodróżnialności ◦ Argumenty: ▪ decision.table – tablica decyzyjna; ▪ feature.set – podzbiór atrybutów, np. redukt. ◦ Wynik: obiekt klasy RuleSetRST.
•
Przykład ◦ Generowanie zbioru reguł z tablicy decyzyjnej dt w oparciu o redukt red: rs=RI.indiscernibilityBasedRules.RST(dt,red)
11. Operowanie na zbiorze reguł •
Funkcja predict() – klasyfikacja obiektów ◦ Argumenty: ▪ object – zbiór reguł, tj. obiekt klasy RuleSetRST; ▪ newdata – tablica decyzyjna. ◦ Wynik: Obiekt klasy data.frame, tj. ramka danych, składająca się z jednej kolumny, odpowiadającej atrybutowi decyzyjnemu.
•
Przykład ◦ Klasyfikacja obiektów tablicy decyzyjnej dt na podstawie zbioru reguł rs prd=predict(rs,dt)
8
•
Funkcje RI.support(), RI.confidence() – obliczanie wsparcia i zaufania (dokładności) reguł ◦ Argumenty: ▪ rules – obiekt klasy RuleSetRST. ◦ Wynik: obiekt typu num[1:n] – tablica liczb odpowiadających jakości reguł, gdzie n to liczba reguł.
•
Przykład ◦ Generowanie zbioru reguł z tablicy decyzyjnej dt: rs=RI.LEM2Rules.RST(dt)
◦ Wyświetlanie informacji o pokryciu reguł: RI.support(rs) rs[RI.support(rs)>0.2] # wyświetlanie reguł, których wsparcie jest większe niż 0.2
•
Funkcja as.character() – zapis reguł w postaci ciągu znaków ◦ Argumenty: ▪ rules – obiekt klasy RuleSetRST. ◦ Wynik: obiekt typu chr[1:n] – tablica ciągów znaków, gdzie n to liczba reguł.
•
Przykład ◦ Generowanie zbioru reguł z tablicy decyzyjnej dt: rs=RI.LEM2Rules.RST(dt)
◦ Tworzenie i obsługa tablicy ciągów znaków, reprezentujących reguły: T=as.character(rs) T[1] # wyświetlanie pierwszej reguły
•
Funkcja as.list() – zapis zbioru reguł w postaci listy ◦ Argumenty: ▪ rules – obiekt klasy RuleSetRST. ◦ Wynik: obiekt typu List – lista reguł (struktura zbliżona do obiektu klasy RuleSetRST).
•
Przykład ◦ Generowanie zbioru reguł z tablicy decyzyjnej dt: rs=RI.LEM2Rules.RST(dt)
◦ Tworzenie i obsługa listy reguły: L=as.list(rs) L[[1]] #wyświetlanie pierwszej reguły L[[1]]$values #wyświetlanie wartości atrybutów warunkowych pierwszej reguły
9
12. Dyskretyzacja – algorytm MD (wersja globalna i lokalna) •
Funkcje D.global.discernibility.heuristic.RST(), D.local.discernibility.heuristic.RST() ◦ Argumenty: ▪ decision.table – tablica decyzyjna o atrybutach ciągłych; ▪ maxNOfCuts – maksymalna liczba cięć na pojedynczym atrybucie. ◦ Wynik: obiekt klasy Discretization: ▪ cut.values – lista cieć dla każdego (ciągłego) atrybutu warunkowego; ▪ type.method – typ metody użytej do zdefiniowania cięć (global.discernibility); ▪ type.task – typ wykonywanego zadania (discretization).
•
Przykład ◦ Tworzenie tablicy decyzyjnej na podstawie fragmentu zbioru danych iris: a1=c(5.1,4.8,4.5,5.1,5.2,5.1) a2=c(1.6,1.4,1.5,1.9,1.6,2.0) d=c("versicolor","versicolor","versicolor","virginica","virginica","virginica") df1=data.frame(petallength=a1, petalwidth=a2, cls=d) dt1=SF.asDecisionTable(dataset=df1,decision.attr=3)
◦ Generowaniu zbiorów cięć dla atrybutów warunkowych tablicy decyzyjnej dt1: cs=D.global.discernibility.heuristic.RST(dt1, maxNOfCuts = 2 *ncol(dt1))
13. Podtablica utworzona na podstawie tablicy decyzyjnej •
Funkcja SF.applyDecTable() ◦ Argumenty: ▪ decision.table – tablica decyzyjna; ▪ object – podzbiór atrybutów, obiektów lub zbiór cieć dla atrybutów warunkowych. ◦ Wynik: obiekt klasy DecisionTable: ▪ desc.attrs – nazwy atrybutów i zakresy ich wartości; ▪ nominal.attrs – informacja, czy dany atrybut jest nominalny; ▪ decision.attr – pozycja atrybutu decyzyjnego.
•
Przykład ◦ Tworzenie podtablicy dla tablicy decyzyjnej dt na podstawie pojedynczego reduktu red dt2=SF.applyDecTable(dt,red)
◦ Tworzenie podtablicy dla tablicy decyzyjnej dt1 na podstawie zbioru cieć cs dt3=SF.applyDecTable(dt1,cs)
10...