vuoi
o PayPal
tutte le volte che vuoi
Descrizione dei nodi utilizzati per il classificatore
Inoltre ogni nodo ha un semaforo che indica se durante il flusso dei dati si sono verificati degli errori che vengono riportati in una apposita finestra chiamata "Console". Per ciascun nodo inoltre è disponibile una descrizione sintetica in una apposita finestra chiamata "Node description".
Di seguito mostreremo una descrizione di ciascun nodo utilizzato per realizzare il classificatore e mostreremo come evolve il flusso di dati dall'ingresso all'uscita. Cercheremo anche di giustificare perché abbiamo utilizzato questi nodi dando dove necessario alcuni cenni teorici.
54.1 File Reader
Questo nodo viene utilizzato per leggere un file ASCII e può essere configurato per diversi tipi di formato. Nello specifico abbiamo utilizzato questo nodo per leggere il file trainingset.txt e dargli in pasto al classificatore.
Dopo aver caricato il file bisogna fare alcune modifiche:
- Escludiamo la colonna ID in quanto non serve per la classificazione.
Campioni | Features | Classi |
---|---|---|
64.2 | Attribute Selected | Classifier |
4.2.1 Features Selection
Il primo passo per l'utilizzo di un classificatore è la scelta delle features che si vogliono utilizzare per rappresentare i campioni da apprendere. Affinché, infatti, un pattern possa essere esaminato da un classificatore, deve essere descritto mediante un.vettore di caratteristiche (features). Ogni componente di questo vettore viene utilizzata per valutare numericamente un aspetto saliente dei pattern, ossia un aspetto che aiuti a distinguere esempi appartenenti ad una classe e non appartenenti ad altre classi, nel contesto del problema preso in esame.
Nella maggior parte dei casi di interesse pratico, non è possibile trovare una sola feature che sia in grado di determinare l'appartenenza di ogni pattern ad una classe diversa; è quindi necessario trovare un insieme di features che abbiano, nel loro complesso, buon potere discriminante nell'ambito del contesto in esame.
È inoltre da notare che la qualità dell'addestramento di un classificatore è legata anche al numero di campioni ad essa mostrati (ampiezza del training set). In particolare, per avere un buon addestramento, quanto maggiore è il numero di features, tanto più esteso deve essere il training set.
In breve, da un
Lato conviene aumentare il numero di features, per incrementare il potere discriminante, dall'altro invece, considerato che il training set è formato da un numero limitato di campioni, conviene il più possibile diminuire il numero di features.
Si vuol trovare, quindi, il miglior insieme possibile di features avente minima cardinalità. Per miglior insieme di features si intende quell'insieme che massimizza la capacità di classificazione per il problema in esame.
Il termine 'feature selection' si riferisce al problema di scegliere un sottoinsieme ottimale di features a partire da un insieme di features assegnate. Lo scopo della feature selection è trovare un sottoinsieme proprio dell'insieme assegnato di features che abbia lo stesso potere discriminante dell'insieme di partenza.
Con 'feature extraction' ci si riferisce al procedimento di estrarre delle nuove features combinando e trasformando opportunamente alcune.
- features assegnate, allo scopo di avere un insieme di features più piccolo di quello di partenza e che sia inoltre in grado di massimizzare la separazione tra le classi.
- Quello che abbiamo fatto in questo elaborato tramite il nodo AttributeSelectedClassifier è stata proprio la selezione di un gruppo di features che sia rappresentativo. È possibile far leggere al suddetto nodo l'intero training set ed estrarre da questo il miglior sottoinsieme di features in accordo a differenti strategie.
- Nel listato che segue sono mostrate le strategie di selezione utilizzate nel nodo in questione e le relative features che il nodo ha selezionato. Le features selezionate sono: 1, 2, 3, 8.
- Column Filter
- Questo nodo viene utilizzato per filtrare la tabella del training set di partenza in modo tale da pulirla ed estrarre da essa solo le features (le colonne) che abbiamo selezionato in precedenza. Quindi in ingresso ho la tabella del training set caricata nel file reader e in uscita...
104.4 Partitioning |
Questo nodo ha in ingresso la tabella filtrata precedentemente e suddivide in modo casuale l'insieme dei campioni in due sottoinsiemi, crea una partizione. Nello specifico abbiamoutilizzato questo nodo per suddividere l'insieme dei campioni in due sottoinsiemi: uno rappresentativo del Training Set (TS) e l'altro rappresentativo del Training Test Set (TTS). Dal momento che il numero di campioni è sufficientemente elevato si è pensato di fare una suddivisione al 50% settando opportunamente il nodo nella finestra di dialogo opzioni. Questa suddivisione come vedremo ci verrà poi utile in seguito quando andremo a valutare le prestazioni del classificatore. Ottengo quindi in uscita due sottotabelle come in figura: |
114.5 Decision Tree |
Questi due nodi sono il cuore del classificatore vero è proprio, infatti è qui che il classificatore viene prima |
Operativa• 12
Terminato l'addestramento, al classificatore vengono sottoposti campioni non mostrati in precedenza di cui non è nota la classe di appartenenza. Tali campioni vengono classificati e assegnati alla classe pertinente. Questa fase viene fatta appunto dal nodo Decision Tree Predictor il quale riceve in ingresso campioni mai visti prima che si trovano nella tabella relativa al TTS. Sulla base della conoscenza acquisita dal nodo learner il classificatore sarà in grado di assegnare una classe ai campioni in ingresso. All'uscita del classificatore complessivo avremo una tabella contenente i risultati della classificazione i quali verranno poi tradotti in una matrice di classificazione. La tabella ottenuta conterrà per ciascun campione valutato del TTS, come possiamo vedere in figura, la classe predetta dal classificatore e la classe reale del campione.
Di seguito daremo alcuni cenni teorici sulla classificazione mediante un albero decisionale. 134.5.1
Albero Decisionale
L'Albero Decisionale (o Decision Tree) è una tecnica di classificazione ad albero, come dice la parola stessa. Esso viene usato per assegnare la classe appropriata a ciascun dato di ingresso. In particolare è possibile distinguere diverse definizioni, a seconda dell'ambito teorico-applicativo di riferimento:
Nel machine learning un albero di decisione è un modello predittivo, dove:
- ogni nodo interno rappresenta una variabile
- un arco verso un nodo figlio rappresenta un possibile valore per quella proprietà
- una foglia il valore predetto per la variabile obiettivo a partire dai valori delle altre proprietà, che nell'albero è rappresentato dal cammino (path) che va dal nodo radice (root) al nodo foglia.
Nel Data Mining un albero di decisione viene utilizzato per classificare le istanze di grandi quantità di dati (per questo viene anche chiamato albero di classificazione). In questo ambito un
Un albero di decisione descrive una struttura ad albero dove:
- i nodi foglia rappresentano le classificazioni
- le ramificazioni l'insieme delle proprietà che portano a quelle classificazioni.
- di conseguenza ogni nodo interno risulta essere una macro-classe costituita dall'unione delle classi associate ai suoi nodi figli.
Nell'albero decisionale i nodi interni corrispondono a test su un attributo, mentre le foglie sono le categorie di oggetti classificati. Un albero decisionale si costruisce partendo da un training set nel seguente modo: quando tutti i dati su un attributo assumono lo stesso valore crea una foglia, altrimenti genera un nodo interno su un attributo partizionando l'insieme nel modo migliore. Alla fine avremo tante foglie quante sono le classi in cui abbiamo diviso il training set.
Quindi si potrà usare un test set per verificare la correttezza del nostro albero, nel quale ogni cammino dalla radice a una foglia rappresenta un insieme di
Condizioni da verificare. Un problema che sorge nel costruire gli alberi decisionali è che il loro numero è circa esponenziale, e si deve scegliere il migliore. Anche questo passo, come la scelta dell'attributo su cui fare la partizione, si risolve con una funzione di bontà. Esistono due diverse goodness function: l'information gain (information ratio) e la gini index. Entrambe le funzioni sono supportate dall'albero di decisione utilizzato nel nostro classificatore (C4). Queste funzioni implementano degli algoritmi che servono a costruire l'albero decisionale con un metodo top-down, che cioè partendo dalla radice dividono ricorsivamente il training set su un attributo. Questi metodi hanno una fase di pruning per togliere tutti i cammini che portano a errore.
Le caratteristiche principali dei Decision Tree sono le seguenti:
- Sono modelli di classificazione considerati tra i migliori;
- Non costosi da costruire;
- Facili da interpretare;
- Risolvere un problema di matematica
- Riassumere un testo
- Tradurre una frase
- E molto altro ancora...
Per termini, condizioni e privacy, visita la relativa pagina.