Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
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 File testo classe
txt I am to subro…. yes txt Rec subro file… ……………………….. ……………………… …………………. txt No subro file… no txt Receive subro… ………………………… Subro receive…. unknown Go to place…. …………………………. …………………….. ……………………
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: Valore di classe Numero di righe Percentuale Yes 1766 59,62 % No 1196 40,38 %
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 Real/Predicted no yes 3899 51 89 1886
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 Real/Predicted no yes 4108 291 592 1033
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 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 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
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.