Sei sulla pagina 1di 56

Universit` a degli Studi di Torino

` DI SCIENZE MATETEMATICHE, FISICHE E NATURALI FACOLTA Corso di Laurea Triennale in Matematica

Tesi di laurea

Uno studio sul riciclaggio di denaro attraverso macchine ad apprendimento automatico

Candidato:

Relatore:

Stefano Cavalli
Matricola 702973

Maria Teresa Giraudo


Correlatore:

Rosa Meo

Anno Accademico 2012-2013

Indice
Introduzione 1 Apprendimento automatico
1.1 Apprendimento supervisionato, non supervisionato e rinforzato 1.1.1 1.1.2 1.1.3 1.2 1.3 1.4 Apprendimento supervisionato . . . . . . . . . . . . . . Apprendimento non supervisionato Apprendimento rinforzato . . . . . . . . . . . . . . . . . . . . . . . . . . .

3 4
5 5 6 6 6 7 8

Classicazione e regressione Metodi induttivi e trasduttivi

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Modelli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2 Fondamenti teorici
2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 Teoria della casualit . . . . . . . . . . . . . . . . . . . . . . . Il test di casualit di Martin-Lf . . . . . . . . . . . . . . . . . Lo spazio degli esempi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L'algoritmo k-Nearest Neighbors (KNN) Creazione della misura di stranezza Test di casualit e p-value

10
10 10 11 12 15 16 16 18

. . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

Indipendenza dall'ordine degli esempi nel data set . . . . . . . Trasductive Condence Machine - k Nearest Neighbors (TCMkNN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3 Riciclaggio di denaro
3.1 3.2 3.3 3.4 3.5 3.6 Riciclaggio e antiriciclaggio . . . . . . . . . . . . . . . . . . . . Conseguenze . . . . . . . . . . . . . . . . . . . . . . . . . . . . Legislazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Procedimenti e tecniche Indicatori di anomalia

20
20 20 21 22 23 24

GIANOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4 Il progetto
4.1 4.2 4.3 Struttura del Dataset . . . . . . . . . . . . . . . . . . . . . . . Metodi di modellizzazione . . . . . . . . . . . . . . . . . . . . Intenti e accorgimenti pratici . . . . . . . . . . . . . . . . . . .

25
25 27 30

5 Alcuni studi sperimentali


5.1 5.2 5.3 5.4 Un dataset alternativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Software per l'implementazione degli algoritmi e per l'analisi . Metodo di valutazione dei risultati Esperimenti . . . . . . . . . . . . . . . . . . . . . . . . . . . .

31
31 33 33 34

Conclusioni Appendice Bibliograa

39 40 49

Introduzione
Il lavoro presentato fa parte di un progetto nanziato dalla Regione Piemonte per la messa a punto di un modello che aiuti gli enti bancari a riconoscere i clienti sospetti di aver intrapreso operazioni illecite di riciclaggio di denaro. Dopo una prima fase di studio del problema, si cercato di individuare gli algoritmi pi indicati alla creazione del modello. L'oggetto particolare di questo lavoro stato un'analisi dei vantaggi che le metodologie trasduttive possono mostrare nei confronti delle metodologie induttive. A causa di un susseguirsi di ritardi nella presentazione dei dati da parte degli istituti bancari legati al progetto, si dovuta fronteggiare la necessit di trovare dataset alternativi per la sperimentazione pratica. In seguito ad alcune ricerche, la scelta ricaduta su un dataset articiale riguardante connessioni internet e intrusioni informatiche. Sono stati implementati gli algoritmi non disponibili nei generici software a licenza gratuita e si , quindi, passati agli esperimenti. Il lavoro si dimostrato essere interessante per la possibilit applicativa di argomenti teorici di statistica.

Capitolo 1 Apprendimento automatico


La statistica classica stata, no alla ne del XX secolo, la disciplina principe per l'estrazione di informazioni. Queste vengono utilizzate come supporto al ne di predire circostanze future auspicabili, cos da mettere a punto le migliori strategie possibili in circostanze come il il

Decision Making.

Problem Solving

Negli ultimi decenni, tuttavia, lo sviluppo delle tecnologie informatiche ha permesso un notevolissimo progresso delle possibilit di archiviazione e di catalogazione dei dati. Le nuove tecniche di Data Mining si stanno rivelando decisamente pi ecaci nel maneggiare quantit di dati sempre maggiori. L'

apprendimento automatico (machine learning ) si colloca tra queste nuo-

ve tecniche e risponde all'esigenza di costruire programmi che migliorino le proprie performance nel tempo - in base all'esperienza e all'elaborazione continua di nuovi dati - ponendosi come obiettivo quello di riconoscere automaticamente modelli complessi per prendere decisioni intelligenti basate sui dati a disposizione. Una denizione pi rigorosa quella proposta Tom M. Mitchell (professore di Machine Learning presso il CMU - Carnegie Mellon University):

Un programma apprende da una certa esperienza E se: nel rispetto di una classe di compiti T, con una misura di prestazione P, la prestazione P misurata nello svolgere il compito T migliorata dall'esperienza E. [1]
La potenza - e dunque il successo - di questi algoritmi si trova nell'eterogeneit delle applicazioni, che spaziano dall'analisi dei mercati nanziari, ai metodi di previsione del tempo atmosferico; dalla diagnosi medica, alla mappatura di codice genetico. E ancora: in ambiti come il riconoscimento vocale e quello di codici a barra, la guida automatica di veicoli, la classicazione di nuove strutture astronomiche e l'elaborazione di strategie vincenti per giochi

CAPITOLO 1.

APPRENDIMENTO AUTOMATICO

strategici come scacchi, dama, backgammon, ecc. D'altra parte la teoria su cui si basano questi processi trae ispirazione da diverse discipline, che non si limitano alla matematica e alla statistica, ma sfruttano, ad esempio, risultati di studi biologici (come nel caso di reti neurali e algoritmi genetici), di losoa, di psicologia, di teoria della complessit computazionale e di teoria dell'informazione. Viene mostrata ora una schematica classicazione in base ai metodi e ai ni dell'apprendimento.

1.1 Apprendimento supervisionato, non supervisionato e rinforzato


I processi di apprendimento possono avvenire, tradizionalmente, attraverso tre direzioni:

1.1.1

Apprendimento supervisionato

La macchina apprende attraverso i diversi attributi di input (tipicamente raccolti in forma di vettore) contenuti nel

training set

assegnato dal super-

visore. Viene generata a tale scopo una funzione di inferenza o una qualche forma generale di regole di decisione, il cui compito sar quello di assegnare ai record ricevuti in input da un nuovo per ogni singolo esempio.

test set

il corretto valore di output

Figura 1.1: Previsioni del tempo

CAPITOLO 1.

APPRENDIMENTO AUTOMATICO

1.1.2

Apprendimento non supervisionato

A dierenza degli algoritmi di tipo precedente, l'apprendimento non supervisionato utile quando le strutture generali dei dati sono sconosciute. La macchina ha dunque il compito di riuscire a classicare gli esempi in input, cercando di identicare autonomamente analogie comuni per la formazione dei

cluster.

All'utente spetta soltanto il compito di scegliere quale algoritmo

particolare utilizzare, senza intervenire attivamente nella determinazione del risultato.

Figura 1.2: Clustering

1.1.3

Apprendimento rinforzato

Gli algoritmi ad

apprendimento rinforzato

cercano di coniugare le capa-

cit di calcolo delle macchine con quelle critiche umane. L'operatore, infatti, interviene in maniera attiva dando un punteggio e indirizzando le esplorazioni eettuate automaticamente. Pi nel dettaglio: l'algoritmo esegue le proprie scelte, la scelta viene valutata e il sottoprogramma che ha eettuato tale scelta viene premiato o penalizzato dal sistema. In questa maniera si riesce a raggiungere l'obiettivo in tempi minori. Talvolta viene creato un programma apposito che fa da valutatore esterno e che prende il posto dell'operatore umano, sostituendolo con uno virtuale. a questa categoria sono: classicatori e i Q-learning algorithms. I principali algoritmi appartenenti le reti neurali, gli algoritmi genetici, i sistemi a

1.2 Classicazione e regressione


Soermandosi sugli algoritmi ad

apprendimento supervisionato,

si pu

eettuare un'ulteriore distinzione in base alla forma assunta dall'output.

CAPITOLO 1.

APPRENDIMENTO AUTOMATICO

Si parla di

classicazione quando gli esempi vengono etichettati con un

numero nito di valori discreti. La predizione di tipo categorico, come per la determinazione di una specie di piante da una variet di alternative possibili, per la determinazione del genere maschile/femminile o per una valutazione di tipo positivo/negativo. Se invece l'attributo da stimare continuo, di natura numerica intera o reale, si utilizza il termine

regressione.

Esempi di regressione possono essere

la stima di una lunghezza, di una temperatura o di un ammontare di denaro.

1.3 Modelli

Alberi di decisione:

costituiscono uno dei metodi pi semplici ed

ecaci per classicare un dataset in un numero nito di classi, attraverso la suddivisione ripetuta dei record. Muovendosi attraverso i vari rami, dalla radice alla foglia, si genera un cammino attraverso le biforcazioni dei nodi e, quindi, una partizione dei dati utile al ne di classicazione/predizione.

Macchine a vettori di supporto (SVM): sviluppate in particolare


per l'individuazione di

pattern

e per la regressione, utilizzano iperpiani I modelli risultano piuttosto

calcolati opportunamente al ne di suddividere lo spazio di rappresentazione degli esempi in classi dierenti. lineari particolarmente complesse. ecienti e sono in grado di rappresentare agevolmente funzioni non

Clustering:

sotto il nome di Clustering si riuniscono un insieme di

tecniche di analisi multivariata dei dati nalizzate alla classicazione e al raggruppamento di oggetti. I metodi si basano su misure di somiglianza e densit tra i record concepite in termini di distanza fra punti in spazi n-dimensionali. La bont dei modelli dipende fortemente dalla scelta della metrica con cui la distanza viene calcolata. I modelli di clustering risultano particolarmente ecaci nell'individuazione di [2]; la rappresentazione mediante

scatter plot

outlier

permette un'immediata

visualizzazione nel caso di dimensioni non troppo elevate.

Reti Bayesiane:

sono modelli graci probabilistici, che rappresen-

tano i legami tra variabili e dipendenze condizionali attraverso gra aciclici orientati, in cui i nodi rappresentano le variabili, mentre gli archi rappresentano le relazioni di dipendenza statistica con le distribuzioni locali di probabilit. Risultano particolarmente utili per la modellizzazione di situazioni reali di incertezza.

CAPITOLO 1.

APPRENDIMENTO AUTOMATICO

Reti neurali articiali:

ispirati alle reti neurali biologiche, questi

modelli matematici imitano le interconnessioni e le interazioni tra neuroni per risolvere problemi ingegneristici e di intelligenza articiale. Il sistema di tipo adattivo, poich cambia la propria struttura in base ad informazioni interne ed esterne che pervengono durante la fase di apprendimento, ed organizzato in nodi, i primi dei quali elaborano i segnali ricevuti trasmettendo il risultato ai nodi successivi. Sono in grado di elaborare grandi quantit di dati mantenendo una certa immunit al

rumore.

Programmazione genetica:

consiste in una programmazione auto-

matizzata ispirata anch'essa alla biologia. La forza di questa metodologia insita nell'evoluzione dell'algoritmo: la forte adattabilit rende la programmazione genetica ecace su un fronte molto ampio di applicazioni. I programmi di analisi si evolvono combinandosi, riproducendosi e mutando per dar vita a programmi dalle prestazioni pi elevate. Per ottenere una buona convergenza, questo tipo di algoritmi necessita di una grande popolazione e, dunque, di una cospicua potenza di calcolo.

1.4 Metodi induttivi e trasduttivi


L'approccio

induttivo per l'apprendimento automatico consiste nel certraining set

care di estrapolare, a partire dagli esempi disponibili, una regola generale di decisione. Questo processo avviene tipicamente in 2 passi: 1. viene analizzato il decisione; 2. si d una predizione per i nuovi esempi incogniti applicando questa funzione al dataset incognito. Dunque la al ne di costruire una funzione di

funzione di decisione

viene costruita prima ancora di avere a

disposizione il dataset da analizzare. Intorno al 1990,

una debolezza [3]: cercare di estrarre un regola generale (inferenza di una funzione ) da un elenco di casi specici non forse un problema pi complicato per i nuovi casi) ristretto al contesto d'interesse? I metodi

Vladimir Vapnik individu in questo tipo di approccio

che limitarsi a trovare un procedimento specico (computazione dell'output

trasduttivi si muovo proprio in questa direzione:

i due passi

del metodo induttivo vengono riuniti in un unico passo, evitando dunque di dover trovare una regola di decisione generale.

CAPITOLO 1.

APPRENDIMENTO AUTOMATICO

Particolarmente interessante il confronto tra induzione e trasduzione nel caso in cui i dati processati si riferiscano a una situazione in cui la popolazione in esame si evolve o modica i propri attributi con il passare del tempo e, quindi, ci si trova di fronte alla necessit di dover analizzare casi sempre nuovi. Supponendo di aver utilizzato l'induzione, al presentarsi di nuovi esempi si pu procedere secondo due dierenti

modus operandi :

applicare direttamente la funzione di predizione calcolata precedentemente agli oggetti di classicazione incognita; inserire quelli di classicazione nota nel training set, generando una nuova funzione di predizione e procedendo alla stima mediante quest'ultima funzione.

Entrambi gli approcci non sono ottimali in quanto evidenziano ciascuno alcune complicazioni: procedere con la generazione di una nuova funzione pu essere computazionalmente costoso e richiedere diverso tempo; d'altra parte, utilizzare sempre la stessa funzione, specie nel caso in cui i nuovi dati siano in quantit considerevole o la popolazione si sia evoluta signicativamente, pu portare a predizioni meno precise o perno errate. Ecco dove il metodo trasduttivo riesce a superare quello induttivo: il modello si evolve mano a mano che gli esempi si aggiungono, senza dover ripartire dall'inferenza della funzione di predizione e senza per questo rimanere obsoleto o inadatto alla computazione dei nuovi casi. La essibilit e la velocit lo rendono migliore in questo tipo di applicazioni. Inoltre, come evidenziato successivamente, si riuscir a dare un dell'esito del processo.

p-value

per la verosimi-

glianza delle stime, ottenendo dunque una valutazione in termini quantitativi

Capitolo 2 Fondamenti teorici


2.1 Teoria della casualit
La denizione di base di tutta la nel suo

Grundbegrie der Wahrscheinlichkeitsrechnung

teoria della probabilit.

casualit

proposta da Kolmogorov nel primo '900 alla I tre assiomi, pubblicati nel 1933 [4], sono stati univer-

salmente accettati e, a partire da questi, sono stati poi sviluppati numerosi altri teoremi. Tali assiomi vengono cos formulati:

Assiomi (di Kolmogorov).


1. A ogni evento casuale a corrisponde un certo numero P (a), chiamato probabilit di a, che soddisfa la disuguaglianza 0 P (a) 1. 2. La probabilit dell'evento certo 1. 3. La probabilit dell'unione di un numero nito o innito numerabile di eventi mutuamente esclusivi pari alla somma delle probabilit di questi eventi.
Per quanto riguarda l' sciti a creare un

della casualit

apprendimento automatico, il merito di essere riucollegamento con la teoria algoritmica della complessit e

va a

Vladimir Vovk, Alex Gammerman e Glenn Shafer

[5], avendone trovato inoltre una possibile applicazione.

2.2 Il test di casualit di Martin-Lf


La seguente denizione il punto di partenza da cui si svilupp successivamente il lavoro di Vovk e Gammermann:

10

CAPITOLO 2.

FONDAMENTI TEORICI

11

ordine n contenente tutti gli esempi classicabili. Una funzione


t : Z [0, 1]

Denizione 2.1 (Test di casualit secondo Martin-Lf ). Sia Z l'insieme di

un test di casualit se: 1. per ogni n N, r [0, 1] e per tutte le possibili distribuzioni P in Z ,
P n {z Z n : t(z ) r} r

2. t superiormente semi computabile (cio pu essere limitata da una funzione computabile maggiorante) value, dove si assume un livello di signicativit r% richiedendo che r% degli esempi si verichino con probabilit inferiore a r%. In altre parole: ci si aspetta che una sequenza di valori z con bassi valori di t(z ) sia abbastanza rara.
Il punto cardine di questa denizione che consente di costruire macchine di cui si possa stabilire una misura di condenza, elemento mancante negli algoritmi di classicazione della statistica classica. Queste macchine vengono denominate

Osservazione: la denizione coincide intuitivamente con quella di p-

TCM (Trasductive Condence Machine).

2.3 Lo spazio degli esempi


Per formulare il problema di apprendimento automatico in termini matematici [6], si considera un insieme tipo

di esempi per il

training set

del

I = {s1 = (x1 , y1 ), . . . , sl = (xl , yl )}


e si pone

sl+1 = (xl+1 , yl+1 )

come nuovo esempio della sequenza binaria ordi-

nata. Volendo misurarne la casualit, si denisce quindi una funzione coerente con la denizione di dell'insieme

test di casualit

t che sia

(vista nel paragrafo preceden-

te). Al ne di facilitarne la visualizzazione, possibile interpretare gli esempi

Rd ,
il

dove

I come punti appartenenti allo spazio vettoriale d-dimensionale xi (i = 1 . . . l) il vettore degli attributi dell'i-esimo esempio, d numero di attributi per ogni esempio e yi il valore dell'attributo di

predizione assunto dall'esempio'i-esimo. possibile introdurre su questo spazio una metrica secondo la seguente denizione:

CAPITOLO 2.

FONDAMENTI TEORICI

12

Denizione 2.2

i vettori corrispondenti in R Rd R una metrica se soddisfa le propriet di:


d+1

(Metrica)

. Siano si

= (xi , yi ), sj = (xj , yj ), sk = (xk , yk ) agli esempi presi in I . Una funzione D :

Non negativit: D(xi , xj ) 0 con d(xi , xj ) = 0 xi = xj Simmetria: D(xi , xj ) = D(xj , xi ) Disuguaglianza triangolare: D(xi , xj ) D(xi , xk ) + D(xk , xj )
In questo modo possibile assegnare una quantit numerica che misuri la distanza tra i diversi esempi in funzione dei loro attributi. Tra le varie distanze possibili si utilizzer, nella maggior parte dei casi, quella euclidea:

si = (xi , yi ), sj = (xj , yj ) appartenenti ad I , D detta distanza euclidea tra si ed sj (in termini


(Distanza euclidea)

Denizione 2.3
di attributi) se:

. Presi due esempi


d

D(xi , xj ) =
h=1

h 2 (xh i xj )

2.4 L'algoritmo k-Nearest Neighbors (KNN)


Il metodo degli esempi. dati iniziali. La fase di training consiste nel riportare i valori del training set nello spazio degli esempi e di assegnare ad essi la corrispondente classicazione. Successivamente si aggiungono gli esempi del test set di cui si vuole stimare la classe e si considerano, per ognuno di questi, altri k-esempi 'vicini' di classicazione nota. processo. nota. In termini pi rigorosi, preso un esempio si denisce La scelta del valore di

k-Nearest Neighbors (KNN)

viene utilizzato per classicare gli

esempi del dataset basandosi sulla relativa distanza di questi nello spazio Tale metodo ha valenza locale e dipende dalla struttura dei

viene assunta dall'utente e,

come si pu vedere chiaramente dalla Figura 2.1, inuenza pesantemente il Ciascun esempio del test set viene dunque assegnato alla classe a cui appartiene la maggior parte degli esempi circostanti di classicazione

sl+1

di classicazione incognita,

C l'insieme a valori discreti niti delle possibili classi y . k esempi {x1 , . . . , xk } sono da considerarsi 'vicini' se non esiste alcun sj tale che D(xl+1 , xj ) < D(xl+1 , xi ) i = 1 . . . k . L'obiettivo trovare una funzione f costruita in modo che, secondo il metodo descritto di sopra, assegni a sl+1 la

CAPITOLO 2.

FONDAMENTI TEORICI

13

relativa classe

di appartenenza. Per poterlo fare in maniera agevole utile

denire due operatori:

Denizione 2.4

(Argomento massimo). Presa una funzione f si denisce l'argomento massimo di tale funzione come:

argmaxf (x) := {x | y : f (y ) f (x)}


x

Denizione 2.5
Kronecker come:

(Delta di Kronecker)

. Si denisce la funzione delta di

(xi , xj ) :=

1 se xi = xj 0 se xi = xj f
applicata all'oggetto di test

Alla luce di ci, la funzione di classicazione

(xl+1 , yl+1 )

risulta come:

f (x) = argmax
y C i=1

(y, yi )

Figura 2.1:

Esempio di classicazione kNN. L'esempio del test set (di


k = 3, l'intorno da considerare
l'intorno da considerare

colore verde) quello che deve essere classicato secondo una delle due classi possibili (indicate con il colori blu e rosso). Se cato come appartenete alla classe rossa. Se quello contenuto nella circonferenza a bordo liscio: l'esempio sar classi-

k = 5,

quello contenuto nella circonferenza a bordo tratteggiato: l'esempio sar classicato come appartenente alla classe blu. La scelta del valore

non comunque l'unica decisione che condiziona

l'esito del processo: la determinazione di una distanza opportuna di fondamentale importanza perch pu risultare talvolta incompatibile con la natura dei dati (ad esempio la distanza euclidea non adatta per la classicazione di testi o immagini). Inoltre, vi dipendenza del risultato dalla scala con cui stata eettuata la misurazione degli attributi (come si evince dalla Figura 2.2) e vi , quindi, la necessit di decidere con cautela come riadattare il dataset in maniera tale che la funzione

risulti denita appropriatamente.

CAPITOLO 2.

FONDAMENTI TEORICI

14

Figura 2.2:

Esempio per scale dierenti.

La scelta della scala inuenza

la misurazione della distanza fra i punti.

Utilizzando un'unit di misura

maggiore, si pu notare che il punto pi vicino ad

risulta essere quello

rosso nella prima rappresentazione, quello blu nella seconda.

[Algoritmo kNN] INPUT: x_1 ... x_l vettori per gli attributi degli esempi y_1 ... y_l rispettiva classe di appartenenza per tali esempi x_l+1 vettore degli attributi per il nuovo esempio da classificare k c numero delle classi possibili OUTPUT: y_l+1 predizione della classe per l'esempio l+1-esimo PASSO 1: calcolare la distanza da x_l+1 di ogni x_i PASSO 2: costruire l'insieme U(x_l+1) contenenti i k esempi vicini PASSO 3: per j=(1...c) PASSO 4: porre contatore(j)=numero degli esempi in U di classe j PASSO 5: determinare il j per cui massimo contatore(j) PASSO 6: porre y_l+1=j

CAPITOLO 2.

FONDAMENTI TEORICI

15

2.5 Creazione della misura di stranezza


Dopo aver analizzato l'algoritmo k-Nearest Neighbors, necessario introdurre una nuova variabile per l'approssimazione di casualit. Tale variabile nalizzata alla creazione di un livello di 'stranezza' per tutti gli esempi del training set e per i nuovi esempi del dataset di classicazione incognita. L'idea intuitiva alla base di questa misura di voler stimare quantitativamente il discostamento di un particolare esempio - con i propri attributi - dagli altri esempi in relazione alla classicazione, ovvero quanto questo esempio risulti 'strano' rispetto agli altri. Esistono ovviamente diversi modi in cui denire tale misura, e la maniera in cui viene calcolata dipende direttamente dal tipo di algoritmo scelto per l'apprendimento automatico di macchine trasduttive. Per quanto riguarda l'algoritmo k-Nearest Neighbors, la misura di stranezza - denotata nello specico con la lettera greca

- calcolata per mezzo

della distanza euclidea tra i vari esempi del test set nello spazio degli esempi. Si denisce una sequenza (in ordine crescente) di distanze fra esempi nella seguente maniera:

y Di

denota l'insieme ordinato delle distanze dell'esempio

si

dagli altri

esempi di uguale classicazione

y,
y Di .

y Dij

la

j -esima

distanza della sequenza

Analogamente:

y Di

denota l'insieme ordinato delle distanze dell'esempio

si

dagli altri

esempi con classicazione diversa da

y,
y Di .

y Dij

la

j -esima

distanza della sequenza

A partire dai dati presenti nel dataset, ora possibile assegnare una misura di stranezza
k y Dij

i = si

j =1 k j =1

y Dij

per ogni esempio

di classicazione

y.

Osservazione. Questa denizione abbastanza naturale, infatti la misura


di stranezza di un esempio aumenta quando:

CAPITOLO 2.

FONDAMENTI TEORICI

16

la distanza degli esempi della stessa classe aumenta; la distanza dagli esempi di altre classi diminuisce.

Osservazione. La classicazione per l'esempio sl+1 incognita (si ricorda che sl+1 il primo degli esempi del test set). La misura di stranezza l+1 associata a tale esempio deve essere quindi computata per ogni possibile classicazione y C .

2.6 Test di casualit e p-value


Uno dei vantaggi del metodo trasduttivo quello di poter assegnare un livello di condenza (p-value) per ogni classicazione dei punti stimati secondo le classi assegnate [7]. Tale livello di condenza viene calcolato attraverso una funzione

che dipende dalle misure di stranezza calcolate per gli esem-

pi del data set e consente di misurare quanto bene i dati verichino una determinata ipotesi nulla. Supponendo di voler calcolare il p-value per la classicazione del primo esempio

sl+1

del test set, si ricorre alla seguente funzione di test:

p(l+1 ) =

#{i : i l+1 , 1 i l + 1} l+1 si


siano almeno strani quanto

Questa funzione descrive numericamente, con valori appartenenti all'intervallo

[0, 1],

l'idea di quanto gli esempi

sl+1 ,

cio la probabilit di osservare un punto del test set nello spazio degli esempi che sia pi estremo degli esempi del training set. Per valori di p prossimi ad 1, l'esempio

sl+1

si comporta in maniera simile agli altri esempi del training

set; viceversa, per valori prossimi allo 0, l'esempio dunque, a riutare l'ipotesi nulla del test.

sl+1

da considerarsi ati-

pico rispetto al comportamento degli esempi del training set e si portati,

2.7 Indipendenza dall'ordine degli esempi nel data set


Viene introdotta ora una nuova ipotesi da prendere in considerazione, fondamentale per lo sviluppo della teoria da questo punto in avanti: si richiede che non ci sia dipendenza della funzione test introdotta dall'ordine degli esempi contenuti nel dataset. In altre parole, si richiede che la funzione di test

p(l+1 ) sia invariante rispetto a tutte le permutazioni della sequenza = (s1 , . . . , sl+1 ). Tale ipotesi comporta che la misura di stranezza di ogni

CAPITOLO 2.

FONDAMENTI TEORICI

17

esempio

sia a sua volta invariante e non dipenda a sua volta dall'ordine

degli elementi di

S.

Ecco un fondamentale risultato dovuto agli studi pubblicati da Vovk e Gammerman nel 1999 [8]:

Teorema 2.1 (Validit del test di casualit). La funzione


p(l+1 ) = #{i : i l+1 , 1 i l + 1} l+1

un test di casualit secondo la denizione di Martin-Lf sotto l'ipotesi di invarianza di p(l+1 ) rispetto a tutte le permutazioni della sequenza S = (s1 , . . . , sl+1 ). Dimostrazione.
Si consideri la sequenza

S = (s1 , . . . , sl+1 ).

Le sottosequenze

(s1 , . . . , sl ) e (sl+1 ) costituiscono rispettivamente il trai-

ning set ed il dataset incognito. Sia

il coeciente di stranezza associato a

si

per una qualche possibile

classicazione

y C. Sj (S)
l'insieme dei

Sia denito

pi piccoli

associati agli

si S.

Per dimostrare che occorre vericare che:

verica le condizioni di Martin-Lf, e quindi la tesi,

P (s Z l+1 : p(l+1 ) p

j ) l+1

j l+1

'superiormente semi computabile'

Per brevit viene riportata la verica della sola prima ipotesi; la seconda richiederebbe uno studio pi complesso e approfondito di teoria della computabilit che esula dai ni del lavoro svolto.
j ; dunque il valore di stral+1 nezza l+1 associato all'esempio sl+1 appartiene all'insieme ordinato Sj (S)
Per denizione di

p(),

si ha che

p(l+1 ) =

dei

esempi pi strani.

Per l'ipotesi di indipendenza dall'ordine della sequenza

S = (s1 , . . . , sl+1 ),

ogni esempio pu trovarsi in una qualsiasi posizione con la stessa probabilit.

CAPITOLO 2.

FONDAMENTI TEORICI

18

Tale probabilit pari a Ci sono

j . l+1
nella sequenza j j . Segue che la probabilit di avere p(l+1 ) = l+1

dierenti posizioni in cui possibile trovare

l+1

Sj (S),

poich #(Sj (S)) = j , e quindi si completa la dimostrazione. l+1

2.8 Trasductive Condence Machine - k Nearest Neighbors (TCM-kNN)


Si vuole ora rielaborare l'algoritmo k-Nearest Neighbors in modo da renderlo meno statico: tale algoritmo, infatti, mancando di adattamento, non pu ancora denirsi una macchina trasduttiva. Come visto precedentemente, il kNN prende in esame l'intero training set per l'addestramento, senza utilizzare alcuna informazione del dataset di classicazione incognita; l'obiettivo posto per quello di creare un processo che migliori le proprie prestazioni mediante l'esperienza (ovvero l'inferenza svolta). Ecco allora che entrano in gioco le misure di distanza fra classi e di stranezza ed i test di casualit deniti nei paragra precedenti. Per ogni esempio del training set vengono calcolate le distanze dagli altri esempi della stessa classe e di classe diversa da quella assegnata. Quindi si procede al calcolo delle misure di stranezza per ogni esempio del training set. Si passa, dunque, a lavorare sul dataset di classicazione incognita: per il primo elemento del dataset incognito, classicato secondo ogni classe possibile, si calcola la distanza da ogni altro esempio del training set; se questo risulta essere uno dei primi

vicini per qualche esempio del training set, allora si aggiorna il valore

di stranezza per quell'esempio. Si procede al calcolo della misura di stranezza alpha e del p-value per l'esempio in questione del dataset di classicazione icognita secondo ogni possibile classe

y C

e si classica tale esempio in

base alla classe assegnata al valore pi alto dei p-value. Similmente vengono classicati gli esempi del dataset di classicazione incognita successivi al primo. Osservando con attenzione si nota come, con il procedere delle analisi, i valori di alpha vengano continuamente aggiornati (dove richiesto) e dunque anche il modello. Grazie a questo accorgimento sar possibile far evolvere il modello anche in maniera incrementale.

[Algoritmo TCM-kNN] INPUT: x_1 ... x_l vettori per gli attributi degli esempi y_1 ... y_l rispettiva classe di appartenenza per tali

CAPITOLO 2.

FONDAMENTI TEORICI

19

esempi x_l+1 vettore degli attributi per il nuovo esempio da classificare k c numero delle classi possibili OUTPUT: y_l+1 predizione della classe per l'esempio l+1-esimo PASSO 1: calcolare la distanze tra tutti gli x_i della stessa classe (D^y_ij) e di classe diversa (D^(-y)_ij) PASSO 2: calcolare alpha per ciascun x_i PASSO 3: per i=(1...l) PASSO 4: per j=(1...c) PASSO 5: se D^y_ij > dist(x_l+1,x_i) allora ricalcolare alpha_i PASSO 6: se D^(-y)_ij > dist(x_l+1,x_i) allora ricalcolare alpha_i PASSO 7: calcolare alpha_l+1 e pvalue_l+1 secondo la classificazione j PASSO 8: determinare il pvalue_l+1 massimo al variare di y PASSO 9: porre y_l+1=j
Per la stima di regioni ad alta densit, un algoritmo pi opportuno, basato sempre sul kNN, quello del One-Class Neighbor Machine (OCNM) [9].

Capitolo 3 Riciclaggio di denaro


3.1 Riciclaggio e antiriciclaggio
L'insieme delle operazioni volte a reinvestire denaro, capitali e beni materiali ottenuti in maniera illecita (es.: rapine, riscatti, traci illegali, evasione scale, ecc.) al ne di restituirne una parvenza lecita, costituisce quello che viene denito come procedimento di

riciclaggio.

Tramite questo procedi-

mento, il denaro sporco viene ripulito, cancellando le tracce che potrebbero aiutare a ricostruirne l'origine delittuosa, in maniera da poter essere reimmerso nei circuiti economici e nanziari legali, evitando quindi di incorrere nelle pene e nelle sanzioni previste dalla legge. Riuscire a contenere le azioni di riciclaggio considerata come parte integrante della lotta alla criminalit organizzata. Diventa dunque sempre pi importante tentare di mettere a punto sistemi e metodi di illecite.

antiriciclaggio

nalizzati al cercare di contenere, controllare e contrastare tali operazioni

3.2 Conseguenze
La Banca d'Italia ha compiuto alcuni studi sulle conseguenze dovute al riciclaggio di denaro. Tali conseguenze hanno dimostrato avere diverse implicazioni importanti che vanno oltre la mera sottrazione indebita di denaro allo stato. stato riscontrato, in primis, un forte legame tra fenomeni di riciclaggio e casi di

corruzione, la quale porta, come facile immaginare, ad evasione scale.


20 L'importanza delle conseguenze

un inevitabile degrado della gestione pubblica delle zone pi criminalmente colpite e della cosa pubblica pi in generale. al riciclaggio quello dell' Un altro fenomeno collegato

legate al mancato pagamento dei tributi particolarmente rilevante per via

CAPITOLO 3.

RICICLAGGIO DI DENARO

21

di un numero decisamente maggiore di persone coinvolte rispetto a quelle implicate nei meccanismi di corruzione, che rende cospicuo, dunque, anche l'ammontare del denaro interessato. Esso riguarda infatti non solo le aziende, le imprese - di ogni genere e dimensione - e la Pubblica Amministrazione, ma anche, come conferma uno studio eettuato dalla Guardia di Finanza nell'anno 2007, professionisti e artigiani: quali commercialisti, notai, ragionieri, avvocati, ora, consulenti del lavoro, idraulici ecc. Capita peraltro abbastanza di sovente che il denaro sottratto alle casse statali venga poi riutilizzato per la corruzione. Oltre ai danni concreti riscontrati da questi comportamenti illegittimi, il riciclaggio e l'evasione scale portano anche a una

distorsione dell'analisi del

bilancio pubblico, del calcolo del PIL e dell'andamento economico generale del paese che a loro volta possono rendere poco ecaci le strategie di politica interna ed estera. Proprio per questo motivo il monitoraggio degli scambi illeciti di denaro risulta dicoltoso e viene, dunque, espresso in intervalli di condenza: la ricchezza nascosta al sco viene stimata in una dimensione minima e massima del fenomeno.

3.3 Legislazione
Viste le notevoli conseguenze del fenomeno di riciclaggio a livello sociale, politico ed economico, le casistiche sono regolamentate da articoli e direttive di livello nazionale e sovranazionale (in particolare dall'UE) volte a porre un freno a questo tipo di crimini. In Italia gli art. 648 e 648bis prevedono i reati di ricettazione, riciclaggio e impegno di denaro, beni o utilit di provenienza illecita. In ambito europeo, invece, la direttiva 2006/70/CE dell'agosto 2006 e la terza direttiva del 2005/60/CE riportano criteri tecnici per la verica della clientela di ogni genere di ente (aziende, banche, assicurazioni, piccole imprese, associazioni, ecc.) anche nel caso di attivit esercitate in modo occasionale o su scala comunque limitata. Tali misure sono state attuate al ne di cercare di ottenere un controllo pi capillare e specico sul personale stesso degli enti interessati. Nell'intento di prevenire e contrastare il riciclaggio, si messo in atto un sistema di controlli atti a fornire la piena conoscenza del cliente secondo proli di afdabilit e la tracciabilit delle transazioni nanziarie al ne di individuare operazioni sospette. Come da decreto legislativo 231/07, viene instaurato un sistema di collaborazione tra enti e organi di controllo sia dal punto di vista attivo (segnalazione vera e propria) che passivo (conservazione di documenti e prolazione approfondita del titolare eettivo).

CAPITOLO 3.

RICICLAGGIO DI DENARO

22

Oltre alle operazioni di verica della clientela, si rende necessario adottare uno standard tecnico omogeneo tra gli operatori per la raccolta e la catalogazione di tutti i dati necessari ad accertamenti e indagini su tutto il sistema; la creazione dell' questa precisa esigenza. Riassumendo il tutto, il sistema di controllo si basa su tre istituti fondamentali: 1. 2. 3.

Archivio Unico Informatico - AUI risponde a

verica della clientela; archiviazione e catalogazione dei rapporti e delle operazioni; individuazione delle transazioni sospette e segnalazione.

Anche la Banca d'Italia ha delineato, dal 1 settembre 2011, una serie di disposizioni antiriciclaggio:

la la

responsabilizzazione del personale (dipendente ed esterno); chiara denizione di ruoli, compiti e responsabilit all'interno del
a ni pre-

personale stesso; l'

istituzione di un'apposita funzione antiriciclaggio

ventivi; la creazione di

funzioni di controllo per la valutazione del rischio

associabile ad un cliente; la

collaborazione attiva tra enti e addetti al controllo.

3.4 Procedimenti e tecniche


Le tecniche di riciclaggio sono andate man mano anandosi: maggiori sono le cifre in gioco, maggiori saranno i controlli, quindi maggiore sar l'attenzione necessaria a mettere a punto meccanismi in grado di eludere questi controlli. In generale si possono riconoscere tre procedimenti, ovvero tre fasi tramite le quali si delinea l'operazione di riciclaggio:

collocamento (placement stage): i proventi illeciti vengono immessi


nel mercato lecito;

CAPITOLO 3.

RICICLAGGIO DI DENARO

23

dissimulamento o straticazione (layering stage):


perdere le tracce dell'operazione originale;

viene eettua-

ta una certa quantit di operazioni sul mercato lecito in maniera da far

rientro (integration stage):


dell'azione di riciclaggio.

gli importi investiti tornano al mandate

Sebbene per ciascuno di questi procedimenti le tecniche di riciclaggio siano molte e diversicate, esistono alcuni comportamenti privilegiati. Il collocamento avviene solitamente tramite prestanome o soggetti terzi complici del riciclaggio che depositano la somma di denaro preso le banche o altri intermediari. La straticazione privilegia trasferimenti verso conti aperti in paesi in cui le norme antiriciclaggio risultano deboli o inesistenti (i cosiddetti paradisi scali). Ma l'ultimo procedimento quello cruciale, in cui il rischio di essere individuati aumenta perch sar il punto di inizio delle indagini da parte degli addetti al controllo. Per questo motivo probabilmente, proprio in questa fase le tecniche si diversicano in maniera pi accentuata: si va dalla sottoscrizione di prestiti verso se stessi (

loan back ) al trasferimento di smurng ).

denaro in grande quantit ma suddiviso in piccole parti il cui ammontare sia inferiore alle soglie ssate per l'identicazione ( Talvolta il processo di riciclaggio risulta troncato dopo le fasi di collocamento e dissimulamento in quanto il denaro pu non ritornare al committente, ma fermarsi ad esempio all'estero, presso imprese terze compiacenti, parenti o amici (

money trasfering ).

3.5 Indicatori di anomalia


Il problema da risolvere, ora, quello di poter riconoscere, con una sufciente precisione (ovvero una condenza numerica), le transazioni sospette sui cui soermarsi per eseguire indagini di approfondimento [10]. necessario riuscire a codicare una serie di comportamenti - indicatori di anomalia che sono stati riconosciuti in precedenza come caratteristici di operazioni di riciclaggio. Ministero dell'Interno, della Giustizia e Banca d'Italia hanno pubblicato dei veri e propri indici di riferimento per gli indicatori di anomalia. Vengono elencati qui di seguito alcuni di essi:

Operazioni con congurazione illogica, specie se economicamente o nanziariamente svantaggiose per il cliente, che non risultano in alcun modo giusticate.

CAPITOLO 3.

RICICLAGGIO DI DENARO

24

Operazioni che risultano inusuali rispetto alla prassi di mercato ovvero eettuate con modalit e strumenti signicativamente diversi da quelli utilizzati dagli altri operatori attivi nello stesso comparto, in assenza di qualsivoglia giusticazione.

Operazioni di investimento di natura nanziaria incoerenti, per caratteristiche e importi, con il prolo economico-patrimoniale o l'attivit esercitata dal cliente o dall'eventuale gruppo societario cui lo stesso appartiene.

Frequenti operazioni per importi di poco inferiori ai limiti di legge, con presumibili nalit elusive degli obblighi antiriciclaggio, soprattutto se eettuate in contanti, in assenza di giusticate esigenze.

Pagamento di fatture con ricorso a modalit che ostacolano la chiara identicazione della provenienza dei fondi (es. negoziale, in assenza di adeguate giusticazioni. tramite conti di corrispondenza) o comportano l'intervento di terzi estranei al rapporto

3.6 GIANOS
Il software GIANOS (acronimo di Generatore Indici di Anomalia per Operazioni Sospette) quello utilizzato a livello pratico per processare i dati di conti, transazioni, trasferimenti di denaro recuperati attraverso la collaborazione attiva delle banche. Le anomalie sono elaborate da centinaia di regole pressate, messe a punto da un comitato interbancario di esperti sulla base di istruzioni operative emanate della Banca d'Italia. Al termine dell'elaborazione dei dati in input, GIANOS restituisce la prolazione di tutti i clienti che hanno eettuato almeno una registrazione negli ultimi 12 mesi. Senza GIANOS, l'AUI sarebbe solo un'enorme base senza alcuna utilit pratica. Il codice sorgente del software e i criteri di classicazione sono naturalmente tenuti segreti, poich la conoscenza delle procedure seguite potrebbe suggerire nuovi schemi di riciclaggio messi a punto per risultare invisibili al controllo.

Capitolo 4 Il progetto
Il progetto su cui si lavorato fa parte di un piano di ricerca pi ampio commissionato dalla Regione Piemonte. Tale progetto consiste nel cercare di dare agli enti bancari la possibilit di identicare i clienti sospetti di aver eettuato operazioni illecite volte al riciclaggio di denaro sporco. Il lavoro viene incontro, dunque, alla necessit di fornire una collaborazione attiva tra istituto bancario ed ente di controllo statale: la banca, essendo a conoscenza delle transazioni di ogni cliente, provvede a segnalare quelle sospette su cui le Autorit di Vigilanza eettueranno ulteriori approfondimenti no ad arrivare ad una possibile denuncia del soggetto in esame. Tale collaborazione di tipo bilaterale: da una parte le segnalazioni della banca aiutano l'ente di controllo nella lotta al riciclaggio di denaro, dall'altra le informazioni a disposizione di quest'ultimo al termine delle indagini di approfondimento permettono alle banche di anare, ed eventualmente correggere, il modello di identicazione dei clienti sospetti.

4.1 Struttura del Dataset


I dati su cui si basa il modello consistono nella lista di tutte le operazioni nanziarie eettuate da tutti i clienti della banca in un arco di tempo stabilito. Queste operazioni costituiscono gli esempi del dataset in input e ciascuno di essi fornito dei seguenti attributi:

data e ora dell'operazione (funzione di ID); numero identicativo del conto (tipo stringa); importo dell'operazione (tipo numerico); beneciario dell'operazione (tipo stringa);
25

CAPITOLO 4.

IL PROGETTO

26

tipologia operazione (tipo stringa con valori estratti da una lista del
tipo: versamento, ritiro, bonico, giroconto, ecc.);

valutazione del sospetto di operazione illecita (tipo booleano con


valore di etichetta).

L'obiettivo quello di poter assegnare un'etichetta del tipo sitivo e viceversa. Si pu notare tuttavia che l'attributo

positivo/negativo

ad ogni cliente, dove le operazioni ritenute sospette vengono indicate con po-

cliente non compare

nel dataset. Questo normale, perch ogni cliente pu essere titolare di pi conti, ciascuno dei quali determinato da movimenti di denaro ben diversi. Il metodo per procedere consiste, quindi, nell'assegnare l'etichetta ad ogni operazione, legata ad un preciso numero di conto, a sua volta legato ai dati anagraci del titolare; avendo etichettato la singola operazione come sospetta si sono dunque etichettati a cascata un conto e un titolare. Tanto pi saranno segnalate come sospette le operazioni eettuate da un preciso conto, tanto pi sospetto sar da ritenere il comportamento del titolare del conto stesso.

Figura 4.1:

Struttura del dataset.


Parte del dataset presenter una

La classicazione dell'operazione viene utilizzata come variabile obiettivo per gli algoritmi che verranno utilizzati. classicazione conosciuta, la parte complementare sar invece incognita. Il dataset non ordinato secondo il criterio valutazione nota/ignota, come prima operazione si provvede, quindi, alla segmentazione del dataset in 2 sotto punto dell'algoritmo. Questo dataset viene suddiviso a sua volta in training set (addestramento del modello) e test set (valutazione del modello). dataset. Il dataset con classicazioni note viene utilizzato per la messa a

La dimensione del dataset in esame dell'ordine delle decine di GigaBytes, per questo motivo training set e test set vengono ridimensionati ulteriormente attraverso un ltro basato sull'attributo della data (che viene richiesta appartenere a un periodo di tempo limitato proporzionato alle capacit di calcolo del calcolatore). Un parametro importante da tenere in considerazione il rapporto tra elementi positivi e negativi. Nel caso in esame, le operazioni di riciclaggio

CAPITOLO 4.

IL PROGETTO

27

rappresentano sicuramente un piccola minoranza rispetto alla quantit di operazioni lecite. Dunque un controllo da eettuare certamente quello di vericare che i modelli scelti per l'inferenza siano compatibili con questa forte sproporzione.

4.2 Metodi di modellizzazione


Vengono presentate in questa sezione alcune metodologie di approccio al problema che si scelto di prendere in esame.

Induttivo
La prima analisi da eettuare consiste nell'applicare algoritmi induttivi classici come kNN (cnf. 2.4), SVM, alberi decisionali e reti neurali. La nalit di questo tipo di analisi quella di creare un metro di paragone per le tecniche trasduttive e valutare, quindi, dierenze di risultati in maniera da individuare pregi e difetti di entrambe le tecniche inerenti al caso specico del riciclaggio di denaro. Tale raronto nalizzato a vericare che le propriet teoriche siano riscontrate anche nell'analisi pratica. Si procede alla creazione di un training set per l'addestramento contenente al suo interno operazioni di tipo positivo e negativo in maniera da mantenere il giusto rapporto tra le parti. Successivamente, si procede alla validazione del modello ottenuto tramite test set e si valutano i risultati.

Trasduttivo classico (passivo)


In seconda analisi si passa all'addestramento del modello kNN trasduttivo mediante l'algoritmo classico (cnf. ottenuti dalle tecniche induttive . L'aumento di prestazioni pu essere riscontrato secondo due diversi proli: 2.8). Per quanto riguarda popolazioni non evolutive, questo modello dovrebbe avere risultati comparabili con quelli

tempi di calcolo inferiori nel caso si voglia aumentare le dimensioni


del training set;

adabilit delle predizioni elaborate, poich il modello acquisisce


esperienza dalle inferenze passate o da un ampliamento del training set. Dunque ci si aspetta di riscontrare risultati migliori al crescere della taglia del dataset da classicare, poich il modello ha la possibilit di acquisire una maggiore esperienza, e nel caso di popolazioni in

CAPITOLO 4.

IL PROGETTO

28

evoluzione, poich le tecniche induttive non presentano alcuna capacit di adattamento.

[Algoritmo TCM-kNN-P] INPUT: x_1 ... x_l vettori per gli attributi degli esempi y_1 ... y_l rispettiva classe di appartenenza per tali esempi x_l+1...x_n vettore degli attributi per il nuovo esempio da classificare k OUTPUT: predizione della classe y_j per gli x_l+1...x_n PASSO 1: calcolare D^S_ij, D^N_ij PASSO 2: costruire le matrici KS/KN di dimensioni l*k degli indici dei primi k vicini classificati come S/N PASSO 3: calcolare gli alpha_i per ogni s_i con i=(1...l) PASSO 4: per j=(l+1...n) PASSO 5: per i=(1...l) PASSO 6: se s_j risulta essere uno dei primi k vicini per s_i classificato come S/N allora PASSO 7: aggiornare la i-esima riga di KS/KN PASSO 8: ricalcolare alpha_i PASSO 9: calcolare alpha_j e pvalue_j per entrambe le classificazioni S/N PASSO 10: porre y_j come S/N in base al pvalue associato pi grande
Trasduttivo attivo
Si vuole introdurre, ora, una parte interattiva nell'elaborazione del modello. Questa nuova funzionalit permette di sfruttare le capacit di aggiornamento incrementale del modello, introducendo nuovi esempi di classicazione nota. Ci permette di indirizzare l'evoluzione del modello in maniera da colmarne eventuali limiti o vulnerabilit. La nuova porzione di training set da aggiungere verr elaborata da un agente esterno che, attraverso indagini alternative, ha classicato con certezza nuove operazioni (sospette e normali). Questo nuovo set, per distinguerlo dal training set originale, verr denominato d'ora in avanti

asked set.

Da tenere in considerazione il fatto che si voglia assolutamente evitare di ricalcolare il modello ex novo su di un set formato dall'unione degli elementi del vecchio training set e dell'asked set: per dataset particolarmente estesi

CAPITOLO 4.

IL PROGETTO

29

come nel caso in esame, tale procedimento sarebbe infatti molto costoso in termini sia di tempo che di denaro. Pi nel dettaglio, dopo aver elaborato il modello iniziale tramite algoritmo TCM-kNN classico, con l'accorgimento di aver salvato le distanze reciproche tra gli elementi che lo compongono e i valori di stranezza associati, si calcolano le distanze reciproche di tutti gli elementi dell'asked set tra loro e quelle tra tutti gli elementi dell'asked set e gli esempi di training set. Si aggiornano gli alpha per gli esempi del training set in considerazione dei primi k-vicini appartenenti all'unione degli elementi di training set ed asked set e, inne, si calcolano i valori di stranezza per gli elementi appartenenti all'asked set. A questo punto il modello stato aggiornato. Si considera come nuovo training set l'unione degli elementi del vecchio training set e dell'asked set, e si procede con l'inferenza come previsto dal TCM-kNN classico.

[Algoritmo TCM-kNN-A] INPUT: x_1 ... x_l vettori per gli attributi degli esempi y_1 ... y_l rispettiva classe di appartenenza per tali esempi x_l+1...x_l+nasked dove nasked la taglia dell'askedset x_l+nasked...x_n vettore degli attributi per il nuovo esempio da classificare k OUTPUT: predizione della classe y_j per gli x_l+1...x_n PASSO 1: eseguire i PASSI [1-2-3] del TCM-kNN-P PASSO 2: si riceve in INPUT l'askedset PASSO 3: ampliare le matrici KS/KN aggiungendo in coda i primi k vicini degli esempi dell'askedset PASSO 4: accodare l'askedset al trainingset formando un unico set di l+nasked righe PASSO 5: per h=(l+1...l+nasked) PASSO 6: per i=(1...l) PASSO 7: se s_h risulta essere uno dei primi k vicini per s_i classificato come S/N allora PASSO 8: aggiornare la i-esima riga di KS/KN PASSO 9: ricalcolare alpha_i PASSO 10: porre l=l+nasked PASSO 11: per j=(l+1...n) eseguire i PASSI [9-10] del TCM-kNN-P

CAPITOLO 4.

IL PROGETTO

30

Trasduttivo attivo migliorato


Da quanto visto nel paragrafo precedente, l'agente esterno si limita a fornire un asked set corretto senza aver impiegato alcuna particolare attenzione nella scelta di quali esempi prendere in considerazione. L'ideale sarebbe riuscire a includere nell'asked set il minor numero possibile di oggetti (per minimizzare i tempi di calcolo) tali da consentire il massimo aumento delle prestazioni predittive. L'idea inerente al procedimento da attuare consiste nell'eettuare una prima classicazione tramite TCM-kNN classico, in modo da avere un'etichettatura preliminare del dataset incognito con relativi valori di stranezza e p-value. Dopo questa classicazione, che non ancora quella denitiva, si considerano gli

n-asked

elementi di classicazione pi incerta (ci possibile

proprio grazie ai p-value introdotti): tali esempi saranno quelli che l'agente esterno dovr analizzare per vericarne la classicazione certa e, quindi, andranno a costituire l'asked set a cui applicare poi l'algoritmo TCM-kNN-A. I valori di incertezza possono essere misurati tramite:

i valori stessi dei p-value; la dierenza, in valore assoluto, tra i valori dei p-value secondo la classicazione come operazione normale e sospetta.

4.3 Intenti e accorgimenti pratici


Bisogna eettuare un distinguo tra obiettivi teorici e pratici. L'interesse teorico sarebbe, naturalmente, quello di poter prevedere ogni operazione bancaria; a livello pratico, per, potrebbe essere pi interessante focalizzare le risorse su un numero di elementi ristretto ma di classicazione meno incerta. Una buona idea sarebbe quella di eseguire la stima soltanto degli elementi la cui condenza di predizione abbastanza elevata. Un'altra osservazione riguarda la calibrazione del modello in base al tipo di risultati che si vogliono ottenere. Dal punto di vista teorico sarebbe preferibile cercare di rilevare il maggior numero di operazioni sospette possibile, questo signicherebbe per diminuire la precisione del modello aumentando il numero di falsi positivi. A livello pratico, sempre in un'ottica di risparmio delle risorse economiche, un modello pi preciso (ma che rischia di aumentare il numero di falsi negativi prodotti) permette quindi di arrivare alla ne delle indagini con un risultato pi procuo: sarebbe uno spreco impegnare i propri mezzi nella ricerca di persone sospette di attivit illecite che invece si rivelino essere innocenti.

Capitolo 5 Alcuni studi sperimentali


5.1 Un dataset alternativo
A causa di problemi legati all'anonimizzazione dei dati e al susseguirsi di ritardi nella presentazione degli stessi da parte degli istituti bancari legati al progetto, si dovuta fronteggiare la necessit di trovare dataset alternativi per la sperimentazione pratica delle tecniche di analisi esposte nei precedenti capitoli. Tra le varie opzioni disponibili, si cercato di trovare un problema che racchiudesse al suo interno il maggior numero di caratteristiche comuni a quelle legate al riciclaggio - o che comunque ne conservasse i costrutti pi rilevanti. Il dataset scelto in seguito alle considerazioni di cui sopra si riferisce alla tabulazione di connessioni internet mirata al riconoscimento di intrusioni informatiche. Verranno ora illustrate le caratteristiche comuni tra i fenomeni di riciclaggio di denaro e di intrusioni informatiche che hanno indirizzato a questo tipo di scelta.

Caratteristiche comuni

Dimensione del dataset:

i dati in esame sono particolarmente cospi-

cui: i record registrati, nel caso del riciclaggio di denaro, si riferiscono alle operazioni bancarie di diversi mesi. Le dimensioni del dataset sono dell'ordine di grandezza dei GigaByte. In maniera abbastanza semplice, vista la velocit con cui avvengono le connessioni di rete, si pu costruire un dataset dello stesso ordine di grandezza.

31

CAPITOLO 5.

ALCUNI STUDI SPERIMENTALI

32

Carattere binario della classicazione:


chettatura di tipo (comportamento normale).

positivo (operazione sospetta/intrusione) o negativo

in entrambi i casi, l'eti-

Proporzionalit tra elementi di classicazione positiva e negativa: considerando l'ecacia di un modello, un parametro da tenere in
forte considerazione riguarda il rapporto tra le taglie delle varie classi appartenenti alla popolazione: alcuni tipi di procedure lavorano meglio in presenza di una certa omogeneit; altri tipi invece sono studiati per rendere al meglio in caso di forte sbilanciamento; inne esistono procedure che non risentono particolarmente di queste dierenze. Nel caso del riciclaggio di denaro, come in quello delle intrusioni, si assume che i casi di tipo positivo risultino essere una piccola percentuale rispetto alla stragrande maggioranza delle operazione di tipo prassi.

normale :

le intrusioni o le operazioni di riciclaggio non rappresentano certo la

Diversicazione delle tecniche:

come esistono diverse tecniche di

riciclaggio di denaro, cos esistono diversi tipi di attacchi nalizzati all'intrusione informatica. Si vuole che il modello sia eciente per il numero maggiore di tecniche possibili, se cos non fosse si rischierebbe di lasciare una forte vulnerabilit per i tipi di attacco non riconosciuti.

Evoluzione delle tecniche:

l'intensicarsi dei controlli volti a con-

trastare sia le intrusioni informatiche che le operazioni di riciclaggio ha fatto s che le tecniche di elusione dei controlli si sviluppassero nel tentativo di risultare sempre meno rintracciabili. Un buon modello dovrebbe essere in grado, almeno in parte, di riconoscere come sospetti anche eventi diversi da quelli vericatisi al momento dell'addestramento: a un'evoluzione delle metodologie criminose dovrebbe corrispondere un'evoluzione del modello di controllo.

Camuamento:

a causa della loro natura illecita, tanto le intrusio-

ni quanto le operazioni di riciclaggio vengono eettuate in maniera da cercare di risultare invisibili se non ad esami accurati. Se si fosse scelto come dataset alternativo un tipo di dataset legato ad esempio ad attivit biologiche, si sarebbe persa questa caratteristica. Il dataset scelto risultato, inoltre, interessante dal punto di vista accademico, in quanto completamente etichettato. Questo ha consentito la costruzione di diversi tipi di training e di test set in maniera da valutare il comportamento dei modelli su diverse casistiche. Tale approccio, che sarebbe risultato impossibile lavorando direttamente sul dataset bancario, ha

CAPITOLO 5.

ALCUNI STUDI SPERIMENTALI

33

permesso di indirizzare la ricerca cercando di ricreare alcuni tipi di situazioni auspicabili.

5.2 Software per l'implementazione degli algoritmi e per l'analisi


Per quanto riguarda l'importazione, il trattamento, l'analisi e la valutazione dei dati si scelto di lavorare con il software open source Esso utilizza un sistema di lavoro basato su

workow, integra al suo interno

KNIME.

numerosi tipi di algoritmi induttivi gi implementati per la messa a punto dei modelli e dispone di un'interfaccia graca user friendly. Si utilizzato in particolare il modulo integrato per l'analisi dei dati mediante metodo kNearest Neighbors. Purtroppo il software KNIME non mette a disposizione dell'utente alcun algoritmo di tipo trasduttivo, si pensato quindi di implementare l'algoritmo TCM-NN mediante un software esterno. Vista l'ottima compatibilit con

R,

un software environment free orientato alla computazione statistica e all'analisi graca dei risultati, si pensato di eseguire la valutazione dell'inferenza direttamente in KNIME, utilizzando uno

snippet di R per la programmazione.

Entrambi i software sono reperibili direttamente dal web attraverso i seguenti indirizzi:

http://www.knime.org/ http://www.r-project.org/

5.3 Metodo di valutazione dei risultati


Per valutare i risultati ottenuti, si scelto di utilizzare particolari misure calcolate a partire dagli esiti della classicazione. Ad ogni record stata associata la classe predetta dal modello a quella vera e si contato il numero di occorrenze trovato per ciascuna di queste associazioni. L'esito viene rappresentato mediante una Figura 5.1 Una matrice di questo genere permette di avere un immediata visione delle occorrenze di:

matrice di confusione

simile a quella della

veri positivi :
sione;

la classe predetta corretta e corrisponde ad una intru-

CAPITOLO 5.

ALCUNI STUDI SPERIMENTALI

34

Figura 5.1:

Struttura di una matrice di confusione.

veri negativi :
connessione;

la classe predetta corretta e corrisponde ad una normale

falsi positivi : falsi negativi :

viene erroneamente etichettata come intrusione una con-

nessione che in realt di tipo normale; viene erroneamente etichettata come normale una con-

nessione che in realt di tipo intrusivo. Particolarmente utili per la valutazione sono anche le seguenti misure:

precisione =

vero positivo vero positivo+f also positivo

rappresenta la probabilit che un oggetto predetto come positivo lo sia veramente.

recall =

vero positivo vero positivo+f also negativo

rappresenta la probabilit che un oggetto di tipo positivo sia stato etichettato come tale.

F 1 score = 2

precisionerecall precisione+recall

d una misura per la bont del modello. Pu essere generalizzato con opportuni coecienti in modo da premiare o punire la valutazione in base ai valori di precisione e di recall [11].

5.4 Esperimenti
Al ne di rendere pi agevole la lettura, si scelto di non mostrare, nel corso di questo capitolo, le matrici di confusione complete degli esiti delle analisi. Per una visione pi completa dei risultati si rimanda alle tavole in Appendice.

CAPITOLO 5.

ALCUNI STUDI SPERIMENTALI

35

Esperimento 0 - il modello random


Si voluto testare innanzi tutto quale potesse essere la prestazione di un algoritmo che predica in maniera casuale le intrusioni e i normali con una probabilit di 0.5 a partire da un dataset non etichettato con 5 intrusioni ogni 95 normali. La matrice di confusione per un modello di questo tipo Tanto pi l'F1-score di porta a un risultato simile a quello in Figura 5.2.

Figura 5.2:

Modello Random

Dataset: 10000 (500 intrusioni, 9500 normali) un modello costruito risulter maggiore di 0.09, tanto pi il modello potr considerarsi buono.

Esperimento 1 - variazioni di k
Il primo esperimento condotto stato necessario come calibrazione degli algoritmi per i successivi esperimenti: bisognava trovare il valore di congurazioni:

per cui

i modelli risultassero pi ecaci. Per l'analisi sono state scelte le seguenti

Dataset: Test set:

10000 (500 intrusioni, 9500 normali) 200 (tra intrusioni e normali)

Training set:
variabile

2000 (tra intrusioni e normali)

k:

Training set e dataset sono stati estratti casualmente dal dataset iniziale. S scelta una dimensione di test set molto maggiore rispetto a quella del training set per cercare di conservare le proporzioni su cui si dovr lavorare nel caso del problema di riciclaggio del denaro. Sempre per lo stesso motivo, si scelto, nella composizione del dataset, un rapporto tra intrusioni e normali fortemente sproporzionato. miglior valore per Come possibile vericare dalla Figura 5.3, il

pari a 2. All'aumentare di

le prestazioni di entrambi

CAPITOLO 5.

ALCUNI STUDI SPERIMENTALI

36

Figura 5.3:

Struttura del dataset.

gli algoritmi diminuiscono: essendo entrambi gli algoritmi basati su un meccanismo di maggioranza dei vicini dell'esempio da stimare, visto il rapporto tra intrusioni e normali molto piccolo, le prime dicilmente riusciranno a trovarsi in numero superiore alle altre, inuenzando quindi la predizione. Da questo primo esperimento si pu notare inoltre una maggiore robustezza del kNN rispetto alla precisione a dispetto del valore di recall che ottiene risultati migliori nel TCM-kNN.

Esperimento 2 - popolazione bilanciata


Si voluto vericare in secondo luogo quanto le prestazioni degli algoritmi siano migliori nel caso di popolazioni bilanciate. L'esperimento stato svolto secondo i seguenti parametri:

Dataset: Test set:

9000 (4000 intrusioni, 5000 normali) 200 (tra intrusioni e normali)

Training set:
variabile

2000 (tra intrusioni e normali)

k:

Entrambi gli algoritmi hanno registrato un F-Score molto elevato (kNN 0.90; TCM-kNN 0.91). Si pu dunque concludere che le prestazioni sono decisa-

CAPITOLO 5.

ALCUNI STUDI SPERIMENTALI

37

mente superiori che nel caso di popolazioni sbilanciate. Per il caso del riciclaggio di denaro sar di fondamentale importanza vericate quanto questo sbilanciamento sia pronunciato. Il valore di

k stato scelto pari a 2 perch era

quello per cui i modelli ottenevano le migliori prestazioni nell'Esperimento 1.

Esperimento 3 - dimensione del test set


Variando le dimensioni del test set, si voluto controllare se vi fosse una qualche dierenza di prestazioni tra kNN e TCM-kNN. Si quindi composto l'esperimento come elencato:

Dataset: Test set:


2

10000 (500 intrusioni, 9500 normali) 200 (tra intrusioni e normali)

Training set:

variabile (tra intrusioni e normali)

k:

Mentre il modello TCM-kNN risultato pi performante al crescere dell'ampiezza del test set (F-score: 0.55 (500 elementi); 0.57 (1000 elementi); 0.60 (3000 elementi)), il modello kNN ha subito un peggioramento di prestazioni (F-score: 0.50 (500 elementi); 0.48 (1000 elementi); 0.45 (3000 elementi)). La debolezza del kNN dovuta al fatto che il training set diventa poco rappresentativo al crescere del test set. All'aumentare delle dimensioni del test set, il TCM-kNN acquisisce, invece, maggiore esperienza; in questo modo riesce a riscontrare meno falsi positivi della controparte induttiva, mantenendo pressoch inalterata la precisione (punta di forza del kNN).

Esperimento 4 - popolazione evolutiva


Con gli Esperimenti 4 e 5 si cercato di ricostruire una popolazione che evolvesse le proprie caratteristiche nel tempo. Si costruito un training set in cui comparissero solo intrusioni di una determinata tipologia (

satan ) e un

test set che racchiudesse al suo interno intrusioni di anche altri tipi. I metodi di intrusioni, quindi, non sono sempre gli stessi: se ne sviluppano di nuovi che non erano presenti al momento dell'addestramento. particolare situazione: Si vuole valutare la risposta degli algoritmi kNN, TCM-kNN e TCM-kNN-ATTIVO in questa

Dataset:

10000 (500 intrusioni, 9500 normali) 200 (tra intrusioni del solo tipo satan e normali)

Training set:

Test set:
2

variabile (tra intrusioni varie e normali) 100 (tra intrusioni varie e normali)

Asked set:

k:

Il kNN (F-score 0.37) mostra avere la precisione pi alta di tutti (pari a 1.00) riconoscendo la quasi totalit delle intrusioni

satan

su cui era stato

addestrato; come preventivabile, per, non riesce a identicare le intrusioni di tipologia diversa e ottiene, quindi, un valore di recall piuttosto basso. Gli algoritmi induttivi evidenziano una migliore capacit di adattamento, riconoscendo un numero di intrusioni 0.36, TCM-kNN-A 0.46)

nuove decisamente superiore.

L'esperienza

maturata dal modello attivo garantisce risultati migliori (F-score: TCM-kNN

Esperimento 5 - addestramento attivo mirato


E' possibile indirizzare l'aggiornamento del TCM-kNN-ATTIVO con un'opportuna scelta dell'asked set? L'Esperimento 5 nalizzato a rispondere a tale domanda. Si provato a costruire un asked set che comprendesse al suo interno soltanto intrusioni: il modello stato addestrato a sucienza nel training set per quanto riguarda gli esempi normali vista la grande quantit che componeva il dataset, mentre ha bisogno di potersi calibrare sulle intrusioni di tipologia diversa da quella costituente il training set. Ecco quindi i parametri scelti:

Dataset: Test set:


2

10000 (500 intrusioni, 9500 normali) 200 (tra intrusioni del solo tipo satan e normali)

Training set: Asked set:

variabile (tra intrusioni varie e normali) 8 (tra intrusioni varie)

k:

L'aggiunta di un asked set di dimensioni ridottissime, ma costruito come spiegato, porta ad un apprezzabile miglioramento (F-score: kNN 0.39, TCMkNN 0.43, TCM-kNN-A 0.54 -

sullo stesso test set ).

Il miglioramento dello

stesso ordine di grandezza di quello riscontrato nell'Esperimento 4, ma con il vantaggio di aver introdotto un asked set di dimensioni considerevolmente inferiori, risparmiando calcoli alla macchina e lavoro all'agente esterno. Un approccio di questo tipo comunque rischioso: si palesato un forte

overtting

per dimensioni dell'asked set mirato molto elevate.

38

Conclusioni
I risultati degli esperimenti eseguiti risultano certamente indicativi, ma sono necessarie ulteriori veriche per poter assumere come denitivi gli esiti raccolti. Bisogner eseguire una pi approfondita

cross validation del dataset

iniziale per calcolare la matrice di confusione nale su un numero maggiore di esperimenti. Si dovranno utilizzare dataset di dimensioni decisamente maggiori per poter valutare anche i tempi di calcolo necessari ad addestramento e inferenza. Si dovr estendere il confronto anche ad algoritmi di natura diversa da quella del kNN e del TCM-kNN. Inne, si dovr controllare se i modelli studiati risultino essere adatti al dataset specico del problema di riciclaggio rispetto a quanto non lo siano per il caso delle intrusioni informatiche. Per quanto riguarda le ulteriori possibilit da esplorare, potrebbe essere interessante lavorare supponendo di non conoscere alcuna etichetta del dataset in input, cercare di utilizzare il p-value per indirizzare lo sviluppo attivo in maniera pi ecace o stabilire dopo quante iterazioni l'esperienza acquisita dall'algoritmo trasduttivo non porta pi ad un apprezzabile miglioramento delle prestazioni.

39

Appendice
Sorgente per il TCM-kNN-P
intrusionset = read.csv("/intrusion.csv") dmatrix = read.csv("C/matricedistanzeintrusion.csv", header=FALSE) attach(intrusionset) start=proc.time()[3] unlabeledset=subset(intrusionset,intrusionset$Prediction!="normal" & intrusionset$Prediction!="intrusion") r=nrow(unlabeledset) n=nrow(intrusionset) l=n-r k=$${Ik}$$ #crea le matrici degli indici dei primi k-vicini KN e KI KN=matrix(nrow=n,ncol=k) KI=matrix(nrow=n,ncol=k) for (i in 1:l) { rigaN=dmatrix[i,1:l] rigaI=dmatrix[i,1:l] rigaN[i]=NA rigaI[i]=NA rigaN[intrusionset$Prediction=="intrusion"]=NA rigaI[intrusionset$Prediction=="normal"]=NA for (j in 1:k) { KN[i,j]=which.min(rigaN) KI[i,j]=which.min(rigaI)
40

rigaN[KN[i,j]]=NA rigaI[KI[i,j]]=NA

#calcola gli alpha per tutti gli esempi del training for (i in 1:l) { alphaI=sum(dmatrix[i,KI[i,]])/sum(dmatrix[i,KN[i,]]) if (intrusionset[i, "class"]=="intrusion") { intrusionset[i, "alpha"]=alphaI } else { intrusionset[i, "alpha"]=1/alphaI } } #aggiorno KI e KN per il test set for (i in (l+1):(n)) { rigaN=dmatrix[i,1:l] rigaI=dmatrix[i,1:l] rigaN[intrusionset$Prediction=="intrusion"]=NA rigaI[intrusionset$Prediction=="normal"]=NA for (j in 1:k) { KN[i,j]=which.min(rigaN) KI[i,j]=which.min(rigaI) rigaN[KN[i,j]]=NA rigaI[KI[i,j]]=NA } } #rielabora gli alpha for (i in (l+1):n) { for (j in 1:l) { if (intrusionset[j, "class"]=="intrusion")
41

} else { if(dmatrix[j,KN[j,k]]>dmatrix[i,j]) { KN[j,k]=i h=k while(dmatrix[j,KN[j,h]]<dmatrix[j,KN[j,h-1]]) { KN[j,h]=KN[j,h-1] KN[j,h-1]=i h=h-1 if(h==1) {break} } alpha=sum(dmatrix[j,KN[j,]])/sum(dmatrix[j,KI[j,]]) intrusionset[j, "alpha"]=alpha } }

if(dmatrix[j,KI[j,k]]>dmatrix[i,j]) { KI[j,k]=i h=k while(dmatrix[j,KI[j,h]]<dmatrix[j,KI[j,h-1]]) { KI[j,h]=KI[j,h-1] KI[j,h-1]=i h=h-1 if(h==1) {break} } alpha=sum(dmatrix[j,KI[j,]])/sum(dmatrix[j,KN[j,]]) intrusionset[j, "alpha"]=alpha }

#calcola alphaI sul test set alphaI=sum(dmatrix[i,KI[i,]])/sum(dmatrix[i,KN[i,]]) alphaN=(1/alphaI) alphavectorI=intrusionset[1:(l),] alphavectorI=alphavectorI[alphavectorI$Prediction=="intrusion", "alpha"]
42

alphavectorN=intrusionset[1:(l),] alphavectorN=alphavectorN[alphavectorN$Prediction=="normal", "alpha"] #calcola p-value e classifica pI=length(alphavectorI[alphavectorI[]>=alphaI])/(length( alphavectorI)+1) pN=length(alphavectorN[alphavectorN[]>=alphaN])/(length( alphavectorN)+1) if (pI>=pN) { intrusionset[i, "alpha"]=alphaI intrusionset[i, "Prediction"]="intrusion" } else { intrusionset[i, "alpha"]=alphaN intrusionset[i, "Prediction"]="normal" }

stop=proc.time()[3] time=stop-start print("tempo di esecuzione (s): ") print(time) R<-intrusionset[(l+1):n,c(1,2)]

Sorgente per il TCM-kNN-A


intrusionset = read.csv("/intrusionasked.csv") dmatrix = read.csv("/matricedistanzeintrusionasked.csv", header=FALSE) attach(intrusionset) start=proc.time()[3] unlabeledset=subset(intrusionset,intrusionset$Prediction!="normal" & intrusionset$Prediction!="intrusion") r=nrow(unlabeledset)
43

n=nrow(intrusionset) l=n-r k=$${Ik}$$ nasked=$${Inasked}$$ #crea le matrici degli indici dei primi k-vicini KN e KI KN=matrix(nrow=n,ncol=k) KI=matrix(nrow=n,ncol=k) for (i in 1:l) { rigaN=dmatrix[i,1:l] rigaI=dmatrix[i,1:l] rigaN[i]=NA rigaI[i]=NA rigaN[intrusionset$Prediction=="intrusion"]=NA rigaI[intrusionset$Prediction=="normal"]=NA for (j in 1:k) { KN[i,j]=which.min(rigaN) KI[i,j]=which.min(rigaI) rigaN[KN[i,j]]=NA rigaI[KI[i,j]]=NA } } #calcola gli alpha per tutti gli esempi del training for (i in 1:l) { alphaI=sum(dmatrix[i,KI[i,]])/sum(dmatrix[i,KN[i,]]) if (intrusionset[i, "class"]=="intrusion") { intrusionset[i, "alpha"]=alphaI } else { intrusionset[i, "alpha"]=1/alphaI } } #aggiorna le etichette prediction per l'asked set for (i in (l+1):(l+nasked))
44

{ }

label=intrusionset[i, "class"] intrusionset[i, "Prediction"]=label

#aggiorna KI e KN per l'asked set for (i in (l+1):(l+nasked)) { rigaN=dmatrix[i,1:(l+nasked)] rigaI=dmatrix[i,1:(l+nasked)] rigaN[i]=NA rigaI[i]=NA rigaN[intrusionset$Prediction=="intrusion"]=NA rigaI[intrusionset$Prediction=="normal"]=NA for (j in 1:k) { KN[i,j]=which.min(rigaN) KI[i,j]=which.min(rigaI) rigaN[KN[i,j]]=NA rigaI[KI[i,j]]=NA } } #rielabora gli alpha del training set in base all'asked set for (i in (l+1):(l+nasked)) { for (j in 1:l) { if (intrusionset[j, "class"]=="intrusion") { if(dmatrix[j,KI[j,k]]>dmatrix[i,j]) { KI[j,k]=i h=k while(dmatrix[j,KI[j,h]]<dmatrix[j,KI[j,h-1]]) { KI[j,h]=KI[j,h-1] KI[j,h-1]=i h=h-1 if(h==1) {break} }
45

} else { if(dmatrix[j,KN[j,k]]>dmatrix[i,j]) { KN[j,k]=i h=k while(dmatrix[j,KN[j,h]]<dmatrix[j,KN[j,h-1]]) { KN[j,h]=KN[j,h-1] KN[j,h-1]=i h=h-1 if(h==1) {break} } alpha=sum(dmatrix[j,KN[j,]])/sum(dmatrix[j,KI[j,]]) intrusionset[j, "alpha"]=alpha } }

alpha=sum(dmatrix[j,KI[j,]])/sum(dmatrix[j,KN[j,]]) intrusionset[j, "alpha"]=alpha

#calcola gli alpha per l'asked set for (i in l:(l+nasked)) { alphaI=sum(dmatrix[i,KI[i,]])/sum(dmatrix[i,KN[i,]]) if (intrusionset[i, "class"]=="intrusion") { intrusionset[i, "alpha"]=alphaI } else { intrusionset[i, "alpha"]=1/alphaI } } #pone l=l+nasked e applica ora il TCM-NN classico perch ormai ha svolto la parte attiva l=(l+nasked)
46

#aggiorna KI e KN per il test set for (i in (l+1):(n)) { rigaN=dmatrix[i,1:l] rigaI=dmatrix[i,1:l] rigaN[intrusionset$Prediction=="intrusion"]=NA rigaI[intrusionset$Prediction=="normal"]=NA for (j in 1:k) { KN[i,j]=which.min(rigaN) KI[i,j]=which.min(rigaI) rigaN[KN[i,j]]=NA rigaI[KI[i,j]]=NA } } #rielabora gli alpha del training set in base al test set for (i in (l+1):n) { for (j in 1:l) { if (intrusionset[j, "class"]=="intrusion") { if(dmatrix[j,KI[j,k]]>dmatrix[i,j]) { KI[j,k]=i h=k while(dmatrix[j,KI[j,h]]<dmatrix[j,KI[j,h-1]]) { KI[j,h]=KI[j,h-1] KI[j,h-1]=i h=h-1 if(h==1) {break} } alpha=sum(dmatrix[j,KI[j,]])/sum(dmatrix[j,KN[j,]]) intrusionset[j, "alpha"]=alpha } } else {
47

if(dmatrix[j,KN[j,k]]>dmatrix[i,j]) { KN[j,k]=i h=k while(dmatrix[j,KN[j,h]]<dmatrix[j,KN[j,h-1]]) { KN[j,h]=KN[j,h-1] KN[j,h-1]=i h=h-1 if(h==1) {break} } alpha=sum(dmatrix[j,KN[j,]])/sum(dmatrix[j,KI[j,]]) intrusionset[j, "alpha"]=alpha }

#calcola alphaI sul test set alphaI=sum(dmatrix[i,KI[i,]])/sum(dmatrix[i,KN[i,]]) alphaN=(1/alphaI) alphavectorI=intrusionset[1:l,] alphavectorI=alphavectorI[alphavectorI$Prediction=="intrusion", "alpha"] alphavectorN=intrusionset[1:l,] alphavectorN=alphavectorN[alphavectorN$Prediction=="normal", "alpha"] #calcola p-value e classifica pI=length(alphavectorI[alphavectorI[]>=alphaI])/(length( alphavectorI)+1) pN=length(alphavectorN[alphavectorN[]>=alphaN])/(length( alphavectorN)+1) if (pI>=pN) { intrusionset[i, "alpha"]=alphaI intrusionset[i, "Prediction"]="intrusion" } else { intrusionset[i, "alpha"]=alphaN intrusionset[i, "Prediction"]="normal" }
48

} stop=proc.time()[3] time=stop-start print("tempo di esecuzione (s): ") print(time) R<-intrusionset[(l+1):n,c(1,2)]

49

50 Workow KNIME per l'analisi dei dati

Esperimento 1:

kNN - Dataset: 10000 (500 intrusioni, 9500 normali),

Training set: 200, Test set: 2000, K: variabile.

Esperimento 1:

TCM-kNN - Dataset: 10000 (500 intrusioni, 9500

normali), Training set: 200, Test set: 2000, K: variabile.

Esperimento 2:

kNN / TCM-kNN - Dataset: 9000 (4000 intrusioni, 5000

normali), Training set: 200, Test set: 2000, K: 2.

51

Esperimento 3:

kNN - Dataset: 10000 (500 intrusioni, 9500 normali),

Training set: 200, Test set: variabile, K: 2.

Esperimento 3:

TCM-kNN - Dataset: 10000 (500 intrusioni, 9500

normali), Training set: 200, Test set: variabile, K: 2.

52

Esperimento 4:

kNN / TCM-kNN / TCM-kNN-A - Dataset: 10000 (500

intrusioni, 9500 normali), Training set: 200 con intrusioni di tipo satan e normali, Asked set: 100 con intrusioni varie e normali, Test set: 1500 con intrusioni varie e normali, K: 2.

Esperimento 5:

kNN / TCM-kNN / TCM-kNN-A - Dataset: 10000 (500

intrusioni, 9500 normali), Training set: 200 con intrusioni di tipo satan e normali, Asked set: 8 con sole intrusioni varie, Test set: 1500 con intrusioni varie e normali, K: 2.

53

Bibliograa
[1] T. Mitchell.

Machine Learning.

McGraw Hill, 1997.

[2] C. Pizzuti F. Angiulli.

sets.

Outlier mining in large high-dimensional data

IEEE Transaction on Knowledge and Data Engineering, vol. 17

No. 2, pp. 203-215, 2005. [3] V. Vapnik.

Statistical learning theory.

Wiley, 1998.

[4] A. N. Kolmogorov.

Grundbegrie Der Wahrscheinlichkeitsrechnung. Algorithmic learning in a random Transductive

Chelsea Pub. Co., 1946. [5] G. Shafer V. Vovk, A. Gammerman.

world.

Springer, 2005.

[6] V. Vovk A. Gammerman K. Proedrou, I. Nouretdinov.

Con dence Machines for Pattern Recognition.

Technical Report CLRC-TR-

01-02, 18 JUN 2001. [7] J. Rogers.

Transductive condence machines.

WIRES, Wiles & sons, 4

MAR 2011. [8] A. Gammerman V. Vovk.

Kolmogorov Complexity.

Special Issue of The

Computer Journal, vol. 42, No. 4, pp.251-347, 1999. [9] J. Moguerza A. Munoz.

class neighbor machines.

Estimation of high-density regions using oneIEEE Trans. Pattern Analysis and Ma- chine

Intelligence, vol. 28, no. 3, pp. 476480, MAR 2006. [10] Banca D'Italia.

Provvedimento recante gli indicatori di anomalia per le societ di revisione e revisori legali con incarichi di revisione su enti di interesse pubblico. http://www.bancaditalia.it/UIF/prevricic/sos/norm-sos/norm-circ, 6 FEB 2013.

54

[11] D. M. W. Powers.

Evaluation: From Precision, Recall and F-Factor to ROC, Informedness, Markedness and Correlation. Journal of Machine
Learning Technologies 2 (1): 3763, 2007/2011.

55

Potrebbero piacerti anche