Marco Nanni Applicazioni di Intelligenza Artificiale.

Slides:



Advertisements
Presentazioni simili
Programmazione ad oggetti
Advertisements

Algoritmi e Strutture Dati
Introduzione ad XML Mario Arrigoni Neri.
Sistemi di Classificazione usando NCD
Analisi e progettazione
Informatica Recupero debito quarto anno Terzo incontro.
Procedure e funzioni A. Ferrari.
STRUTTURA DEL PERSONAL COMPUTER
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Metodologie di Programmazione = decomposizione basata su astrazioni
4 – Progettazione – Introduzione e Modello E-R
Ricerca non sperimentale: La ricerca survey (inchiesta)
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Iterazione enumerativa (for)
Introduzione allinformatica. Cosè linformatica ? Scienza della rappresentazione e dellelaborazione dellinformazione ovvero Studio degli algoritmi che.
Algoritmi e strutture Dati - Lezione 7
Il problema della ricerca Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
OPEN OFFICE e IMPRESS Masucci Antonia Maria.
Ricerca della Legge di Controllo
Waikato Environment for Knowledge Analysis
Access: Query semplici
Unità Didattica 2 I Linguaggi di Programmazione
Strutture di controllo in C -- Flow Chart --
Espressioni condizionali
Dipartimento di Ingegneria dellInformazione Università degli Studi di Parma Intelligenza Artificiale Apprendimento Parte 2 Agostino Poggi Stefano Cagnoni.
Il linguaggio ASP Lezione 4 Manipolare i database con ASP Lutilizzo dei FORM per laggiunta dei dati.
DBMS ( Database Management System)
Elementi di Informatica
FORMATTAZIONE CONDIZIONALE & CONVALIDA DATI
STRUTTURA GENERALE DI UN ELABORATORE
L’ingegneria del software
Creazione di un nuovo progetto
Elenchi in Excel E’ possibile inserire le voci del nuovo elenco oppure
1 Ly-LAB Sistema di gestione dei dati analitici di laboratorio.
Linguaggi e modelli computazionali LS Manni Tiziano
Percorso didattico per l’apprendimento di Microsoft Access Modulo 5
LABVIEW Sommario Che cosa è uno strumento virtuale (VI) creato con LABVIEW Parti di un VI: pannello frontale diagramma a blocchi Confronto tra il principio.
DAmb Sergio Lovrinich 28 Settembre Descrizione Questo Software si propone di eseguire una Analisi del Codice Sorgente, mettendo a disposizione Strumenti.
Introduzione a Javascript
PROGETTO E REALIZZAZIONE DI UN COMPONENTE SOFTWARE PROGRAMMABILE PER LA PIANIFICAZIONE DI COMMISSIONI DI LAUREA FACOLTA’ DI INGEGNERIA Corso di Laurea.
Microsoft Access Chiavi, struttura delle tabelle.
1 Ordinamento (Sorting) INPUT: Sequenza di n numeri OUTPUT: Permutazione π = tale che a 1 ’  a 2 ’  … …  a n ’ Continuiamo a discutere il problema dell’ordinamento:
Capitolo 1 Un’introduzione informale agli algoritmi Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Corso di Laurea Specialistica in Ingegneria Gestionale Sistemi Informativi per le decisioni a.a Waikato Environment for Knowledge Analysis Data.
1 Ordinamento (Sorting) Input: Sequenza di n numeri Output: Permutazione π = tale che: a i 1  a i 2  ……  a i n Continuiamo a discutere il problema dell’ordinamento:
Flusso di Costo Minimo Applicazione di algoritmi: Cammini Minimi Successivi (SSP) Esercizio 1 Sia data la seguente rete di flusso, in cui i valori riportati.
Esercitazione no. 4 EXCEL II Laboratorio di Informatica AA 2009/2010.
Informatica e Informatica di Base
Alma Mater Studiorum – Università di Bologna
Microsoft Access (parte 3) Introduzione alle basi di dati Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Cloud Tecno V. Percorso didattico per l’apprendimento di Microsoft Access 4 - Le maschere.
Microsoft Access Filtri, query. Filtri Un filtro è una funzione che provoca la visualizzazione dei soli record contenenti dati che rispondono a un certo.
Dispositivi Mobili per Sentiment Analysis
Informatica Problemi e algoritmi. una situazione che pone delle domande cui si devono dare risposte. Col termine problema o situazione problematica s’indica.
Access Breve introduzione. Componenti E’ possibile utilizzare Access per gestire tutte le informazioni in un unico file. In un file di database di Access.
Parsing ricorsivo discendente Il parsing ricorsivo discendente (recursive descent parsing) è un metodo di tipo top-down che può essere facilmente codificato.
I DONEITÀ DI C ONOSCENZE E C OMPETENZE I NFORMATICHE ( A – D ) Un database è un insieme di record (registrazioni) e di file (archivi) organizzati per uno.
Introduzione a Weka Di Fabio Cassano
ALGORITMI, LINGUAGGI E PROGRAMMI Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
La funzione CASUALE. Gli istogrammi.
1 6 APRILE 2016 Corso Bilanci XBRL novità tassonomia 2015.
Transcript della presentazione:

Marco Nanni Applicazioni di Intelligenza Artificiale

Descrizione del problema Il guadagno informativo di Nanni Il software Weka Cosè weka Il guadagno informativo di Nanni in Weka Risultati sperimentali Sviluppi Futuri

Gli attuali algoritmi per la creazione di alberi decisionali basati sul guadagno decisionale al momento di decidere quale split effettuare scelgono lattributo che presenta il maggior guadagno informativo Può non essere sempre la scelta migliore In certi casi può essere utile unire il risultato dato dal guadagno informativo con altre considerazioni

Immaginiamo sia stata scoperta una nuova malattia, per la quale non ci sono procedure di diagnosi valide. Ai pazienti vengono fatti vari esami. Abbiamo così un database che possiamo dare in pasto ad un albero decisionale. Il risultato sarà la corretta procedura di diagnosi. idPaziente Pressione Arteriosa Presenza proteina XK59 nel sangue Gastroscopia Elettrocardiogramm a alterato Malato? 1150Pos NegSI 2130Neg PosNo 3142PosNegPosNo 4115Neg No 5128Pos NegSi ………………

Al primo passo dellalgoritmo i due attributi che offrono il maggiore guadagno informativo siano Gastroscopia (IG= 0.15) e Presenza proteina XK59 (IG 0.14) posneg Gastroscopia …… …………… Un albero decisionale classico suggerirebbe che il primo passo sia eseguire una gastroscopia a tutta la popolazione posneg Presenza proteina XK59 …… …………… mentre il buon senso impone di preferire in prima battuta le analisi del sangue, molto meno costose ed invasive

Ipotizzando che sia possibile esprimere in maniera numerica i costi di reperimento degli attributi è logico preferire la migliore combinazione tra il costo necessario per ottenere un attributo e il guadagno informativo da esso promesso Il guadagno informativo di Nanni formalizza questo aspetto: è dato dal prodotto del guadagno informativo classico con un peso (compreso tra zero e uno) definito dallutente. In formula: NIG = userWeight * IG Il guadagno informativo legato ad un attributo estremamente costoso sarà, quindi, penalizzato da un peso basso

Weka (Waikato Environment for Knowledge Analysis) è un software per lanalisi dei dati sviluppato dalluniversità di Waikato in Nuova Zelanda, scritto in Java e rilasciato sotto licenza GNU Il software permette con molta semplicità di applicare dei metodi di apprendimento automatici ad un set di dati, e analizzarne il risultato Grazie a questa semplicità di utilizzo ed al fatto di essere open source Weka è diventato un programma molto diffuso in tutti i corsi di machine learning.

Si è sviluppato Lalgoritmo come estensione di J48 la versione Java di C4.5 E in grado di predire attributi categorici basandosi su istanze che presentano attributi categorici attributi numerici tollerando la presenza di valori mancanti. Lalgoritmo presenta, inoltre, tutte le opzioni fornite da J48, con laggiunta dei pesi relativi agli attributi Se vengono specificati meno pesi, gli attributi restanti hanno peso 1 Se vengono specificati più pesi, quelli eccedenti vengono ignorati

Le classi di Weka coinvolte nella classificazione tramite J48 sono le seguenti: La classe principale è J48 che rappresenta lalgoritmo di classificazione Classifier Tree è la struttura dati ad albero usata dal classificatore. Il suo tipo dipende dalle opzioni ModelSelection rappresenta il criterio secondo cui si fa lo split dellalbero C45Split provvede effettivamente a calcolare lo split su un attributo ed il suo guadagno informativo

Il diagramma di sequenza sottostante riassume linterazione tra i vari componenti

Il codice di Weka è stato modificato introducendo le classi descritte dal seguente diagramma Uml:

La classe NIGSplit estende C45Split. Questa classe ha il compito di calcolare lo split ed il relativo guadagno informativo di Nanni per un attributo. Ha un campo per il peso definito dallutente per lattributo in esame, con relativo getter e setter Fornisce anche un metodo per verificare che il peso sia compreso tra zero ed uno (checkUserWeight) Ridefinisce il metodo infoGain in modo da ritornare il guadagno informativo fornito dalla classe madre moltiplicato per il peso specificato dallutente.

La classe NIGModelSelection estende C45ModelSelection. E questa classe che ha il compito di determinare il miglior split tra quelli disponibili in base al guadagno informativo di Nanni. Ha un campo userWeights contenente i pesi dei vari attributi, con relativi getter e setter Ridefinisce il metodo selectModel in modo da creare tanti NIGSplit quanti sono gli attributi e scegliere il miglior split usando il guadagno informativo fornito dal metodo infoGain degli split.

La classe NanniInfoGain rappresenta il classificatore vero e proprio Ha un campo userWeights dove tiene memorizzati i pesi specificati dallutente Ridefinisce il metodo buildClassifier usando non più un C45ModelSelection, ma un NIGModelSelection, al quale passa i pesi definisti dallutente I metodi getUserWeights, setUserWeights userWeights TipText sono usati dallinterfaccia grafica di Weka per permettere allutente di specificare i pesi nella finestra delle opzioni Ridefinisce i metodi getOptions/setOptions, listOption per far sì che il classificatore sia utilizzabile anche attraverso linterfaccia a linea di comando. Il metodo parseWeights consente di trasformare la stringa di pesi inserita dallutente in un vettore numerico, inoltre controlla anche la correttezza dei valori immessi dallutente

Per testare lefficacia dellalgoritmo creato si è usato il dataset Post Operative Patient ( il cui scopo è determinare dove mandare un paziente(dimetterlo S, corsia generica A, oppure in rianimazione I) dopo un intervento chirurgico in base ad una serie di parametri medicihttp://archive.ics.uci.edu/ml/datasets/Post-Operative+Patient il primo split eseguito da J48 è in base allattributo CORE STBL, attributo legato alla stabilità della temperatura interna del paziente Se peso di CORESTBL viene ridotto a 0.5. Gli è preferito lattributo COMFORT, il quale indica quanto si sente bene il paziente

Laccuratezza del classificatore dipende molto da quanto vengono penalizzati gli attributi che più sono utili a determinare la classe risultato. Più questi attributi sono penalizzati da un peso basso, peggiore sarà laccuratezza del classificatore. Questa misura, come facile intuire, ha come upper bound quella di C45, corrispondente allavere pesi uguali per tutti gli attributi. Nellesempio precedente, usando come test-set il 20% del dataset, lalgoritmo classifica correttamente 11 istanze su 18, contro le 12 di C4.5.

Per mostrare le performance dellalgoritmo in base al variare del numero di attributi lo si confronta con J4.8 nella classificazione dellattributo class del dataset Auditology ( ) In particolare si è impostata per ogni prova la cross- validation con 20 folds, Come prevedibile le differenze nei tempi di esecuzione non sono apprezzabili, in quanto l guadagno informativo di Nanni introduce solo una moltiplicazione per attributo

1.Attualmente i pesi sono dei valori compresi tra zero ed uno e restano invariati per tutta la costruzione dellalbero. In futuro si può prevedere di accettare anche funzioni il cui valore può cambiare, ad esempio, in base alla profondità raggiunta o al numero di istanze presenti nel nodo. 2.Si può pensare ad un sistema che accetti non solo preferenze numeriche (quantitative), ma anche preferenze qualitative e condizionali 3.Si può aiutare lutente nel risolvere il tradeoff tra perdita di accuratezza e correttezza nella definizione dei pesi creando un supporto che mostri per ogni nodo intermedio dellalbero i guadagni informativi degli attributi.