Analisi di social network e progettazione di un tool di apprendimento

Scuola Politecnica e delle Scienze di Base
Corso di Laurea in Ingegneria Informatica
Elaborato finale in Intelligenza Artificiale
Analisi di social network e progettazione
di un tool di apprendimento per
l'individuazione delle “association rules”
in file di log
Anno Accademico 2016/2017
Candidato:
Salvatore Regalbuto
matr. N46001375
A tute le persone che non smetono
mai di credere nel'innovazione.
Indice
Indice..................................................................................................................................................III
Introduzione..........................................................................................................................................4
Capitolo 1: Stato dell'arte delle tecniche di analisi di social network................................................6
1.1 Sviluppo, avanzamenti, prospettive.........................................................................................6
1.2 Comunità e strutture gerarchiche nelle reti sociali dinamiche.................................................8
1.3 Analisi sulla somiglianza delle keyword degli utenti dei social networks............................10
1.4 Classificazione degli utenti dei social networks....................................................................13
1.5 Social media e comunicazione politica..................................................................................16
Capitolo 2: Tecniche di analisi dei dati su flussi di rete.....................................................................20
2.1 ARFF Reader............................................................................................................................22
2.2 Data Manipulation....................................................................................................................24
2.2.1 Column Auto Type cast.....................................................................................................25
2.2.2 Sorter..................................................................................................................................26
2.2.3 Column Filter…................................................................................................................ 27
2.2.4 Row Filter...........................................................................….…......................................29
Capitolo 3: Ricerca delle regole di associazione................................................................................31
3.1 Elaborazioni preliminari: Recursive Loop...............................................................................31
3.1.1 Ramificazione Superiore....................................................................................................32
3.1.2 Ramificazione Inferiore.....................................................................................................34
3.1.3 Risultati ottenuti dal loop...................................................................................................35
3.2 Acquisizione delle regole di associazione: Association Rule Learner.....................................36
3.2.1 Creazione Transition Values..............................................................................................37
3.2.2 Association Rules...............................................................................................................39
Capitolo 4: Risultati sperimentali.......................................................................................................42
4.1 Post-Processing.......................................................................................................................42
4.2 Analisi dei risultati..................................................................................................................44
Conclusioni.........................................................................................................................................45
Bibliografia.........................................................................................................................................46
Introduzione
I file di log vengono prodotti da un elevatissimo numero di applicazioni, in diversi
contesti.
All'intero di questi file vengono registrate in maniera sequenziale e cronologica tutte le
operazioni che un utente, un amministratore o una macchina compie durante la sua
sessione di lavoro; tali informazioni sono contenute sottoforma di dati grezzi.
Molte volte risulta importante effettuare delle analisi al fine di estrarre informazioni dai
dati contenuti all'interno di un file di log,
le tecniche più diffuse per estrarre informazioni sono quelle di “data mining”.
Il data mining è un processo essenziale in cui si applicano metodi intelligenti per estrarre
modelli di dati (data pattern). Con questo processo si arriva alla scoperta di interessanti
pattern e alla conoscenza ottenuta da grandi quantità di dati. Le fonti (data sources)
possono includere basi di dati, le data warehouses, il Web, altre repository di informazioni
o anche dati che vengono trasmessi al sistema dinamicamente . [1]
Un concetto correlato al data mining è quello di apprendimento automatico (Machine
Learning); infatti, l'identificazione di pattern può paragonarsi all'apprendimento, da parte
del sistema di data mining, di una relazione causale precedentemente ignota, cosa che
trova applicazione in ambiti come quello degli algoritmi euristici e dell'intelligenza
artificiale. Tuttavia, occorre notare che il processo di data mining è sempre sottoposto al
rischio di rivelare relazioni causali che poi si rivelano inesistenti. L'estrazione dei dati vera
e propria giunge al termine di un processo che comporta numerose fasi: si individuano le
fonti di dati; si crea un unico set di dati aggregati; si effettua una pre-elaborazione (data
cleaning, analisi esplorative, selezione, ecc.); si estraggono i dati con l'algoritmo scelto; si
interpretano e valutano i pattern; l'ultimo passaggio va dai pattern alla nuova conoscenza
così acquisita. [2]
4
Questo elaborato è suddiviso in due parti: Nella prima parte descriveremo come si sono
evolute nel tempo le tecniche di analisi di dati ottenuti dai social network. Nella seconda
parte analizzeremo un file di log utilizzando un tool in grado di restituire diverse regole di
associazione in base agli eventi considerati.
5
Capitolo 1: Stato dell'arte delle tecniche di analisi di social
network
In questo capitolo faremo dei brevi cenni riguardo lo sviluppo delle analisi delle reti
sociali.
1.1 Sviluppo, avanzamenti, prospettive
Il pensiero strutturale di un social network ha radici profonde nella tradizione sociologica,
solo nel 1930 il pensiero di rete emerse come un approccio distinto alla struttura sociale.
In questo periodo i teorici sociali tedeschi costruirono una “formal sociology” nella quale
loro indagavano sulle configurazioni delle relazioni sociali prodotte attraverso l'intreccio
di incontri sociali. I fautori principali di questa idea erano Alfred Vierkandt e Leopold von
Wiese; essi adottarono una terminologia di punti, linee e relazioni per andare a descrivere
le relazioni sociali. Intorno al 1936 I due ricercatori Lewin e Moreno effettuarono
importanti indagini sul “campo” o lo “spazio” delle relazioni sociali e delle sue
caratteristiche all'interno della rete. In particolare è stato Moreno che ha dato al suo
approccio il nome di “Sociometria” e ha introdotto l'idea di rappresentare strutture sociali
come reti di diagrammi (sociogrammi) composte da punti e linee. La sociometria divenne
il campo più studiato per effettuare ricerche sull'educazione e sulla psicologia sociale,
dando vita all'approccio chiamato “group dynamics”. Una forte crescita sul “network
thinking” ci fu quando altri due ricercatori Warner e Mayo collaborarono insieme in
un'indagine sulle strutture delle comunità presenti nelle città e nei paesi americani. Essi
focalizzarono la loro attenzione sulle strutture delle relazioni di gruppo e iniziarono a
progettare dei “network diagrams” per rappresentarle. Quando uscì il loro rapporto sulla
ricerca, circa un decennio dopo il suo inizio, venne saldamente stabilità l'idea di vedere
gruppi sociali come network of relations. Nel 1963, lo studioso Harrison White iniziò a
sperimentare l'uso dell'algebra per rappresentare le strutture di parentela, e nel 1976 riuscì
6
insieme ad altri colleghi a sviluppare metodi basati sull'analisi di matrici per studiare le
posizioni sociali. In questi stessi anni, Levine sperimentò metodi di scaling
multidimensionale per studiare il potere delle multinazionali, mentre altri ricercatori
estesero i metodi sociometrici per svolgere indagini sull'aborto e l'occupazione.
Fino a poco tempo fa l'approccio predominante nell'analisi delle reti sociali è stato quello
matematico basato sulla teoria dei grafi. Questa teoria ci permette di studiare reti di tutti i
tipi. Nell'analisi delle reti sociali individui e gruppi sono rappresentati da punti e le loro
relazioni sociali da linee alle quali può essere associata una direzione per rappresentare il
flusso di influenza e un valore per rappresentare la forza della relazione. In particolare
quando i dati di rete sono rappresentati in forma matriciale la teoria dei grafi può agire
direttamente sulle matrici senza aver bisogno di costruire una rappresentazione visiva dei
dati, questo è un grande vantaggio per dataset di grandi dimensioni. In tempi più recenti i
vari approcci usati per l'analisi di reti sociali sono stati implementati all'interno di parti di
software, come ad esempio UCINET (che nasce proprio come implementazione della
teoria dei grafi) e PAJEK (che viene utilizzato per trattare grandi quantità di dati
utilizzando metodi visivi di rappresentazione).
Negli ultimi tempi è cambiato anche il modo di analizzare le features delle reti sociali,
infatti solo negli ultimi anni si è passato dal concentrarsi sulle caratteriste statiche delle
reti sociali, al concentrarsi sui processi dinamici coinvolti nei cambiamenti nel corso del
tempo. Procedendo in questa direzione sono stati ottenuti progressi dervanti dall'uso di
modelli che raffigurano i modi in cui il comportamento dei singoli agenti emerge nelle
trasformazioni globali della struttura della rete. Questi modelli vengono denominati
modelli computazionali basati su agenti, gli agenti (che possono essere individui o
gruppi) vengono visti come entità “rule-following” le cui decisioni, prese per agire in un
modo o in un altro, sono consequenziali per la rete globale in virtù della loro
concatenazione con le conseguenze delle azioni di altri. Pertanto, la conoscenza delle
norme secondo le quali gli agenti agiscono può essere utilizzata per prevedere ampi
modelli di cambiamenti in rete. [3]
7
1.2 Comunità e strutture gerarchiche nelle reti sociali dinamiche
Come detto nel paragrafo precedente, l'individuazione delle strutture della comunità nelle
reti sociali ha richiamato molta attenzione nel contesto della sociologia e delle scienze
comportamentali. Le reti sociali hanno una natura dinamica poiché cambiano
continuamente con il passare del tempo ed inoltre possono presentare una struttura
gerarchica guidata da individui che giocano ruoli importanti all'interno di una società,
come i manager e coloro che hanno potere decisionale. Si può dire che un social network è
un insieme di persone connesse da relazioni sociali, come l'amicizia o collaborazioni
lavorative. L'analisi visiva di una rete sociale è di fondamentale importanza, in quanto la
visualizzazione delle strutture comunitarie presenti nei social networks e l'individuazione
di persone che giocano ruoli importanti all'interno di una rete possono rivelarci
informazioni interessanti, in particolare sfruttando l'evoluzione temporale delle relazioni.
Le reti sociali possono presentare delle dinamiche temporali in diversi modi. Ad esempio
una persona potrebbe cambiare la sua appartenenza con un'azienda unendosi ad un'impresa
diversa e sviluppando nuovi legami sociali con questo nuovo ambiente. Inoltre le relazioni
possono rappresentare eventi ed associazioni che sono importanti ad un certo punto della
vita, come una nuova opportunità di lavoro o la fondazione di una nuova società. In questo
caso la dimensione temporale associata a questi eventi gioca un ruolo chiave per
l'acquisizione di importanti informazioni.
Una recente applicazione sulle analisi delle reti sociali riguarda lo studio della lotta al
terrorismo. Studiare le reti sociali di potenziali terroristi ci può aiutare a scoprire la
struttura organizzativa delle reti terroristiche, a prevedere atti terroristici attraverso
l'individuazione degli eventi e la possibilità di rivelare le identità delle menti più
importanti che stanno dietro le attività criminali.
Nel 2007 venne introdotto un tool denominato C-Group, utilizzato per l'analisi temporale
di una rete sociale. Questo tool si concentra sull'analisi di un paio di individui piuttosto
che sull'intera struttura della rete; come approccio funziona bene per tracciare l'evoluzione
dei rapporti tra individui, ma non acquisisce l'evoluzione delle strutture comunitarie
dell'intera rete sociale. Nello stesso periodo, altri due studiosi Sarkar e Moore
8
presentarono un metodo per la modellazione delle relazioni che cambiano nel tempo.
L'idea è quella di sviluppare una conoscenza dei dati storici e prevedere le interazioni
future. Questo modello può essere usato per studiare i comportamento delle singole
relazioni ma richiede un adattamento per modellare il comportamento di un gruppo di
persone. Questi sistemi appena descritti funzionano bene per sfruttare le dimensioni
temporali di una rete dinamica concentrandosi sui cambiamenti e le transitività degli
individui o delle loro relazioni.
Osserviamo adesso un sistema di analisi delle reti sociali dinamiche proposto da F. Gilbert
ed altri studiosi. Definiamo una rete sociale dinamica come un grafo dinamico G = (V,E)
dove V rappresenti un insieme di nodi (persone) ed E rappresenta un insieme di linee
(relazioni), ogni linea “e” appartenente all'insieme E ha un attributo raffigurante un
intervallo di tempo (0,T]. Quindi Il grafico G[t1,t2 ] rappresenta i nodi del grafo con solo le
relazioni presenti nell'intervallo [t1,t2]. L'idea principale si basa su un framework, la
figura 1.1 mostra le quattro fasi del framework sul quale si appoggia il sistema.
Fig.1.1
La prima fase converte il grafo dinamico in un insieme di grafi statici, dove ad ogni grafo
9
statico corrisponde un intervallo temporale.
La seconda fase raggruppa ogni singolo grafo separatamente usando un algoritmo di
clustering di sovrapposizione per produrre i Fuzzy Clusters. Questa fase ci permette di
identificare le comunità nella rete.
La terza fase rileva grandi cambiamenti strutturali nella rete confrontando i clustering
ottenuti su ogni coppia di successivi grafi statici. Una bassa somiglianza indica grandi
cambiamenti durante il periodo corrispondente alla coppia, mentre un'alta somiglianza
corrisponde a periodi stabili dove la struttura topologica della rete non subisce alcuna
modifica sostanziale. Perciò, una volta ottenuta la matrice di similarità dai clustering,
possiamo decomporre i cambiamenti temporali in ingresso alla rete in periodi di alta
attività e in comunità di “consenso” durante periodi stabili.
L'ultima fase consiste nel trovare una gerarchia di ruoli o influenze nelle comunità di
consenso filtrate nella fase precedente. Possiamo definire un gerarchia di influenze come
un albero, dove l'altezza di un nodo rappresenta l'influenza che ha sull'intera rete.[4]
1.3 Analisi sulla somiglianza delle keyword degli utenti dei social networks
Un profilo utente in un social network online è caratterizzato dalle proprie “user entries”.
Queste voci vengono definite come le keyword dell'utente.
Il famoso esperimento condotto da Travers e Miligram sul problema del “piccolo mondo”,
ha cercato di accertare se le persone nella società fossero tra loro collegate attraverso
piccole catene. L'esperimento consisteva nel fare inviare da alcune persone delle lettere ad
amici contenenti il nome di una persona target che si pensava potesse essere già
conosciuta dal destinatario. I risultati hanno mostrato che le persone sono in grado di
trovare altri individui anche molto lontani abbastanza rapidamente e la lunghezza del
percorso che connette un determinata coppia di individui è molto piccola. Queste
conclusioni molto interessanti portano a chiedersi come gli individui sono collegati tra di
loro nonostante vivono in località geografiche diverse. I social networks online (OSNs) ci
aiutano a studiare questi problemi usando dati ricchi di informazioni presenti sugli utenti.
Infatti un tipico profilo utente in un OSN è caratterizzato da varie keyword come:
10
locazione, città natale, attività, interessi ecc. Per esempio su Facebook le persone
stringono relazioni di amicizia quando esse scoprono profili con keyword simili alle
proprie.
Nei primi anni 2000 sono stati sviluppati diversi modelli matematici per mostrare come gli
utenti interagiscono tra di loro e stabiliscono collegamenti per costruire una rete sociale.
Un esempio è dato dal modello reticolare sviluppato da Kleinberg nel 2000, che si basa
sulla distanza geografica tra gli utenti. Questo modello definisce un modello di rete basato
sulla propensione degli utenti a stringere molte amicizie a corto raggio e pochi contatti a
lungo raggio. Sulla base di ciò, sono stati implementati algoritmi decentralizzati con lo
scopo di dimostrare che gli utenti hanno un'alta probabilità di cercare altri utenti su brevi
percorsi. Più recentemente sono stati anche presentati nuovi modelli matematici per
promuovere l'algoritmo di ricerca decentralizzato che consente di fare ricerche anche
quando gli utenti non sono consapevoli della loro e delle altre posizioni nella rete.
La tendenza degli individui di associarsi e creare legami con altri simili (Homophily) ha
costituito un ruolo importante nello studio delle reti sociali. I sociologi hanno cercato di
studiare questo fenomeno considerando caratteristiche diverse come sesso, razza, etnia
ecc. È stato osservato che lo scambio di informazioni tra gli utenti avviene solo quando
essi condividono un percorso sociale, keyword comuni e appartenenze comunitarie.
Un lavoro pubblicato nel 2005 da Liben-Nowell ha dimostrato che un terzo delle amicizie
su di un social network sono indipendenti dalla geografia. Questa conclusione ci porta a
domandarci sul perché persone che si trovano in luoghi completamente diversi stringono
amicizia e quali sono le caratteristiche che hanno in comune. Per rispondere a queste
domande dobbiamo analizzare i modelli di utilizzo delle keyword, prendiamo come
esempio il social network Facebook. Considerando il campo degli interessi dell'utente
abbiamo una lista di attività alle quali è appassionato o argomenti ai quali è interessato. Ad
esempio un analisi dei dati mostra che una larga fetta di utenti elenca la musica tra i propri
interessi, vedi fig. 1.2.
11
Fig. 1.2
La tabella riportata in fig. 1.2 contiene le prime dieci parole chiave utilizzate più
frequentemente, questo significa che per una media di 6 keyword per profilo utente, un
utente ha un'alta probabilità di avere una di queste keyword.
Descriviamo adesso uno dei modelli più importanti per categorizzare le keyword, il forest
model. Questo modello, ci aiuta a definire la struttura di dati per utilizzare le relazioni
sottostanti tra le keyword ed è in grado di fare una chiara distinzione tra le keyword
collegate e non collegate. Le keyword si dicono connesse quando sono semanticamente
collegate, ad esempio, quando condividono lo stesso significato. Consideriamo, ad
esempio, le keyword 'football' e 'soccer', esse sono collegate poiché rappresentano
entrambe un tipo di sport. In particolare entrambe possono ancora essere collegate con la
keyword 'sport' a causa delle relazioni tra i loro significati. In questo modo grazie alle
relazioni tra le keyword possiamo abbinare i profili utenti e analizzare le somiglianze tra
questi ultimi, gli effetti del fenomeno dell'Omofilia, e come si sono stabili i collegamenti
di amicizia.
Una volta che si è stabilita una relazione tra due parole chiave, il requisito fondamentale
per un modello è che bisogna mantenere separate le keyword non correlate. Questo
significa che mentre 'football' e 'soccer' sono relazionate attraverso il modello, parole
come 'soccer' e 'equine' devono essere mantenute separatamente. Descriviamo il modello:
ogni keyword è vista come nodo, i nodi sono connessi quando esistono relazioni tra le
keyword. Questi nodi sono organizzati in ordine gerarchico in modo che quando una
12
keyword è derivata da un'altra keyword, la gerarchia aiuta nel definire la relazione tra le
keyword. La gerarchia, quindi, offre la possibilità di rilevare distanze e dissomiglianze tra
le keyword e impedisce l'omogeneità tra i nodi che può derivare dall'uso di una struttura di
dati piatta. Pertanto, le gerarchie costruite per definire le relazione tra le parole chiave
portano alla definizione di alberi, inoltre per mantenere le keyword, non correlate tra di
loro, separate l'una dall'altra si utilizzano alberi multipli. In ogni albero è contenuto un set
di keyword che sono collegate tra di loro all'interno della struttura ma estranee a qualsiasi
altra keyword contenuta in altre strutture di alberi. Un esempio di Forest Model composto
da due alberi è mostrato in fig. 1.3. [5]
Fig. 1.3
1.4 Classificazione degli utenti dei social networks
In questo paragrafo considereremo come social network di riferimento Twitter.
L'analisi dei social network può essere suddivisa in due gruppi, analisi qualitativa e analisi
quantitativa. Un esempio di analisi qualitativa è dato dai primi lavori svolti da Berkowitz
(1982) e Scott (1992), i loro studi si basavano sui modelli di relazioni tra le persone, gli
stati le organizzazioni ecc.
Un esempio di analisi quantitativa invece è il lavoro svolto da Marsden e Campbell nel
1984. Essi applicarono diverse tecniche per misurare le forze dei legami all'interno di un
social network, in particolare per ottenere queste misure considerarono due aspetti distinti
della forza di un legame: Il tempo trascorso in un rapporto e la profondità del rapporto. I
risultati delle loro ricerche mostrarono che la vicinanza di un rapporto o l'intensità è il
miglior indicatore di forza.
Come abbiamo visto le analisi dei social network si basano principalmente sui legami, ma
13
questi legami vengono instaurati dagli utenti ed in particolare all'interno dei social
networks gli utenti possono essere visti come attori, dove ogni attore svolge un proprio
ruolo all'interno della comunità. Questi attori possono essere classificati in: leader, lurker,
close associate e spammer.
 Leader: coloro che iniziano a twittare ma non seguono nessuno, sebbene potrebbero
avere molti followers.
 Lurker: coloro che sono generalmente inattivi ma occasionalmente seguono
qualche tweet.
 Spammer: coloro che sono twitter indesiderati, chiamati anche twammers.
 Close associates: questa categoria include amici, parenti, colleghi ecc.
Esistono due metodi per classificare i differenti attori all'interno di un social network: Il
primo si basa sull'approccio teorico del fuzzy-set per valutare la forza dei legami nella
rete, il suo nome è Contex-dependent; il secondo metodo invece si basa sulla
classificazione degli attori attraverso l'abbinamento di diversi modelli di tweet, tale
metodo è denominato Context-independent.
Il metodo Contex-dependent si utilizza quando quando si hanno a disposizione grosse
quantità di dati relativi a tweet creati dagli utenti. In Twitter le persone possono seguire
altri utenti o essere seguite a loro volta, in particolare nel gergo di Twitter abbiamo due
tipologie di individui: i “Follower” e i “Followees”. Le relazioni tra gruppi di utenti
possono essere monitorate attraverso i tweet. All'interno di questo social (e generalmente
in tutti) è possibile stimare la forza di una relazione studiando le statistiche dei messaggi
scambiati tra follower-followees. In generale possiamo dire che migliore è la
comunicazione reciproca, maggiore è il legame (relazione) di forza.
Questo metodo segue un processo diviso in due fasi. Nella prima fase si stima la forza dei
legami all'interno della rete e si eliminano un grande numero di attori con forti relazioni
sociali perchè sono sicuramente classificati nel gruppo dei close associates. Nella seconda
fase, si esegue una classificazione lineare dei quattro tipi di attore sopra citati, usando il
numero dei tweet e il rapporto tra follower-followees come feature che vengono utilizzate
14
per considerare solo gli utenti con una relazione di forza debole. In figura 1.4 è mostrato
un social network rappresentato come un grafo con relazioni ponderate.
Fig. 1.4
Il metodo Context-independent viene utilizzato quando non ci sono abbastanza
informazioni riguardanti il social network da analizzare. Questo approccio riceve il suo
supporto da dati empirici riguardanti le nature distinte dei modelli di tweet collezionati da
diverse tipologie di utenti. In fig. 1.5 sono rappresentati tre modelli di tweet registrati in
un arco di 10 giorni, rispettivamente appartenenti a tre tipologie di attori diversi.
Fig. 1.5
15
Questi modelli ci indicano in che modo e quante volte uno spammer o un close associate
o un leader pubblicano tweet. Con questo approccio siamo in grado di andare a classificare
gli attori della rete abbinando modelli di tweet sconosciuti con i prototipi (o campioni) di
differenti classi. Quindi in definitiva possiamo dire che questo metodo si avvale di
classificazioni tradizionali e generici modelli di tweet per distinguere gli attori in
situazioni dove la disponibilità di informazioni (riguardanti ogni singolo attore) è limitata.
In conclusione di questo capitolo riportiamo dati di risultati interessanti ottenuti attraverso
esperimenti svolti sugli utenti di twitter. Gli spammer sono seguiti da moltissime persone
me ne seguono altrettante altre, in particolare questi account generano in media più di
10.000 tweets ogni 10 giorni ed hanno un rapporto follower-followees di circa 1.5 a 1.
I leader possono distinguersi dagli altri in base al loro alto rate di tweeting, un grande
numero di followers, ma un basso numero di followees, inoltre il loro rapporto followerfollowees è al di sotto di 1. I close associates si contraddistinguono dalla loro forte
connettività con i loro followers, un moderato numero di tweets (circa 1000 al giorno), e
un basso rapporto di follower-followees (inferiore a 3). Infine i lurkers sono una rara
classe di utenti che seguono molte persone ma raramente postano o rispondono ai tweet.
[6]
1.5 Social media e comunicazione politica
Negli ultimi anni, i social media stanno avendo un grande impatto sul dibattito pubblico e
sulla comunicazione all'interno della società, infatti hanno mostrato una rapida crescita del
numero degli utenti e sono stati oggetto di analisi scientifiche, basti pensare che Facebook
conta più di 1 miliardo di utenti in tutto il mondo. In particolare, i social media sono
sempre più utilizzati nel contesto politico.
Questo ci fa capire che l'applicazione di questi mezzi ha cambiato completamente il modo
di divulgare le informazioni.
16
I social media sono definiti come “un gruppo di applicazioni internet-based che si basano
sulle fondamenta ideologiche e tecnologiche del Web 2.0 che consentono la creazione e lo
scambio di contenuti generati dagli utenti”. Recentemente i social media come i siti di
social network (SNS), weblogs, microblogging e le wiki, giocano un ruolo sempre più
importante nel plasmare la comunicazione politica negli Stati Uniti e in tutto il resto del
mondo. Infatti, ad esempio, per quanto riguarda i microblog (in particolare Twitter) , molti
studi hanno dimostrato che la maggior parte dei membri del congresso degli Stati Uniti
utilizzano Twitter come mezzo di auto-promozione, condividendo all'interno della rete
informazioni come link di nuovi articoli riguardanti se stessi e le loro attività quotidiane.
Per quanto riguarda invece gli SNS, come ad esempio Facebook, analizzando i contenuti
di pubblico dominio si può notare come proprio Facebook è diventato un metodo sempre
più popolare per studiare le questioni socio-politiche. Infatti i contenuti pubblici, come ad
esempio i post i bacheca o i commenti, permettono alle persone di esprimere le proprie
opinioni e i propri sentimenti riguardo una determinata tematica, consentendo allo stesso
tempo a scienziati sociali e politici di effettuare le loro analisi su temi politici.
I social media offrono una connessione tra i social networks, canali di informazione
personali e i mass media. I dati di questi mezzi, relativi ai contenuti generati dagli utenti
sui blog, microblog, SNS, forum e siti di condivisione multimediale (come YouTube) ,
rappresentano molte opportunità e sfide per i produttori e consumatori di informazioni.
Recenti studi hanno dimostrato un bisogno emergente di istituzioni politiche per sfruttare
le risorse dei social media allo scopo di migliorare i servizi e la comunicazione tra i
cittadini e gli elettori.
Descriviamo adesso un framework utilizzato nel contesto politico per effettuare analisi sui
social media. In fig. 1.6 è riportato un esempio di applicazione di tale strumento.
17
Fig. 1.6
L'esempio riporta una comunicazione politica e le relative analisi sui social media. Da un
punto di vista pratico, il framework potrebbe servire come guida per lo sviluppo di un set
di strumenti volti a collezionare, archiviare, monitorare, analizzare e sintetizzare i
contenuti generati dagli utenti, politicamente rilevanti, attraverso i social media per le
istituzioni politiche. Questo framework è composto da due parti principali: Il tracciamento
e monitoraggio dei dati, e l'analisi dei dati. Vengono considerati i tre tipi di social media
più importanti: microblog, SNS, weblog.
Per effettuare il tracciamento e il monitoraggio dei dati bisogna prima determinare le fonti
dei dati. Per quanto riguarda Twitter i dati che devono essere tracciati e monitorati sono in
forma di “tweet” pubblici il cui accesso può essere facilmente ottenuto. Per Facebook il
tipo più importante di dati è rappresentato dal contenuto in “bacheca” che include gli
“aggiornamenti di stato” e i corrispondenti commenti.
Per quanto riguarda il tracciamento dei dati sia Facebook che Twitter offrono delle API
apposite per il data tracking. Ci sono diversi approcci di data tracking per un'istituzione
politica, la scelta dipende dalle intenzioni di quest'ultima. Vediamo qualche approccio:
 Self-involved: Questo approccio è applicabile, ad esempio, quando individui o parti
politiche vogliono conoscere come le persone parlano di loro nei social media. In
questo caso i politici possono avere tutte le raccolte di tweet che contengono il loro
nome sia come keyword che come hashtag.
 Keyword/topic-based: Gli attori politici sono solitamente molto interessati al
feedback o opinioni degli utenti dei social media riguardo determinati temi politici.
Questo approccio è ammissibile quando i tweet o i blog o i post contengono
keyword relative al topic che deve essere monitorato.
18
 Actor-based: Questo approccio può essere impiegato per monitorare i tweet, i post
in bacheca, commenti sui blog effettuati da utenti influenti che dovrebbero essere
identificati in anticipo.
 Random/Exploratory: Vengono selezionati in modo casuale uno o più insiemi di
dati (tweet o post di Facebook o di blog) da analizzare per diversi periodi di tempo.
 URL-based: Viene utilizzato per monitorare il contenuto dietro collegamenti
ipertestuali condivisi su Twitter, Facebook o sui blog.
Per quanto riguarda l'analisi dei dati troviamo anche qui diversi approcci:
 Topic/issue/trend-based approach: Per i politici e i partiti è importante monitorare
temi e problematiche politiche, poiché, ad esempio, i problemi potrebbero
contenere potenziali conflitti che possono portare a delle vere e proprie crisi.
 Opinion/sentiment-based approach: Questo approccio sta diventando sempre più
importante in ambito politico, poiché permette di farsi un'idea sui sentimenti
prevalenti (emozioni positive o negative) o sulle opinioni espresse da altri su se
stessi come persona o organizzazione, nonché su alcuni tempi politici.
 Structural approach: Questo approccio permette alle istituzioni politiche di
identificare utenti influenti o opinionisti leader, in particolare quelli che sono
ideologicamente o politicamente contrari a loro. Monitorando questi utenti, gli
attori politici potrebbero essere in grado di avere una certa influenza sulle opinioni
di questi cercando di fare qualche tipo di intervento per aprire un dialogo diretto
con loro. [7]
In conclusione di questo paragrafo possiamo sicuramente affermare che i social media
sono diventati nel corso degli anni un importante canale politico di comunicazione.
19
Capitolo 2: Tecniche di analisi dei dati su flussi di rete
In questo capitolo riportiamo un tool, realizzato utilizzando la piattaforma Knime, che può
essere adoperato per l'analisi dei file di log mediante tecniche di data mining e association
rule learning.
Inizialmente, è stato analizzato il traffico di rete attraverso un network intrusion detection
system (NIDS) software. Questi tipi di software, analizzando un traffico di rete 'grezzo'
(nel nostro caso il file di log) sono in grado di rilevare anomalie nei flussi o un insieme di
possibili eventi dannosi attraverso alcune regole di detection. In seguito all'analisi vengono
prodotti molti record che contengono le descrizioni dei possibili eventi dannosi. Questi
record vengono memorizzati all'interno di un database in modo tale da essere estrapolati
più facilmente per future analisi.
In questo progetto, analizzeremo un dataset molto particolare, il suo nome è “KDD Cup
99”. Facciamo una breve introduzione su tale file:
Il dataset KDD Cup 99 fu creato analizzando porzioni tcpdump del set di dati di
valutazione restituito dal “1998 DARPA Intrusion Detection System”(IDS), creato dal
Lincoln Lab sotto contratto della DARPA. Dal momento che non si può conoscere
l'intenzione (maligna o benigna) di ogni connessione in rete del mondo reale ( se
potessimo non avremmo bisogno di fare ricerche nel rilevamento delle intrusioni), i dati
artificiali sono stati realizzati usando una rete chiusa, alcuni generatori di traffico di reti
proprietaria, e attacchi “hand-injected”. Tutto ciò era destinato a simulare il traffico in una
base US Air Force. Nel corso degli anni si sono sollevate molte critiche riguardanti la
veridicità di tale dataset, ma tuttora questo set viene utilizzato dai ricercatori IDS per
mancanza di meglio.[8]
Questo dataset contiene al suo interno un numero elevato di feature, riportiamo di seguito
tre tabelle contenenti le feature di maggior rilievo con le rispettive descrizioni. [9]
20
Fig. 1.0
il nostro scopo è quello di andare a determinare delle regole di associazione, del tipo
causa-effetto, considerando le tipologie di intrusione rilevate all'interno della rete.
Nei capitoli successivi verrano illustrate le fasi di progettazione di questo tool di analisi.
Per poter comprendere al meglio lo schema generale del tool descriviamo brevemente la
piattaforma Knime.
Knime ha una struttura modulare , dove gli operatori (in questo caso i nodi) effettuano
azioni indipendenti per poi essere collegati tra di loro con lo scopo di creare la pipeline
desiderata.
21
Obiettivo fondamentale di questo tool è quello di andare ad analizzare un file contenente
una serie di eventi (potenzialmente dannosi), processarlo attraverso i vari nodi che
eseguono il data mining, e poi darlo in pasto ad un nodo definito come “Association Rule
Learner Node”, il quale produrrà in uscita un file contenente le “association rules” degli
eventi. Grazie a questo processo possiamo confrontare diverse regole di associazione che
vengono prodotte sulla base di file diversi. In questo modo potremmo anche apprendere
come variano nel tempo, o nel contesto, tali regole.
Lo schema generale del tool, riportato nella figura 2.1, può essere rappresentato come una
serie di meta-nodi, i quali verranno trattati approfonditamente nei paragrafi successivi.
Ogni meta-nodo al suo interno contiene più nodi, per ogni nodo descriveremo gli input, le
configurazioni per la manipolazione dei dati e gli output che produrranno.
Fig.2.1
Vediamo subito com'è stata effettuata la manipolazione dei dati presentando il nodo
“ARFF Reader” e il meta-nodo “DataManipulation”.
2.1 ARFF Reader
Il File Reader, rappresentato in fig. 2.2 , è un nodo che può essere usato per leggere dati in
formato ARFF da un un indirizzo URL.
22
Fig. 2.2
Nel nostro caso il file che il nodo riceve in ingresso è di tipo ARFF (Attribute Relationship
File Format), il quale rappresenta un formato per un file di testo . Questa tipologia di file
viene utilizzata per memorizzare dati all'interno di database ed effettuare l'analisi di questi
ultimi attraverso software per l'apprendimento automatico (Weka). In questo file i campi
vengono strutturati all'interno di una tabella relazionale definendo tutti gli attributi e i
valori che possono assumere.[10]
In uscita a tale nodo abbiamo una tabella contenente ben 494021 righe e 42 feature, vedi
fig. 2.3. Alla luce di ciò dobbiamo cercare di ridurre il numero delle righe e colonne della
tabella, mantenendo un'alta molteplicità dei valori degli eventi di intrusione associati ad
ogni riga, altrimenti perdiamo il significato della nostra analisi. Questo processo di
alleggerimento della tabella è stato eseguito attraverso il meta-nodo “'DataManipulation'”.
Analizziamolo nel dettaglio.
23
Fig. 2.3
2.2 Data Manipulation
Il DataManipulation è un meta-nodo che è stato creato con lo scopo di manipolare i dati
contenuti nella tabella prodotta dal File Reader, vedi fig. 2.4.
.
Fig. 2.4
Questo meta-nodo è composto da più nodi disposti in serie, raffigurati in fig. 2.5,
analizziamoli uno ad uno.
24
Fig. 2.5
2.2.1 Column Auto Type Cast
Questo nodo determina il tipo specifico degli elementi appartenenti ad ogni singola
colonna contenuta nella tabella posta in ingresso. Attraverso questo processo tutti gli
elementi degli attributi delle colonne vengono tipizzati in maniera automatica (int, string
ecc). Nel nostro caso, è stato effettuato il casting di alcuni elementi che l'ARFF Reader
non è riuscito a determinare.
Nella sua configurazione, riportata in figura 2.6, si può
notare che sono stati inclusi tutti gli attributi delle colonne della tabella posta in ingresso, i
quali saranno convertiti, ove possibile. Nel campo “Choose a date format” invece è stato
impostato il pattern “yyyy-MM-dd HH:mm:ss”.
Fig. 2.6
25
Questo nodo presenta due porte in uscita:
1. La porta 0 produce una tabella uguale a quella di ingresso ma con gli attributi tipizzati.
2. La porta 1 restituisce informazioni riguardo il tipo di casting scelto (Fig. 2.7).
Fig. 2.7
2.2.2 Sorter
Questo nodo svolge un ruolo chiave ai fini della nostra analisi in quanto ordina le righe in
base ai nostri criteri. Nella configurazione possono essere selezionate le colonne in base ai
dati che devono essere ordinati e all'ordine con il quale devono essere mostrati.
In input riceve la tabella prodotta dalla porta 0 del nodo precedente e in base alla
configurazione scelta restituisce la tabella ordinata. La configurazione è visibile in fig. 2.8
Fig. 2.8
26
Come si può osservare è stato impostato un ordinamento, in base all'attributo “count”, di
tipo ascendente. Quindi, in uscita avremo tutti i record ordinati in base al numero delle
connessioni eseguite negli ultimi due secondi sullo stesso host.
Alla fine di questo processo otteniamo una tabella sulla quale è possibile effettuare
un'analisi empirica concentrandosi sugli eventi che si susseguono. Questa osservazione è
di fondamentale importanza per poter impostare correttamente il prossimo nodo.
2.2.3 Column Filter
Questo nodo compie operazioni di filtraggio sulle colonne della tabella di input, in
particolare è consentito tener fuori determinate colonne, in base al nome dell'attributo, e
includerne altre che saranno passate alla tabella di output. La scelta di
inclusione/esclusione delle colonne è stata presa in seguito ad un'osservazione empirica
effettuata sulle feature del dataset, fig. 2.9.
Fig. 2.9
L'osservazione empirica è stata svolta attraverso tre fasi importanti:
1. Focalizzazione del problema: lo scopo della nostra analisi è quello di andare a
27
determinare le regole di associazione studiando la sequenza delle transizioni
all'interno del nostro data set.
2. Osservazione degli eventi che si susseguono all'interno della tabella: gli eventi più
importanti sono riportati come valori dell'attributo “Class”, tra i più frequenti
troviamo eventi di tipo Smurf, Normal, Neptune, Satan, Teardrop e ipsweep.
Poiché a noi interessa analizzare le regole di associazione dobbiamo considerare
successioni di record che contengono eventi per lo più diversi tra di loro.
3. Le cause che scaturiscono tali eventi: La maggior parte degli eventi malevoli
vengono generati effettuando un numero elevatissimo di connessioni in breve
tempo. All'interno della nostra tabella abbiamo 2 feature che ci possono dare un
grande aiuto per comprendere quando determinati eventi avvengono con frequenza
maggiore. La prima feature è “srv_count”, la quale ci riporta il numero di
connessioni effettuate sullo stesso servizio negli ultimi due secondi. Questi valori
sono molto utili in quanto ci permettono di vedere con che frequenza si presenta un
evento. La seconda feature è “count”, la quale ci riporta il numero di connessioni
effettuate sullo stesso host negli ultimi due secondi della sessione corrente. Essendo
il range di due secondi molto breve, si nota facilmente che la maggior parte delle
volte che il valore “count” è alto si verifica un attacco sulla rete, ed è proprio grazie
all'ordinamento effettuato tramite il “Sorter” che è stato possibile notare tale cosa.
Le conclusioni che si possono trarre alla fine di questa osservazione sono che
all'aumentare delle connessioni effettuate sullo stesso host, in un intervallo compreso da
uno a due secondi, aumenta la probabilità di incorrere in eventi malevoli relativi a diversi
tipi di attacchi DoS (denial of service), che ricordiamo tendono a far esaurire le risorse di
un sistema (es. web server) che offre servizi ai client. In particolare gli attacchi che si
ripetono più spesso sono: Smurf, Neptune, tearDrop, satan. Quindi possiamo filtrare la
tabella considerando i due attributi “srv_count” e “count” che elaborati insieme possono
darci informazioni molto importanti sul come si verificano tali eventi.
28
Sulla luce di queste considerazioni possiamo scartare molti attributi che non servono ai
fini del nostro studio. Nel capitolo successivo invece verrà illustrato come sono state
filtrate le righe del data set.
2.2.4 Row Filter
Questo nodo consente di filtrare le righe secondo determinati criteri. Si possono includere
o escludere: determinati intervalli di righe (stabiliti dall'indice della riga iniziale e quello
della riga finale), righe con specifici identificativi, e righe con un certo valore di attributo,
relativo ad una colonna. Come si evince dalla figura 2.5 sono stati posti in serie due Row
Filter, i quali hanno il compito di filtrare opportunamente la nostra tabella per creare una
grande molteplicità di classi di eventi.
Il primo nodo riceve in ingresso una tabella con tutti i record ordinati in base ai valori
dell'attributo “count”. Nella configurazione, rappresentata in fig. 2.10, è stato settato come
criterio di filtro “Include row by attribute value”, come valore corrispondente di colonna
“srv_count”, e infine come criterio di controllo è stato impostato un intervallo di test
avente limite inferiore pari a 25 e limite superiore pari a 250 . In questo modo vengono
filtrati tutti i record aventi un numero di connessioni (ricordiamo che sono connessioni
effettuate sullo stesso servizio negli ultimi due secondi) compreso tra 25 e 250. Così
facendo siamo sicuri di filtrare sia eventi benevoli che malevoli.
Fig. 2.10
29
Il secondo nodo invece riceve in input una nuova tabella contenente gli eventi che si
ripetono più spesso. Adesso, poiché ci sono ancora molte sequenze di eventi uguali che si
ripetono (come ad esempio gli eventi “Normal”), andiamo a sfoltire ancora di più la nostra
tabella utilizzando lo stesso criterio di filtro del precedente nodo ma prendendo come
colonna di riferimento “count” e come estremi di intervallo di controllo [50,215]. In
questo modo avendo assunto come limite inferiore 50 evitiamo di avere troppi eventi
“Normal”, mentre avendo predisposto come limite superiore 215 evitiamo di avere troppi
eventi “Smurf”.
L'output di questa serie di Row Filter, coincidente con l'uscita del meta-nodo (vedi fig.
2.11), ci restituisce finalmente una tabella di riferimento pronta per essere analizzata.
Fig. 2.11
30
Capitolo 3: Ricerca delle regole di associazione
Nella seconda parte del nostro elaborato descriveremo il processo che porta alla scoperta
delle Association Rules. Partiremo dall'elaborazione dei dati che viene effettuata sul metanodo 'RecursiveLoop' fino ad arrivare all'output finale generato dalla porta 0 del nodo
cardine del nostro tool, l'Association Rule Learner.
3.1 Elaborazioni preliminari: Recursive Loop
Fig. 3.1
All'interno di questo meta-nodo, fig. 3.1, viene processata la tabella prodotta dal “Data
Manipulation” per poterla rendere compatibile con l'Association Rule Learner. Per
elaborare correttamente il nostro data set abbiamo bisogno di manipolare i dati per un
numero finito di volte N. Questo procedimento ricorsivo è possibile riprodurlo in Knime
grazie a due nodi che lavorano in coppia:
 Il Recursive loop Start che ha il compito di introdurre la tabella di dati all'interno
della struttura ricorsiva. A partire dal secondo ciclo emetterà i dati della tabella
ricevuta dal nodo Recursive loop End.
 Il Recursive loop End, il quale riporta la tabella processata di nuovo al Recursive
Loop Start, questo procedimento si ripete fino al ciclo N. In particolare questo nodo
presenta due porte in input: i dati passati alla porta 0 vengono collezionati e
31
trasmessi in uscita, mentre quelli passati alla porta 1 vengono restituiti al nodo
Recursive Loop Start per procedere con la prossima iterazione.
Fig. 3.2
Osservando la fig. 3.2, possiamo notare che l'output del primo nodo crea due ramificazioni
dando cosi una configurazione parallela all'intera struttura del meta-nodo. Andiamo ad
analizzare nel dettaglio la ramificazione superiore e quella inferiore.
3.1.1 Ramificazione Superiore
Sul ramo superiore sono posti in serie tre nodi: Row Filter, Column Filter, Transpose.
Analizziamoli singolarmente:
Il primo nodo è il Row Filter che come descritto in precedenza ci consente di filtrare le
righe a nostro piacimento. In questo caso è stato selezionato come criterio di filtro
“Include Rows by Number”, vedi fig. 3.3, ragion per cui consideriamo solo un intervallo
di righe specifico.
É stato configurato un intervallo il cui range va dalla riga 1 alla riga 18. Questa scelta è
stata motivata in seguito ad un'attenta osservazione eseguita sul data-set.
32
Fig. 3.3
Ad ogni iterazione, in uscita viene prodotta una finestra contenente solo i record di nostro
interesse, vedi fig. 3.4. Analizziamo adesso come viene trattato questo output dal nodo
successivo.
Fig. 3.4 (Esempio di output dopo l'ultimo ciclo)
Il secondo nodo è il Column Filter, il quale riceve in ingresso la tabella prodotta dal nodo
precedente ed esegue un filtraggio sulle colonne, escludendo tutte le colonne eccetto
quella riferita all'attributo “Class”. In questo modo abbiamo trasformato la tabella di 18
elementi in una colonna contenente solo i nomi degli eventi. Quindi in uscita avremo solo
una colonna riportata in fig. 3.5.
33
Fig. 3.5 (Esempio di output dopo l'ultimo ciclo)
L'ultimo nodo della ramificazione superiore è il Transpose. Questo nodo traspone l'intera
tabella d'ingresso scambiando di posizione le righe con le colonne. I nuovi nomi delle
colonne sono forniti dai vecchi identificativi delle righe mentre i nuovi nomi delle righe
sono ottenuti dai vecchi attributi delle colonne. Il tipo della colonna resta il medesimo e
viene applicato a tutti gli elementi in una riga. Nel nostro caso quindi avremo in uscita la
trasposta della matrice applicata in ingresso, fig. 3.6, dove l'identificativo della riga
corrisponde all'attributo “class”.
Fig. 3.6 (Esempio di output dopo l'ultimo ciclo)
3.1.2 Ramificazione Inferiore
Il ramo inferiore è composto da un unico nodo, il Row Filter. Tale nodo prende in ingresso
la tabella di dati uscente dal Recursive Loop Start e la filtra in modo tale da eliminare la
prima riga. Quindi, nella configurazione, come criterio di filtraggio è stato impostato
'Exclude rows by number', settando i parametri “First row number” e “Last row number”
34
a 1, vedi fig. 3.7. In questo modo ad ogni iterazione viene eliminata la prima riga dalla
tabella, dando quest'ultima in input al Recursive Loop End sulla porta 1 dove, come
abbiamo spiegato in precedenza, vengono raccolti i dati da passare di nuovo all'inizio del
prossimo ciclo. In particolare è stato scelto di eliminare una sola riga alla volta in modo
tale da garantire la molteplicità tra gli eventi ed evitare di creare sequenze di eventi uguali
tra di loro.
Fig. 3.7
3.1.3 Risultati ottenuti dal loop
Al termine di questo loop in uscita dal meta-nodo avremo una tabella, fig. 3.8, formata da
N righe e 18 colonne, dove gli elementi di ogni riga sono il risultato di ogni ciclo. Nel
nostro progetto N = 2046, questa scelta viene motivata dalla seguente osservazione: Si
sono voluti raccogliere 18 eventi ad ogni iterazione ed eliminare di volta in volta la prima
riga della tabella. Sapendo che il numero totale delle righe della tabella posta in input al
Loop Start è 2064, allora il numero totale di cicli si otterrà da una semplice sottrazione:
N = 2064 – 18 = 2048.
Ad ogni ciclo la tabella si incrementa di 18 elementi nel seguente modo: Al primo ciclo
vengono collezionati i primi 18 eventi, che vanno dall'indice 0 all''indice 17, al secondo
35
invece vengono aggiunti gli eventi che vanno dall'indice 1 al 18 e così via.
In questo modo possiamo analizzare tutte le relazioni possibili che ci sono tra un evento e i
18 avvenimenti precedenti e successivi. Infine ogni riga rappresenta una singola
transizione.
Fig. 3.8
3.2 Acquisizione delle regole di associazione: Association Rule Learner
Fig. 3.9
All'interno di questo meta-nodo, fig. 3.9 , viene processata la tabella prodotta dal
“Preliminary Processing” con lo scopo di ottenere le association rules relative agli eventi
associati. In figura 3.10 possiamo osservare la configurazione di tale meta-nodo, in
particolare troviamo quattro nodi posti in serie: Create Collection Column, Column Filter,
Association Rule Learner (Borgelt), Column Filter. Analizziamo il funzionamento di
questi nodi.
36
Fig. 3.10
3.2.1 Creazione Transition Values
Il nodo Association Rule Learner per poter funzionare correttamente necessita di ricevere
in ingresso una tabella contenente un'unica lista di transizioni, quindi dobbiamo preparare
la nostra tabella in modo tale da renderla compatibile con tale nodo. I nodi incaricati per
questo lavoro sono il Create Collection Column e il Column Filter.
Il Create Collection Column aggrega più colonne in una nuova colonna separata, il cui tipo
dipende dagli elementi collezionati. Nel nostro caso tale nodo prende in ingresso la tabella
prodotta dal meta-nodo Preliminary Processing, visibile in fig. 3.8, aggrega tutti i valori di
ogni singola riga e crea una nuova colonna definita ''TransitionValues'' contenente tutte le
transizioni relative ad ogni singola riga. Quindi in uscita avremo un nuovo set di dati,
rappresentato in fig. 3.11, contenente una colonna aggiuntiva che va ad associare ad ogni
riga la propria transizione.
37
Fig. 3.11
Il Column Filter invece non fa altro che andare ad escludere tutte le colonne tranne
''TransitionValues''. In questo modo abbiamo ottenuto una tabella composta da un unico
attributo contenente come valori le transizioni relative agli eventi del nostro dataset, vedi
fig. 3.12.
Fig. 3.12
38
3.2.2 Association Rules
Grazie alla tabella ottenuta in figura 3.12, siamo adesso in grado di definire delle regole di
associazione attraverso il nodo cardine del nostro tool, l'Association Rule Learner
(Borgelt).
Questo nodo restituisce delle regolarità in base alle transizioni considerate in ingresso, per
far ciò utilizza un algoritmo chiamato ''Aprirori''. Facciamo un breve accenno su tale
algoritmo. L'algoritmo Apriori, implementato da Christian Borgelt nel 1993, ha lo scopo
di ricercare regole di associazione all'interno di dataset. Esempio molto banale ma
altrettanto esaustivo per la comprensione di un'association rule è «se un cliente compra
del vino e del pane, spesso comprerà anche del formaggio». [11] Quindi esprime
un'associazione tra una collezione di oggetti, che possono essere, ad esempio, prodotti di
un supermercato, servizi offerti da società o come nel nostro caso sequenze di eventi
avvenuti all'interno di una rete.
La configurazione del nodo, visibile in fig. 3.13, è stata fatta settando in maniera
opportuna i seguenti campi:
 Item Column: Bisogna selezionare la colonna che contiene il set di oggetti da
elaborare. Nel nostro caso tale colonna è ''TransitionValues'.
 Minimum set size: Rappresenta la minima grandezza del set. É stato settato a 2, in
questo modo il nodo riporterà in uscita almeno una coppia di elementi in cui uno
dei due implica l'altro. Quindi abbiamo garantito che nella tabella di output per
ogni riga avremo un conseguente e almeno un valore antecedente.
 Minimum support: Indica in quante transizione è presente la regola in uscita, è stato
settato al 20. Quindi ogni regola che otteniamo in uscita deve essere presente
almeno nel 20% delle transizioni.
 Minimum rule confidence: Rappresenta la minima confidenza di una regola di
associazione, ovvero quante volte è presente l'implicazione:
Evento X Antecedente → Evento Y Conseguente (es. [Neptune,Smurf.] → satan).
Si considerano solo le transizioni in cui appaiono X e Y. É stato settato al 20%.
39
Fig. 3.13
In uscita, vedi fig. 3.14, avremo una tabella contenente le association rules, con altrettanti
attributi relativi a tali associazioni.
Fig. 3.14
Poichè molti parametri non sono rilevanti ai fini della nostra analisi, è stato applicato in
uscita a questo nodo un Column Filter. Quest'ultimo nodo seleziona solo gli attributi più
rilevanti: Consequent, Antecedent, RuleConfidence%,RelativeBodySetSupport%. L'uscita
finale del meta-nodo è rappresentata in fig. 3.15.
40
Fig. 3.15
41
Capitolo 4: Risultati sperimentali
In questo capitolo descriveremo la fase di post-processing, analizzando I risultati ottenuti
dopo l'esecuzione del tool. In figura 4.1 è rappresentata la serie di nodi che costituisce il
meta-nodo “PostProcessing”: Split Collection Column, Table to PDF.
Fig. 4.1
3.1 Post-Processing
In fase di post-processing è stata elaborata la tabella riportata in fig. 3.15 con lo scopo di
creare un file PDF contenente i risultati ottenuti dal nostro tool.
Il nodo ''Split Collection Column'' effettua l'operazione inversa del nodo ''Create
Collection Column'' utilizzato precedentemente. Quindi divide una colonna contenente un
insieme di valori nelle sue sottocomponenti. Nel nostro caso andiamo a separare i valori
che compongono ogni singola cella della colonna ''Antecedent''
ponendoli in colonne
differenti. Otteniamo in uscita una tabella avente un numero di righe uguale alla tabella di
input e un numero di colonne uguale al massimo numero degli eventi compresi nella
colonna Antecedent. In particolare se una riga contiene più elementi rispetto a quanto
previsto, gli elementi restanti vengono ignorati. Se contiene meno elementi del previsto le
colonne vengono riempite con i missing values. Nel nostro caso abbiamo ottenuto una
tabella con 7 colonne, 4 delle quali ottenute dalla separazione dei valori.
Infine la tabella in uscita da tale nodo è stata salvata su di un file in formato PDF
attraverso l'ultimo nodo del nostro tool ''Table to PDF''.
42
I risultati salvati sul file PDF sono visibili in figura 4.2.
Fig. 4.2
43
4.2 Analisi dei risultati
Come riportato in fig. 4.2, abbiamo ottenuto un file PDF contenente tutte le possibili
regole di associazione tra gli eventi del nostro dataset. Ogni singolo evento dell'attributo
“Consequent” rappresenta un'implicazione data dalla serie degli eventi riportati nelle
successive colonne “Split Value X”. Consideriamo ad esempio il primo evento riportato
in tabella, l'attacco “satan.”. Questo attacco si verificherà il 21.2% delle volte se si
manifestano in successione gli eventi: neptune, smurf, teardrop, normal; in particolare
questa implicazione di “causa→effetto” è presente nel 22.1% dell'intero dataset.
Cosa molto interessante è che sono state individuate poche regole di associazione
all'interno del nostro dataset, nonostante fosse di dimensioni elevate. Questo ci porta a
pensare che la maggior parte degli attacchi DoS avvengono in maniera totalmente
arbitraria senza generare sempre gli stessi effetti, e senza seguire quindi una sequenza
prefissata di eventi. Gli unici parametri che ci aiutano a capire quando si verificano più
spesso determinati attacchi sono, come citato nel primo capitolo, Il “count” e il
“srv_count”. Infatti, ad esempio all'aumentare delle richieste di connessione effettuate
sullo stesso host in un range di
due secondi aumentano in maniera esponenziale gli
attacchi di tipo smurf.
44
Conclusioni
Questo elaborato è stato realizzato con lo scopo di comprendere l'importanza dell'analisi
dei dati all'interno della nostra società.
Com'è stato visto nel primo capitolo i dati prodotti dai social network sono di rilevante
importanza in quanto ci forniscono informazioni sulle relazioni sociali instaurate tra
individui diversi appartenenti alla stessa rete. Abbiamo compreso che le reti sociali hanno
una natura dinamica poiché cambiano continuamente con il passare del tempo ed inoltre
possono presentare una struttura gerarchica guidata da individui che giocano ruoli
importanti all'interno di una società; in particolare abbiamo compreso l'importanza dell'uso
dei grafi per la rappresentazione di tali strutture. Di rilevante importanza abbiamo visto
essere anche la classificazione degli utenti dei social network e le loro keyword che ci
aiutano a comprendere la natura delle relazioni che si creano tra gli individui di una stessa
rete. Da non trascurare, poi, la potenza dei social media, che ormai vengono utilizzati da
tutte le istituzioni politiche per poter comunicare in maniera diretta ed efficace con la
società.
Nella seconda parte dell'elaborato abbiamo esaminato la progettazione e il funzionamento
di un tool di analisi, utilizzando un file di log contenente al suo interno diversi attacchi in
rete di tipo DoS. Abbiamo sfruttato le funzionalita di Knime relative alle tecniche di data
mining e association rule learning per ottenere le regole di associazione relative agli eventi
contenuti nel file di log. Questo tool quindi è in grado di analizzare i dati posti in ingresso
e produrre in uscita qualsiasi tipo di regolarità. Pertanto, è possibile utilizzare tale
strumento per diverse applicazioni future, come osservare dataset inerenti ai social
network, e quindi in ambito sociologico.
45
Bibliografia
[1]
Data Mining: Concepts and Techniques, Jiawei han,Micheline Kamber, JianPei
[2]
Wikipedia, https://it.wikipedia.org/wiki/Data_mining , 10 gennaio 2017
[3] Scott, J. SOCNET (2011) 1: 21. doi:10.1007/s13278-010-0012-6 – 6 october 2010
[4] Frèdèric Gilbert • Paolo Simonetto • Faraz Zaidi • Fabien Jourdan • Romain
Bourqui, Communities and hierarchical structures in dynamic social networks:
analysis and visualization,DOI 10.1007/s13278-010-0002-8 – 5 october 2010
[5] Prantik Bhattacharyya • Ankush Garg • Shyhtsun Felix Wu, Analysis of user
keyword similarity in online social networks, 6 october 2010, DOI 10.1007/s13278010-0006-4
[ 6 ] Mohamed Fazeen • Ram Dantu • Parthasarathy Guturu, Identification of
leaders, lurkers, associates and spammers in a social network: context-dependent
and context-independent approaches, 15 February 2011, DOI 10.1007/s13278011-0017-9
[7] Stefan Stieglitz • Linh Dang-Xuan, Social media and political communication: a
social media analytics framework, 25 August 2012 , DOI 10.1007/s13278-0120079-3
[8]
http://www.kdnuggets.com/news/2007/n18/4i.html ,15 Sep 2007
[9]
DERUVED FEATURES, https://kdd.ics.uci.edu/databases/kddcup99/task.html, 15
Sep 2007
[10] Wikipedia, https://it.wikipedia.org/wiki/ARFF, 2014
[11] Christian Borgelt, Apriori, Find Frequent Item Sets And Association Rules With
Apriori Algorithm, http://www.borgelt.net/doc/apriori/apriori.html, 2002-2016
46