Aici sunt prezentate diferențele dintre versiunile selectate și versiunea curentă a paginii.
Both sides previous revision Versiuni anterioare Urmatoarea versiune | Versiuni anterioare | ||
15:teme:racket-decizie [2015/03/17 08:39] Andrei Olaru [Cerințe] |
15:teme:racket-decizie [2016/02/26 18:21] (curent) 199.119.124.44 ↷ Links adapted because of a move operation |
||
---|---|---|---|
Linia 2: | Linia 2: | ||
* Responsabil: [[cs@andreiolaru.ro|Andrei Olaru]] | * Responsabil: [[cs@andreiolaru.ro|Andrei Olaru]] | ||
- | * Deadline: **03.04.2015** (depunctare: 0.5p/zi) | + | * Deadline: **03.04.2015** (depunctare: 0.5p/zi ->| 28.04.2015) |
* Data publicării: 11.03.2015 | * Data publicării: 11.03.2015 | ||
- | * Data ultimei modificări: 11.03.2015 | + | * Data ultimei modificări: 30.03.2015 (17:00) |
- | * Data tester-ului: soon | + | * Data tester-ului: 30.03.2015 | [[https://elf.cs.pub.ro/vmchecker/ui/#PP|vmchecker]] |
+ | * [[http://cs.curs.pub.ro/2014/mod/forum/view.php?id=4834|Forum tema 1]] | ||
* [[#changelog|Changelog]] | * [[#changelog|Changelog]] | ||
Linia 90: | Linia 91: | ||
== Cerințe == | == Cerințe == | ||
- | Nu uitați să inspectați fișierul ''decision-tree-test.rkt'' pentru informații despre formatelor datelor primite și pentru funcții potențial utile. | + | Nu uitați să inspectați fișierul ''decision-tree-test.rkt'' pentru informații despre formatelor datelor primite și pentru funcții potențial utile. Testele folosite pot fi inspectate apelând funcția ''get-test'' având ca argument una dintre valorile '''food-small'', '''food-big'', '''objects'', '''weather'' sau '''bonus'' (pentru bonus). Valoarea întoarsă de ''get-test'' conține informațiile despre exemple de învățare, atribut clasă, set de atribute și exemple de test (fiecare este o listă din care primul element -- numele listei -- va fi eliminat). |
=== Reprezentarea arborelui === | === Reprezentarea arborelui === | ||
Linia 131: | Linia 132: | ||
Primele teste nu verifică alegerea atributelor în funcție de câștigul lor informațional, deci în primă fază arborele poate fi construit alegând atributele în orice ordine. Este doar necesar ca decizia să se facă în mod corect. | Primele teste nu verifică alegerea atributelor în funcție de câștigul lor informațional, deci în primă fază arborele poate fi construit alegând atributele în orice ordine. Este doar necesar ca decizia să se facă în mod corect. | ||
+ | |||
+ | == Debugging == | ||
+ | |||
+ | În depanarea implementării vă pot fi utile următoarele funcții implementate în ''decision-tree-test.rkt'': | ||
+ | |||
+ | * ''(get-test nume-test)'' -- întoarce toate elementele testului cu numele specificat | ||
+ | * ''(get-tree nume-test funcție-creare)'' -- întoarce arborele creat de funcția dată (probabil ''create-tree'') pentru testul cu numele specificat | ||
+ | * ''(perform-test listă-funcții nume-exemplu funcție-creare)'' -- efectuează verificări, folosind funcțiile de acces date (probabil ''functions''), testul cu numele dat, și funcția dată (probabil ''create-tree''): | ||
+ | * creează arborele | ||
+ | * verifică structura arborelui | ||
+ | * coerența structurii în raport cu funcțiile date | ||
+ | * apartenența valorilor din frunze la mulțimea de valori a atributului clasă | ||
+ | * apartenența valorilor din noduri la mulțimea de atribute | ||
+ | * apartenența valorilor de pe ramuri la mulțimea de valori ai atributului verificat în nod | ||
+ | * această testare va afișa erori (prima eroare întâlnită) la consolă | ||
+ | * verifică clasificarea corectă a exemplelor de test, folosind arborele dat | ||
+ | * prima verificare eșuată va afișa eroarea la consolă | ||
+ | * ''(get-tree-height listă-funcții arbore test)'' -- calculează înălțimea arborelui (folosind funcțiile de acces date). Ultimul parametru (poate fi obținut cu ''get-test'') este necesar pentru obținerea valorilor atributelor. | ||
+ | * ''(decide-class listă-funcții arbore exemplu-test)'' -- parcurge arborele dat (folosind funcțiile de acces date) și întoarce clasa la care a fost clasificat exemplul de test. | ||
+ | * ''(check-tree-structure listă-funcții arbore test)'' -- efectuează verificările de mai sus asupra structurii arborelui dat, folosind funcțiile de acces date, și testul dat (poate fi obținut cu ''get-test'', este necesar pentru valorile atributelor și pentru valorile clasei) | ||
== Precizări == | == Precizări == | ||
- | * Încărcarea temelor, ca și testarea și notarea lor, se va face pe ''vmchecker''. Vom reveni cu detalii în timp util. | + | * Încărcarea temelor, ca și testarea și notarea lor, se va face pe ''vmchecker''. Este suficient să includeți fișierul ''decision-tree-create.rkt'' (plus readme) în arhivă, testele există deja. |
+ | * În arhiva temei includeți un fișier README cu detalii despre cum ați implementat structura arborelui. | ||
* Sunt interzise efectele laterale de orice fel (''set!'', ''set-car!'' etc.). | * Sunt interzise efectele laterale de orice fel (''set!'', ''set-car!'' etc.). | ||
* Nu implementați arborele ca listă simplă (liniară, ne-imbricată) în care găsirea nodurilor se face prin calcul de indecși. | * Nu implementați arborele ca listă simplă (liniară, ne-imbricată) în care găsirea nodurilor se face prin calcul de indecși. | ||
Linia 143: | Linia 165: | ||
== Resurse == | == Resurse == | ||
- | * {{:teme15:racket-decizie:racket-decizie.zip|Arhiva de pornire}} | + | * {{15:teme:racket-decizie:racket-decizie.zip|Arhiva de pornire}} |
== Changelog == | == Changelog == | ||
+ | * 30.03 -- corecție test ''food-small'' (mulțumesc Radu-Paul Rădulescu); corecție testare înălțime arbore ''food-big'' în funcție de atributul ales ca rădăcină. | ||
+ | * 25.03 -- vmchecker up. | ||
+ | * 19.03 -- corecție teste food-small, food-big, și bonus (mulțumesc Teodor-Petre Ștefu și Adrian-Nicolae Tănase) | ||
+ | * 19.03 -- adăugare secțiune [[#debugging]] | ||
+ | * 17.03 -- mențiune în enunț a utilității inspectării fișierului ''decision-tree-test.rkt''. | ||
* 14.03 -- corecție (actualizare) documentație aferentă listei ''string'', în ''decision-tree-test.rkt'' (mulțumesc Tiberiu Iorgulescu) | * 14.03 -- corecție (actualizare) documentație aferentă listei ''string'', în ''decision-tree-test.rkt'' (mulțumesc Tiberiu Iorgulescu) | ||
* 11.03 -- corecție documentare funcție get-child (mulțumesc Alexandru Antonică) | * 11.03 -- corecție documentare funcție get-child (mulțumesc Alexandru Antonică) |