Zbiory przybliżone - wprowadzenie do pakietu Rough Sets PDF

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 PDF
Total Downloads 13
Total Views 132

Summary

Piotr Hońko...


Description

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...


Similar Free PDFs