1 / 46

Analisi di un dataset di perizie assicurative

Analisi di un dataset di perizie assicurative. Esercitazione Data Mining. Ricapitoliamo….

Télécharger la présentation

Analisi di un dataset di perizie assicurative

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Analisi di un dataset di perizie assicurative Esercitazione Data Mining

  2. Ricapitoliamo… • L’obiettivo dell’analisi che si intende condurre è l’estrapolazione di un modello per il riconoscimento automatico di perizie assicurative che riguardano casi in cui la compagnia può rivalersi sull’assicurato

  3. Struttura del dataset • Il dateset sul quale si intende effettuare l’analisi è disponibile sotto forma di file txt suddivisi per cartelle • Il dataset è strutturato nelle cartelle • yes: rimborsabili • no: non rimborsabili • Unknown: non ancora classificati

  4. Operazioni sul dataset • I dati vengono puliti da possibili errori o da informazioni inutili. • Cleaning: eliminazione caratteri non alfanumerici • (;,:,?,@,#,,, ecc..) • Stemming: individuazione della radice morfologica della parola • (reserved -> reserv) • Stopwords: parole troppo comuni • (the,if,or,I,you, ecc..)

  5. N-grammi • Sono insiemi costituiti da n parole consecutive • Vengono estratti dal dataset con lo scopo di ottenere una matrice di occorrenze: • Ogni riga è un file di testo • Ogni colonna è un ngramma

  6. Acquisizione Database Documenti testuali

  7. Acquisizione • I dati sono documenti ripartiti in 3 sottocartelle. • In ogni sotto cartella sono presenti una serie di documenti suddivisi in base alla classe assegnatagli o no: • yes; • no; • unknown. • ‘unknown’ non è un etichetta di classe, vuol dire che il documento non è stato classificato. • Per ridurre i tempi di acquisizione e di generazione degli N-Gramma, nel caso di approcci tradizionali, è possibile evitare l’acquisizione di questi dati semplicemente rimuovendo la cartella unknown dal folder principale!

  8. Acquisizione: Txt Documents Acquisition

  9. Acquisizione • Si seleziona il folder con i dati, e si forza a Nominal il terzo attributo. • In output sarà creata una tabella con 3 colonne: • 1) Nome del file dal quale il testo è stato acquisito; • 2) Colonna contenente i termini presenti nel documento (StringAttribute); • 3) Colonna di Classe. • N.B. L’etichetta della colonna di classe è data dal nome del folder da cui il documento è estratto.

  10. Acquisizione

  11. I dati

  12. Distribuzione sui dati • Senza considerare i documenti non etichettati la distribuzione per le classi è la seguente:

  13. Distribuzione sui dati

  14. Bilanciamo i dati • Facciamo oversampling • Inseriamo nel workflow un filter resample • Size: 2.0 • Bias: 2:1

  15. Generazione degli N-gramma • Per la generazione degli N-Gramma è possibile utilizzare un particolare filtro del tool • Il filtro opera su campi di tipo StringAttribute • Questo campo sarà sostituito con un nuovo campo di tipo EventCollection

  16. StringToNGramFilter • Il filtro ha diversi parametri: • L’indice della colonna dal quale vogliamo estrarre gli N-grammi; • Il linguaggio con sui scritti i testi; • La frequenza minima per gli N-Grammi da estrarre; • La lunghezza massima per gli N-Grammi da estrarre;

  17. StringToNGramFilter • La lista di caratteri da usare per la suddivisione in token del testo; • La lista delle stop word da utilizzare.

  18. EventCollectionAttribute • Un EventCollectionAttribute è un particolare attributo che al suo interno contiene insiemi di oggetti. • Può avere diversi contesti. • I contesti non sono altro che proprietà dell’attributo. • I contesti disponibili al momento sono: • Frequency: indica la frequenza con cui quel N-gramma (event) compare nel documento acquisito; • Length: indica la lunghezza dell’N-gramma.

  19. Statistiche sugli Eventi

  20. Estrazione degli N-gramma: StringToNGramm Filter

  21. Estrazione degli Events più promettenti • Non tutti gli eventi rappresentano informazione utile per l’analisi in corso • Per eliminare Eventi poco significativi è possibile utilizzare il filtro Remove Events By scoring function • Il filtro in esame utilizza un indice di qualità per ordinare gli eventi ed estrarre i primi N più promettenti, ove N è un parametro del filtro.

  22. Estrazione degli N-gramma più promettenti

  23. Rimozione del campo Document Name • Come ultimo passo di preprocessing si andrà eliminare l’attributo Document_Name • Questo campo si comporta come un ID della tupla quindi ininfluente per l’analisi di mining • Tale rimozione sarà effettuata tramite il filtro remove Attributes già disponibile nel tool

  24. Rimozione campo Document Name

  25. Estrazione del modello • In questa fase andremo ad estrarre un modello predittivo per i documenti estratti • In particolare si vuole ottenere un modello cross validato, per tale ragione invece di utilizzare un simple mining task sarà utilizzato un cross validation mining task

  26. Che algoritmo utilizzare? • Per l’esempio in esame si è deciso di utilizzare l’algoritmo Rule Learner • Gli algoritmi a regole sono particolarmente accurati in situazioni di sbilanciamento fra le classi

  27. Risultati del modello cross validato

  28. Matrice di Confusione • La matrice di confusione per il modello cross-validato sembra molto promettente

  29. Il test set • Si è deciso a questo punto di verificare l’accuratezza del modello estratto sui dati di test in nostro possesso • Come per il training set i dati sono disponibili sotto forma di documenti

  30. Applicazione del modello sul test set

  31. Risultati del modello sul test set

  32. Matrice di Confusione • La matrice di confusione risultante dall’applicazione del modello al test set è la seguente

  33. Analisi in Weka • L’analisi finora condotta e riproducibile anche in Weka trasfomarmando la fonte dati in un formato importabile in Weka • A tal fine è possibile adoperare un semplice programma, il cui sorgente è disponibile in rete, TextDirectoryToArff.java • http://weka.wikispaces.com/file/view/TextDirectoryToArff.java • In questo modo sarà generato un file arff

  34. Analisi in Weka • Se importato in Weka il dataset presenta 3 colonne: • 1) Etichetta di classe; • 2) Testo contenuto nel documento; • 3) Nome del file dal quale il testo è stato acquisito. • Questa tabella non è direttamente trattabile, è necessario fare del pre-processing!

  35. Filtro StringToWordVector • Se si utlizza come tokenizer N-Gramm Tokenizer saranno generati un numero di attributi pari al numero di N-Grammi estratti • Il valore della colonna sarà pari ad 1 o 0 in base alla presenza/assenza di quel N-Gramma all’interno del documento • Utilizzando il filtro è altresì possibile specificare lo stemmer da usare per la fase di estrazione

  36. Filtro StringToWordVector cleaning Stemming No stoplist

  37. NumericToBinary Filter • Gli attributi così estratti si presentano come attributi numerici • Per proseguire con l’analisi è necessario trasformarli in attributi del tipo corretto ossia binari • Per l’esecuzione di questa trasformazione utilizziamo il filtro NumericToBinary

  38. Estrazione degli attributi più promettenti • Anche in questo caso è necessario ridurre il numero di attributi/NGrammi a disposizione, in quanto alcuni poco significativi al fine dell’analisi in corso • Per operare questa operazione è possibile utilizzare un particolare filtro di Weka, l’AttributeSelectionFilter

  39. Estrazione degli attributi più promettenti • Ha 2 parametri: • Indice di qualità da utilizzare per valutare i sotto-insiemi; • Metodo di ricerca da utilizzare.

  40. Che algoritmo utilizzare? • Le operazioni viste finora sono le operazioni necessarie per poter iniziare l’analisi • Da nostre sperimentazioni risultano particolarmente efficaci modelli probabilistici • Sta a voi scegliere il modello che riteniate maggiormente indicato per il caso in questione

  41. Meccanismo di sottomissione dei modelli • Il meccanismo di sottomissione dei modelli è unico ed indipendente dal tool che lo studente deciderà di usare: • Verrà consegnato un dataset NON ETICHETTATO (test set); • Lo studente applicherà il modello estratto sul training al test set generando una colonna con la predizione; • Il test set così etichettato dovrà essere caricato sul sito del torneo.

  42. Concetti/NGrammi • Tra il materiale disponibile è possibile scaricare un file xls di associazione tra gli N-Grammi e dei possibili concetti individuati di esperti di dominio • In particolare la presenza in un dato documento di un certo n-gramma indica che quel concetto è presente nel documento • Ogni concetto può essere associato ad uno o più N-Grammi • L’utilizzo dei concetti potrebbe permettere di migliorare l’accuratezza predittiva

  43. Modelli avanzati • E’ possibile aumentare la qualità del modello? • Possiamo in qualche modo sfruttare la conoscenza fornita dalle tuple ‘unknown’? • Si! Es. Self-training

  44. Self training • Sfruttare le tuple ‘unknown’ per migliorare la qualità del nostro modello • Da cosa partiamo? • modello addestrato sul training set • Classifichiamo con il modello generato le tuple ‘unknown’ • Scegliamo una politica di selezione delle nuove tuple classificate e quindi le uniamo a quelle già presenti nel train • Creiamo un nuovo modello in base al nuovo training set così generato • Ripetiamo questi passi fino al punto fisso Self training

  45. Self training: algoritmo generale • Input:L è il training set dei dati etichettati, U è l’istanza dei dati non etichettati, C è il classificatore istruito, t è il numero delle iterazioni, Θ è il numero delle istanze non etichettate selezionate nella prossima iterazione, M è la metrica di selezione, S(Ut ,Θ ,C , M) è la funzione di selezione, e maxIteration è il numero massimo di iterazioni • Inizialmente: t=0, Lt=L , Ut =U , dove Lt e Ut rappresentano le istanze etichettate e non etichettate alla iterazione t. • Passi dell’algoritmo: • istruisci C su Lt; • St= S(Ut ,Θ ,C , M) , dove St è l’istanza dei dati non etichettati selezionati al passo t • Ut+1=Ut-St ; Lt+1=Lt+St ; • FinchéUt è vuota, oppure abbiamo raggiunto il numero massimo di iterazioni. Politica di selezione

  46. Self training: come selezioniamo le tuple unknown • Non tutte le istanze Unknown sono utili! Pericolo “rumore” • Un approccio possibile: ad ogni passo vogliamo le tuple più “vicine al train set” • Es. Concetto di vicinanza: % di matching del numero di ngrammi in un documento

More Related