Overview

Tema 1 IA  |  Iulius Curt  343 C3
----------------------------------
C4.5 Decision Trees



Rulare:
    > python tema1.py atribute.txt train.txt test.txt --multisplit --pmissfill
    - Argumentele sunt: - fisierul cu descrierea atributelor
                        - fisierul cu datele de antrenare
                        - fisierul cu datele de test (cazuri de clasificat)
                        --multisplit  - activeaza refolosirea la atributele
                                        numerice.
                        --pmissfill  - activeaza completarea valorilor lipsa
                                       din datele de antrenare pe baza unor
                                       formule probabilistice. Daca flagul
                                       lipseste, completarea valorilor lipsa
                                       se face pe principiul majoritatii.

Surse:
    - tema1.py  - fisierul 'main', parseaza fisierele de intrare, apeleaza
                  functiile de constructie, afiseaza etc.
    - decision_tree.py  - functiile de creare arbore decizional, de catalogare
                          a unei intrari, si functii ajutatoare
    - numeric_values.py  - functii specifice atributelor cu valori numerice
    - missing_values.py  - preprocesare cu scopul completarii valorilor lipsa
    - utility.py  - functii ajutatoare de interes general


Scurta descriere a principalelor functii:
    - create_decision_tree  - principala functie, intoarce arborele decizional
    - classify  - clasifica o intrare, tinand cont si de valorile numerice
    - gain  - calculeaza castigul informational, pe baza `entropy`
    - generate_splits  - produce toate impartirile in 2 subarbori posibile
                         pentru un anume atribut cu valoare numerica
    - missing_values_preprocess  - apelata in etapa de preprocesare, pentru a
                                   completa valorile lipsa din setul de date
                                   de invatare