Title: Analisi di un dataset di perizie assicurative
1Analisi di un dataset di perizie assicurative
- Esercitazione Data Mining
2Ricapitoliamo
- Lobiettivo dellanalisi che si intende condurre
è lestrapolazione di un modello per il
riconoscimento automatico di perizie assicurative
che riguardano casi in cui la compagnia può
rivalersi sullassicurato
3Struttura del dataset
- Il dateset sul quale si intende effettuare
lanalisi è disponibile sotto forma di file txt
suddivisi per cartelle - Il dataset è strutturato nelle cartelle
- yes rimborsabili
- no non rimborsabili
- Unknown non ancora classificati
4Operazioni sul dataset
- I dati vengono puliti da possibili errori o da
informazioni inutili. - Cleaning eliminazione caratteri non alfanumerici
- (,,?,_at_,,,, ecc..)
- Stemming individuazione della radice morfologica
della parola - (reserved -gt reserv)
- Stopwords parole troppo comuni
- (the,if,or,I,you, ecc..)
5N-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
6Acquisizione
Database
Documenti testuali
File testo classe
907792215990.txt I am to subro. yes
908156218234.txt Rec subro file yes
.. .
100402235301.txt No subro file no
101940233469.txt Receive subro no
.
907792215990.txt Subro receive. unknown
908156218234.txt Go to place. unknown
. ..
7Acquisizione
- 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 lacquisizione
di questi dati semplicemente rimuovendo la
cartella unknown dal folder principale!
8Acquisizione Txt Documents Acquisition
9Acquisizione
- 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. Letichetta della colonna di classe è data
dal nome del folder da cui il documento è
estratto.
10Acquisizione
11I dati
12Distribuzione 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
13Distribuzione sui dati
14Bilanciamo i dati
- Facciamo oversampling
- Inseriamo nel workflow un filter resample
- Size 2.0
- Bias 21
15Generazione 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
16StringToNGramFilter
- Il filtro ha diversi parametri
- Lindice 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
17StringToNGramFilter
- La lista di caratteri da usare per la
suddivisione in token del testo - La lista delle stop word da utilizzare.
18EventCollectionAttribute
- Un EventCollectionAttribute è un particolare
attributo che al suo interno contiene insiemi di
oggetti. - Può avere diversi contesti.
- I contesti non sono altro che proprietÃ
dellattributo. - I contesti disponibili al momento sono
- Frequency indica la frequenza con cui quel
N-gramma (event) compare nel documento acquisito - Length indica la lunghezza dellN-gramma.
19Statistiche sugli Eventi
20Estrazione degli N-gramma StringToNGramm Filter
21Estrazione degli Events più promettenti
- Non tutti gli eventi rappresentano informazione
utile per lanalisi 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.
22Estrazione degli N-gramma più promettenti
23Rimozione del campo Document Name
- Come ultimo passo di preprocessing si andrÃ
eliminare lattributo Document_Name - Questo campo si comporta come un ID della tupla
quindi ininfluente per lanalisi di mining - Tale rimozione sarà effettuata tramite il filtro
remove Attributes già disponibile nel tool
24Rimozione campo Document Name
25Estrazione 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
26Che algoritmo utilizzare?
- Per lesempio in esame si è deciso di utilizzare
lalgoritmo Rule Learner - Gli algoritmi a regole sono particolarmente
accurati in situazioni di sbilanciamento fra le
classi
27Risultati del modello cross validato
28Matrice di Confusione
- La matrice di confusione per il modello
cross-validato sembra molto promettente
Real/Predicted no yes
no 3899 51
yes 89 1886
29Il test set
- Si è deciso a questo punto di verificare
laccuratezza del modello estratto sui dati di
test in nostro possesso - Come per il training set i dati sono disponibili
sotto forma di documenti
30Applicazione del modello sul test set
31Risultati del modello sul test set
32Matrice di Confusione
- La matrice di confusione risultante
dallapplicazione del modello al test set è la
seguente
Real/Predicted no yes
no 4108 291
yes 592 1033
33Analisi in Weka
- Lanalisi 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/TextDirectory
ToArff.java - In questo modo sarà generato un file arff
34Analisi 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!
35Filtro 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
allinterno del documento - Utilizzando il filtro è altresì possibile
specificare lo stemmer da usare per la fase di
estrazione
36Filtro StringToWordVector
cleaning
Stemming
No stoplist
37NumericToBinary Filter
- Gli attributi così estratti si presentano come
attributi numerici - Per proseguire con lanalisi è necessario
trasformarli in attributi del tipo corretto ossia
binari - Per lesecuzione di questa trasformazione
utilizziamo il filtro NumericToBinary
38Estrazione degli attributi più promettenti
- Anche in questo caso è necessario ridurre il
numero di attributi/NGrammi a disposizione, in
quanto alcuni poco significativi al fine
dellanalisi in corso - Per operare questa operazione è possibile
utilizzare un particolare filtro di Weka,
lAttributeSelectionFilter
39Estrazione degli attributi più promettenti
- Ha 2 parametri
- Indice di qualità da utilizzare per valutare i
sotto-insiemi - Metodo di ricerca da utilizzare.
40Che algoritmo utilizzare?
- Le operazioni viste finora sono le operazioni
necessarie per poter iniziare lanalisi - Da nostre sperimentazioni risultano
particolarmente efficaci modelli probabilistici - Sta a voi scegliere il modello che riteniate
maggiormente indicato per il caso in questione
41Meccanismo 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.
42Concetti/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 - Lutilizzo dei concetti potrebbe permettere di
migliorare laccuratezza predittiva
43Modelli 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
45Self training algoritmo generale
- Input L è il training set dei dati etichettati,
U è listanza dei dati non etichettati, C è il
classificatore istruito, t è il numero delle
iterazioni, T è il numero delle istanze non
etichettate selezionate nella prossima
iterazione, M è la metrica di selezione, S(Ut ,T
,C , M) è la funzione di selezione, e
maxIteration è il numero massimo di iterazioni - Inizialmente t0, LtL , Ut U , dove Lt e Ut
rappresentano le istanze etichettate e non
etichettate alla iterazione t. - Passi dellalgoritmo
- istruisci C su Lt
- St S(Ut ,T ,C , M) , dove St è listanza dei
dati non etichettati selezionati al passo t - Ut1Ut-St Lt1LtSt
- Finché Ut è vuota, oppure abbiamo raggiunto il
numero massimo di iterazioni.
Politica di selezione
46Self 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