Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Il weka un software per le classificazioni Allapertura del programma notiamo che questo diviso in varie parti e sezioni. Le parti studiate sono quelle del pre-process, classify e del select attribute
Con la prassi con cui si apre un qualsiasi file apriamo un Database a caso. Nella parte sinistra della schermata troviamo lelenco degli attributi, mentre guardando a destra notiamo un secondo elenco dove sono elencati i vari valori che l attributo pu assumere, subito sopra infine leggiamo delle parole esplicanti: distinct ovvero quanti valori assume attributo missing dati mancanti unique indica quanti valori assume una sola istanza mean media devstd deviazione standard Un attributo pu essere di 2 tipi: numerico o nominale Considerando il database IRIS e selezionando l'attributo 5 ad esempio, noteremo che l'attributo nominale oltre a una esplicazione dei valori che pu assumere. la parte in basso a destra la trasposizione grafica di quanto scritto nella tabella attribute. Notiamo subito la presenza di un men a tendina, questo permetter di osservare la singola rappresentazione grafica in funzione di un attributo selezionato come base di confronto [si capisce come fare intuitivamente grazie alla diversa colorazione]
By Libero
la rappresentazione grafica varia se il valore dellattributo numerico o nominale, nel primo caso si tratta infatti di una distribuzione statistica altrimenti un istogramma. Passando il mouse sulle singole rappresentazione compare un numero indicante i valori compresi dallistanza in questione
PRE PROCESSING
In questa prima fase cerchiamo di prendere confidenza con i dati, cerchiamo di individuare l attributo classificatore che ci permetta di risolvere il quesito assegnato. Possiamo osservare i dati singolarmente (dalla rappresentazione grafica e dalla tabella attribute) o nell insieme selezionando visualize all In questa fase possiamo utilizzare, per meglio gestire i dati, dei filtri questi saranno scelti cliccando nel riquadro filter su CHOOSE FILTERS UNSUPERVISED ATTRIBUTE e successivamente uno dei seguenti filtri Discretize raggruppa in un numero di gruppi specificati nellapposito campo. Solo su numerici Replace missing value elimina i valori mancanti assegnando ai valori esistenti Merge two Value si applica ai valori nomimali specificando quali valori unire Normalize come discretize ma mette in scala. La scala va specificata nel campo indicando max e min Facciamo un esempio: ipotizziamo di avere un database di un negozio di articoli sportivi e un attributo numerico dove sono raccolte le et dei clienti potrebbe essere utile suddividere tale attributo in fasce di et per studiare la fascia che pi viene attratta dal negozio. Per questo motivo utilizzerei il filtro DISCRETIZE. Cliccando sul nome del filtro si sviluppano nuove opzioni, le pi importanti sono quelle riguardanti discretize: notiamo infatti che si trova la casella ATTRIBUTE INDICES ovvero la specificazione degli attributi su cui applicare il filtro [presente in molti altri filtri ] BINS ovvero il numero di fasce in cui vogliamo dividere lattributo numerico, USE EQUAL FREQUENCY : se settato su true rende gli intervalli simili DESIDERED WEIGHT OF ISTANCES PER INTERVAL : peso desiderato per intervallo
CLASSIFY
In questa fase il software cerca di classificare seguendo degli algoritmi i dati. la fase principale del software, fase in cui si traggono le conclusioni dalla lettura dell albero (sia in forma grafica sia in forma scritta) La classe da utilizzare j48 ed contenuta in CLASSIFIERCHOOSETREESJ48 Per aumentare laccuratezza o diminuire le regole si clicca con il sinistro sulla scritta J48 e anche in questo caso si manipolano i dati. I comandi che possiamo utilizzare per la manipolazione sono: Confidence factor al diminuire del valore diminuisce laccuratezza e le regole MinNumObject diminuisce le regole allaumentare Unprund su true aumenta laccuratezza Binary split settato su true riduce le regole
By Libero
Nel men a tendina si seleziona lattributo identificato come attributo classificatore. Successivamente si clicca su start per far partire il programma Il classify funziona per mezzo di un algoritmo che elabora i dati e produce un output, il processo di elaborazione fatto di 3 fasi: apprendimento,valutazione e misurazione. Le 3 fasi possono essere eseguite in diversi modi selezionabili dallutente nella parte alta e a sini stra dellinterfaccia sezione TEST OPTION: training set utilizza tutti i dati per apprendere e validare supplied test set selezionando un altro file il sistema utilizza per la fase di previsione e valutazione i dati contenuti nel file e per apprendere i dati del database selezionato nel Pre processing. cross validation il sistema prende il set di dati del database selezionato e lo divide in tanti gruppi quanti sono quelli indicati nellapposita finestra chiamata folds. Com questo metodo, con un processo iterativo, la fase di apprendimento sar effettuata su una parte delle cartelle e la fase di verifica sulla restante parte. Il processo iterativo fa si che le cartelle sia mischiate effettuando a vari step valutazione e verifica in maniera tale che tutte le cartelle vengano usate una volta per apprendere e una volta per validare.Ad esempio, dividendo le istanze in 3 folds e chiamandole A,B,C lalgoritmo utilizzer A per apprendere e B e C per validare, poi user B per apprendere e A e C per validare, infine user C per apprendere e A e B per validare. percentage split si precisa quale percentuale del DB utilizzare per fare apprendere il modello
Dopo aver fatto partire lelaborazione ottengo una pagina di output con vari dati. A partire dalla sezione nominata classifier model trovo la rappresentazione testuale dell'albero. In questa sezione ci sono una serie di dati statistici, i primi due sono i pi importanti: la prima riga dice la percentuale di istanze previste corrette e nella seconda le istanze non previste. Nella sezione detailed accuracy by class e a confusion matrix trovo dove stato individuato l'errore. Cliccando col destro sugli elementi della result list posso scegliere di vedere graficamente i risultati e quindi
Processo da seguire
Devo cercare di ottenere un albero leggibile, quindi con poche regole, ma contemporaneamente unalta accuratezza. Questo possibile sfruttando le funzioni di classify e select attribute illustrate sopra e eliminando attributi. In linea di massima le fasi sono: pre-processing select attribute classify
By Libero
non per sempre vero che lalbero deve avere poche regole: se ho un database grande e di qualcosa di importante (tipo medicine), posso esigere una accuratezza del 100% a discapito della leggibilit
By Libero