Analisi di un dataset di perizie assicurative - PowerPoint PPT Presentation

About This Presentation
Title:

Analisi di un dataset di perizie assicurative

Description:

Analisi di un dataset di perizie assicurative Esercitazione Data Mining Analisi in Weka Se importato in Weka il dataset presenta 3 colonne: 1) Etichetta di classe; 2 ... – PowerPoint PPT presentation

Number of Views:41
Avg rating:3.0/5.0
Slides: 47
Provided by: Mass186
Category:

less

Transcript and Presenter's Notes

Title: Analisi di un dataset di perizie assicurative


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

2
Ricapitoliamo
  • 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

3
Struttura 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

4
Operazioni 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..)

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
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
. ..
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 lacquisizione
    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. Letichetta 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 21

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
  • 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

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à
    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.

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 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.

22
Estrazione degli N-gramma più promettenti
23
Rimozione 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

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 lesempio in esame si è deciso di utilizzare
    lalgoritmo 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
no 3899 51
yes 89 1886
29
Il 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

30
Applicazione del modello sul test set
31
Risultati del modello sul test set
32
Matrice 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
33
Analisi 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

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
    allinterno 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 lanalisi è necessario
    trasformarli in attributi del tipo corretto ossia
    binari
  • Per lesecuzione 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
    dellanalisi in corso
  • Per operare questa operazione è possibile
    utilizzare un particolare filtro di Weka,
    lAttributeSelectionFilter

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 lanalisi
  • 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
  • Lutilizzo dei concetti potrebbe permettere di
    migliorare laccuratezza 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 è 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
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
Write a Comment
User Comments (0)
About PowerShow.com