Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Tesi di laurea
Candidato:
Relatore:
Stefano Cavalli
Matricola 702973
Rosa Meo
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
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
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
31
31 33 33 34
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.
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'
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.1
Apprendimento supervisionato
La macchina apprende attraverso i diversi attributi di input (tipicamente raccolti in forma di vettore) contenuti nel
training set
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
CAPITOLO 1.
APPRENDIMENTO AUTOMATICO
1.1.2
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.
1.1.3
Apprendimento rinforzato
Gli algoritmi ad
apprendimento rinforzato
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
apprendimento supervisionato,
si pu
CAPITOLO 1.
APPRENDIMENTO AUTOMATICO
Si parla di
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.
1.3 Modelli
Alberi di decisione:
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.
pattern
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:
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
Reti Bayesiane:
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
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:
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.
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
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
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-
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:
della casualit
apprendimento automatico, il merito di essere riucollegamento con la teoria algoritmica della complessit e
va a
10
CAPITOLO 2.
FONDAMENTI TEORICI
11
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
di esempi per il
training set
del
nata. Volendo misurarne la casualit, si denisce quindi una funzione coerente con la denizione di dell'insieme
test di casualit
t che sia
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
(Metrica)
. Siano si
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:
Denizione 2.3
di attributi) se:
D(xi , xj ) =
h=1
h 2 (xh i xj )
esempi del dataset basandosi sulla relativa distanza di questi nello spazio Tale metodo ha valenza locale e dipende dalla struttura dei
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
Denizione 2.4
(Argomento massimo). Presa una funzione f si denisce l'argomento massimo di tale funzione come:
Denizione 2.5
Kronecker come:
(Delta di Kronecker)
(xi , xj ) :=
1 se xi = xj 0 se xi = xj f
applicata all'oggetto di test
(xl+1 , yl+1 )
risulta come:
f (x) = argmax
y C i=1
(y, yi )
Figura 2.1:
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
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
CAPITOLO 2.
FONDAMENTI TEORICI
14
Figura 2.2:
[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
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
si
dagli altri
y,
y Di .
y Dij
la
j -esima
Analogamente:
y Di
si
dagli altri
y,
y Di .
y Dij
la
j -esima
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
di classicazione
y.
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 .
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
p(l+1 ) =
[0, 1],
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
set; viceversa, per valori prossimi allo 0, l'esempio dunque, a riutare l'ipotesi nulla del test.
sl+1
da considerarsi ati-
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
degli elementi di
S.
Ecco un fondamentale risultato dovuto agli studi pubblicati da Vovk e Gammerman nel 1999 [8]:
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
si
classicazione
y C. Sj (S)
l'insieme dei
Sia denito
pi piccoli
associati agli
si S.
P (s Z l+1 : p(l+1 ) p
j ) l+1
j l+1
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.
S = (s1 , . . . , sl+1 ),
CAPITOLO 2.
FONDAMENTI TEORICI
18
j . l+1
nella sequenza j j . Segue che la probabilit di avere p(l+1 ) = l+1
l+1
Sj (S),
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
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].
riciclaggio.
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
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
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
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
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.
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-
ventivi; la creazione di
associabile ad un cliente; la
CAPITOLO 3.
RICICLAGGIO DI DENARO
23
viene eettua-
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 (
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 ).
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.
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.);
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-
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:
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.
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.
CAPITOLO 4.
IL PROGETTO
28
[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
n-asked
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.
Caratteristiche comuni
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.
32
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 :
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.
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:
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.
33
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
Entrambi i software sono reperibili direttamente dal web attraverso i seguenti indirizzi:
http://www.knime.org/ http://www.r-project.org/
matrice di confusione
veri positivi :
sione;
CAPITOLO 5.
34
Figura 5.1:
veri negativi :
connessione;
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 =
recall =
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.
35
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
Training set:
variabile
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.
36
Figura 5.3:
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.
Training set:
variabile
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.
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
Training set:
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).
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
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)
L'esperienza
10000 (500 intrusioni, 9500 normali) 200 (tra intrusioni del solo tipo satan e normali)
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 -
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
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
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" }
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
{ }
#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 } }
#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
49
Esperimento 1:
Esperimento 1:
Esperimento 2:
51
Esperimento 3:
Esperimento 3:
52
Esperimento 4:
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:
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.
sets.
Wiley, 1998.
[4] A. N. Kolmogorov.
world.
Springer, 2005.
Kolmogorov Complexity.
Computer Journal, vol. 42, No. 4, pp.251-347, 1999. [9] J. Moguerza A. Munoz.
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