Proiect la disciplina Inteligenta Artificiala
Student:Vatavu
Andrei
Specializarea: Calculatoare
Sectia: Romana
Grupa: 3241
1.Prezentare generala.
3
2.Algoritmul LMDT.
3
3.Instalare LMDT.
3
4.Rulare LMDT.
3
5.Exemple.
4
6.Rezultatele LMDT.
4
7.Formatul fisierului de intrare.
5
8.Modificari efectuate.
6
9.Structura utilitarului LMDT.
6
10.Propunere de proiect
7
1.Prezentare generala
LMDT - Linear Machine
Decision Trees este o unealta
ce are ca scop principal prelucrarea, obtinerea, testarea arborilor de decizie folosind un algoritm bazat pe decizii multivariate(algoritmul LMDT).
Programul foloseste
ca intrare un set de date de antrenament,
unul pe care se aplica arborele de decizie si unul
pentru a reduce erorile folosind niste date de pruning. Rezultatele (statisticele) vor fi scrise
intr-un fisier .log
LMDT ruleaza pe masini UNIX. Optiunile de rulare se specifica in linia de comanda, unele fiind optionale,
altele obligatorii.
2.Algoritmul LMDT
Algoritmul LMDT construeste un arbore
de decizie pe mai multe clase,
folosind o abordare
TOP-DOWN. Pentru fiecare
nod de decizie algoritmul antreneaza o masina lineara, bazandu-se pe un subset de variabile de intrare, care mai apoi vor
servi ca un test multivariat
pentru nodul de decizie. O masina liniara este
un discriminant multiclasa
linear care el insusi clasifica
o instanta. Numele clasei este
rezultatul testului efectuat de masina lineara cu o ramura pentru fiecare clasa posibila in nodul respectiv. Pentru a clasifica o instanta, aceasta trebuie codificata dupa modul de codificare local pastrat in nodul de decizie si urmarind ramura indicata de masina lineara.
3.Instalare LMDT
Se dezarhiveaza fisierul lmdt.tar: tar xf lmdt.tar
Se foloseste utilitarul
MAKE pentru crearea fisierului imagine LMDT
4.Rulare LMDT
Se
introduce numele fisierului
imagine creat si optiunile necesare:
./LMDT <optiuni_obligatorii>
<alte optiuni>
Optiuni obligatorii:
-f <training file>
- numele fisierului de antrenament
Alte optiuni:
-a <annealrate> (implicit 0.995)
-k (pentru a pastra toate caracteristicele, implicit este DSBE)
-l <log
file> (Fisierul cu rezultate.
implicit <training file>.log)
-r <prune file> (reducerea arborelui folosind pruning-ul pentru reducere a erorilor)
-s <intr> (samanta pentru functia random, folosit pentru training)
-t
<test file> (numele fisierului test. Contine instantele test)
-v (verbose
flag, scrie la iesire statisticele arborelui)
-y (folosirea criteriului de acuratete)
-z (setarea costului la zero dupa fiecare eliminare,
implicit : NOT zero)
5.Exemple
> LMDT -f train.data
-t test.data -s 200
Ruleaza programul
lmdt folosind train.data pentru formarea arborelui LMDT, initializeaza samanta pentru functia random la 200(pentru
alegerea instantelor), scrie acuratetea lui test.data
ca si celelalte statistici in fisierul primit ca parametru train.log.
> LMDT
-f train.data -t test.data
-r prune.data -l train.log
Ruleaza programul lmdt folosind train.data pentru formarea arborelui LMDT,
folosind reducerea erorilor cu prune.data, scrie statisticile arborelui in fisierul train.log.
6.Rezultatele LMDT
Programul LMDT afiseaza statistici
privind rularea in fisierul de tip log.
Daca utilizatorul nu specifica explicit acest nume (folosind
optiunea l
<fisier>) atunci statisticile vor fi scrise intr-un
fisier al carui nume este
de tipul <fisierul training>.log In acest
fisier sunt scrise urmatoarele
Number Epochs : <real>
Num Insts seen: <integer>
Num Insts trnd: <integer>
Number
nodes :
<integer>
Number
of LVs : <integer>
Unique
vars :
<integer>
Ave. vars/LM
: <real>
Train
accuracy: <real>
Test
accuracy : <real>
Train
errors |
<real>
Test
errors | <real>
Time :
<integer>
unde,
Number
Epochs numarul instantelor
pentru modificarea costului divizat la numarul total de instante de tip
training.
Num Insts seen numarul instantelor urmarite
pe durata parcurgerii.
Num Insts trnd
numarul instantelor folosite pentru modificarea costului pe parcursul antrenamentului.
Number of
nodes numarul masinilor lineare din arbore.
Number of
leaves numarul nodurilor frunza din arbore.
Unique vars numarul
anumitor caracteristici folosite in arbore.
Ave. vars/LM media aritmetica
a caracteristicilor per LMs.
Train accuracy acuratetea rborelui pentru datele de tip training.
Test
accuracy acuratetea arborelui
pentru datele de tip test.
Train errors numarul
instantelor de tip training care au fost clasificate incorrect.
Test errors - numarul
instantelor de tip training care au fost clasificate incorrect.
Time - numarul secundelor cpu folosite pentru contructia arborelui.
In afara de fisierul
log, este generat fisierul <training
file>.tree. Ordinea atributelor
acestui fisier este inverse ordinii
atributelor fisierului de intrare. Pentru listarea unei versiuni
ale arborelui LMDT se foloseste
ca parametru: -v.
Atunci cand
LMDT discrimineaza un set de
instante dintr-un nod, acesta este listat
intr-un disier lmdt.dump.
7.Formatul fisierului de intrare
Datele asteptate
de program trebuie sa fie dezarhivate si situate in directorul current,
din care ruleaza programul.
Toate fisierele
de date (train, test si prune) vor
avea urmatorul
format:
-
prima linie
din fisier va contine numele atributelor. Ele trebuiesc separate prin virgula iar sfarsitul
liniei sa
fie terminat cu .
-
a doua
linie va fi blank.
-
restul
fisierului va trebui sa contina
instante pe fiecare linie.
-
formatul fiecarei
instante este:
o valorile pentru
fiecare instanta vor fi in aceeasi
ordine ca si atributile din prima linie.
o Fiecare instanta se termina cu .
o Daca instanta este
mai lunga de un rand atunci nu va
trebui folosit nici un TAB sau Itrerupere
-
Fisierul nu
va trebui
sa contina nici o linie blanc la sfarsit.
-
Valorile lipsa
se specifica prin ?.
-
Valorile pentru
fiecare atribut trebuie sa
fie de acelasi tip.
-
Tipurile premise sunt simbolice si numerice.
-
Valorile numerice
pot fi intregi sau reale.
-
Nu pot fi
citite valori cu exponent. Deexemplu
1.2e3 va trebui
reprezentat: 1200.
Exemplu:
attr1,attr2,....,attrn.
val1,val2,...,valn,class.
val1,val2,...,valn,class.
.
.
.
Exemple rulate:
exemplu1
exemplu2
8.Modificari efectuate
a) S-a modificat continutul fisierului makefile. Compilatorul CC a fost inlocuit cu GCC.
CC = gcc
all: plmdt
plmdt: er.o lm.o load.o print.o tree.o utils.o test.o discard.o encode.o prune.o
$(CC) -o lmdt er.o lm.o load.o print.o test.o tree.o encode.o utils.o discard.o
..
b)Am creat un exemplu mic, pentru a intelege mai bine implementarea algoritmului LMDT, modul de rulare, trasarea arborelui si generarea statisticilor.
9.Structura utilitarului LMDT
LMDT este compus din urmatoarele module:
Utils.c contine functii pentru alocarea stringurilor, a spatiului de memorie si parsarea intrarii pentru utilizarea anumitor optiuni.
Tree.c rutine pentru construirea arborelui LMDT.
Test.c rutine pentru clasificare,statistici.
Pruning.c - pessimistic pruning & reduced error pruning.
Print.c printeaza rutinele pentru sistemul LMDT.
Load.c citeste din fisierele de date.
LM.c construieste masina liniara pentru diecare clasa.
Encode.c codificarea variabilelor.
10.Propunere de proiect
Construirea unui sistem pentru definirea anumitor concepte.De exemplu: pentru definirea conceptului de om supraponderal avem nevoie de unele atribute ca Inaltime, Greutate. Pentru aceste attribute se pot construi mai multe instante. Iar un nod va contine o masina liniara care va face discriminare intre instante. Astfel daca se va ajunge la o frunza din arborele LMDT format, se va stabili clasa din care face parte instanta, acuratetea stabilita la nivelul clasei(conceptului ales), si statisticele privind arborele de decizie.
Sistemul se va compune din doua parti:
1)
Invatarea si antrenarea mashinei liniare, construirea arborelui de decizie.
2)
Clasificarea datelor de intrare la unul din conceptele invatate la pasul 1.