Universitatea babeş-bolyai cluj-napoca



Yüklə 385,79 Kb.
səhifə10/11
tarix26.10.2017
ölçüsü385,79 Kb.
#13385
1   2   3   4   5   6   7   8   9   10   11

5.2.Analiza problemei


Pentru a avea o imagine mai clară asupra funcționalităților cerute în specificare vom crea tabelul de evenimente pentru aplicație. Acesta arată în felul următor:

Subiect

Verb

Obiect

Frecvență

Utilizator

încarcă

set de date

o dată pe rulare

Utilizator

generează

tabel de corelație

o dată pe rulare

Utilizator

setează

parametrii generali

4-10 ori pe rulare

Utilizator

setează

parametrii tehnicii alese

4-10 ori pe rulare

Utilizator

antrenează

modelul selectat

4-10 ori pe rulare

Utilizator

testează

modelul obținut

4-10 ori pe rulare

Utilizator

salvează

rezultatele

4-10 ori pe rulare

Figura . Tabelul de evenimente

Identificând evenimentele din specificarea problemei și având tabelul de evenimente, putem vedea mai clar cazurile de utilizare care trebuie să apară în aplicație. În continuare, vom prezenta diagrama de cazuri de utilizare dedusă din specificarea problemei.



Figura . Diagrama cazurilor de utilizare

5.3.Proiectare


În această secțiune se va descrie modul în care a fost gândită aplicația și deciziile de proiectare luate pentru a asigura o implementare cât mai ușoară a funcționalităților din specificație. Aplicația va fi proiectată în ideea programării orientate pe obiecte.

5.3.1.Modelul de date


Având în vedere faptul că aplicația trebuie să proceseze orice set de date care respectă condițiile din specificație, avem nevoie de un pachet de clase care să reprezinte concepte cât mai abstracte, astfel încât să modeleze orice set de date valid.

Avem următoarele clase:



  • Variable – reprezintă o variabilă din setul de date. Conține următoarele informații: numele variabilei, id, valoarea minimă și valoarea maximă a acesteia.

  • Value – reprezintă o valoare a unei variabile într-un exemplu de date.

  • DataSample – reprezintă un exemplu de date din cadrul unui set de date. Conține câte o valoare pentru fiecare variabilă din set.

  • DataSet – reprezintă un set de date. Conține un nume, o descriere a setului de date, o listă de obiecte de tip Variable și o listă de obiecte de tip DataSample.

  • Problem – reprezintă o problemă de învățare asupra unui set de date. Are ca atribute: setul de date, un set de variabile care vor fi date de intrare, o variabilă care va fi dată de ieșire, numărul de exemple precedente care trebuie luate în considerare pentru datele de intrare în model, numărul de subseturi în care se împart datele de antrenament pentru cross-validation și indicele subsetului care nu va participa la antrenament.

  • LearningModel – interfață care declară metodele pe care ar trebui să le definească o clasă care implementeaƶă o tehnică de învățare pentru a fi folosită în aplicatie.

  • AbstractLearningModel – clasă abstractă care implementează o parte din metodele declarate de interfața LearninModel, care sunt comune pentru toate modelele implementate în aplicație.

Diagrama claselor din model este următoarea:

Figura . Diagrama claselor din modelul de date

Fișierul cu setul de date trebuie să fie într-un format ușor de citit de către o aplicație. S-a decis asupra formatului XML. Schema XSD a unui fisier XML care conține un set de date este următoarea:



"1.0" encoding="UTF-8"?>

"http://www.w3.org/2001/XMLSchema"

targetNamespace="http://www.scs.ubbcluj.ro/~gmir0757/DataSetSchema"

xmlns:tns="http://www.scs.ubbcluj.ro/~gmir0757/DataSetSchema"

elementFormDefault="qualified">



"dataset">





"name" />

"description" />

"variables">





"variable" minOccurs="1" maxOccurs="10">



"id" type="xs:string" />

"name" type="xs:string" />

"minValue" type="xs:double" />

"maxValue" type="xs:double" />











"samples">





"sample" minOccurs="1" maxOccurs="unbounded">





"value" minOccurs="1" maxOccurs="10">



"varId" type="xs:string" />

"val" type="xs:double" />























Un exemplu de fișier care descrie un set de date ar fi următorul:



"1.0" encoding="UTF-8" standalone="no"?>



Daily weather indicators for Cluj-Napoca.

Daily values for the most important weather indicators for Cluj-Napoca, from 1952 to 2011.



"1" maxValue="366" minValue="1" name="Day index"/>

"2" maxValue="90" minValue="-30" name="Mean temperature"/>

"3" maxValue="90" minValue="-30" name="Minimum temperature"/>

"4" maxValue="90" minValue="-30" name="Maximum temperature"/>

"5" maxValue="90" minValue="-30" name="Dew point"/>

"6" maxValue="20.0" minValue="0.0" name="Wind speed"/>

"7" maxValue="2.0" minValue="0.0" name="Precipitation level"/>







"2" varId="1"/>

"31.0" varId="2"/>

"27.0" varId="3"/>

"36.0" varId="4"/>

"30.0" varId="5"/>

"0.0" varId="6"/>

"0.0" varId="7"/>





"3" varId="1"/>

"30.5" varId="2"/>

"28.0" varId="3"/>

"34.0" varId="4"/>

"24.8" varId="5"/>

"16.2" varId="6"/>

"0.05" varId="7"/>

...





5.3.2.Tehnicile de învățare


Aplicația trebuie să implementeze trei tehnici de învățare: rețele neuronale de tip feed-forward with backpropagation, programare genetică și mașini cu suport vectorial de tip ε-SVR. Și luând în considerare parametrii care se cer a fi configurabili din aplicație, avem următoarea ierarhie de clase:

Figura . Diagrama claselor care implementează tehnicile de învățare

Yüklə 385,79 Kb.

Dostları ilə paylaş:
1   2   3   4   5   6   7   8   9   10   11




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin