Predizione di malfunzionamenti in reti di telecomunicazioni con tecniche di machine learning
1. UNIVERSITÀ DEGLI STUDI DI TRIESTE
DIPARTIMENTO DI INGEGNERIA ED ARCHITETTURA
Tesi di laurea in
RETI DI CALCOLATORI
PREDIZIONE DI MALFUNZIONAMENTI IN
RETI DI TELECOMUNICAZIONI CON
TECNICHE DI MACHINE LEARNING
Relatore: prof. Alberto Bartoli
Correlatore: prof. Eric Medvet
Laureando: Francesco Occhioni
Anno accademico: 2015-2016
3. II
Indice
1. Introduzione .....................................................................................................................................1
2. Presentazione delle richieste............................................................................................................2
3. Analisi delle richieste.......................................................................................................................2
4. Strumenti necessari allo sviluppo del Progetto................................................................................3
4.1. Hardware...................................................................................................................................3
4.1.1. PC Notebook MSI GE-62 ..................................................................................................3
4.2. Software ....................................................................................................................................4
4.2.1. Mongo DB..........................................................................................................................4
4.2.2. R Studio..............................................................................................................................4
4.2.3. Software Java.....................................................................................................................4
4.2.4. NetBeans ............................................................................................................................4
5. Stato Attuale.....................................................................................................................................5
5.1. Descrizione del CPE .................................................................................................................5
5.1.1. Ciclo di vita di un CPE ......................................................................................................5
5.2. Sistemi di monitoraggio............................................................................................................6
5.2.1. HaWMo..............................................................................................................................7
5.2.1.1. LISTA KPI ......................................................................................................................8
5.2.2. SeQuMo ...........................................................................................................................10
5.2.2.1. LISTA KPI ....................................................................................................................10
5.2.3. CDSeQuMo......................................................................................................................12
5.2.3.1. LISTA KPI ....................................................................................................................12
5.3. Sistema di Ticketing................................................................................................................14
5.3.1. Workflow di un Ticket .....................................................................................................14
5.3.2. Chi può aprire un Ticket...................................................................................................14
5.3.3. Contenuto dei ticket .........................................................................................................15
5.3.4. Lavori Programmati.........................................................................................................15
6. Progettazione della macchina ad apprendimento automatico........................................................16
6.1. Scelta del classificatore...........................................................................................................17
6.1.1. Random Forest .................................................................................................................17
6.1.2. Valutazioni delle prestazioni ............................................................................................18
6.1.3. Curva ROC.......................................................................................................................20
6.2. Costruzione del Dataset ..........................................................................................................21
6.2.1. Riferimenti Temporali per il Dataset................................................................................21
6.2.2. Creazione delle Feature....................................................................................................22
6.2.3. Scelta dei Ticket...............................................................................................................23
4. III
6.2.3. Scelta dei Campioni .........................................................................................................23
6.2.4. Trattamento dei Missing Values.......................................................................................24
6.2.5. Trattamento dei dati sbilanciati........................................................................................24
6.3. Prestazioni del classificatore...................................................................................................25
6.3.1. CDSeQuMo......................................................................................................................25
6.3.1.1. True Positive Rate.........................................................................................................25
6.3.1.2. False Positive Rate........................................................................................................26
6.3.1.3. True Positive Rate @1%...............................................................................................27
6.3.1.4. True Positive Rate @0,15%..........................................................................................28
6.3.2. SeQuMo ...........................................................................................................................29
6.3.2.1. True Positive Rate.........................................................................................................29
6.3.2.2. False Positive Rate........................................................................................................30
6.3.2.3. True Positive Rate @1%...............................................................................................31
6.3.2.4. True Positive Rate @0.15%..........................................................................................32
6.3.3. Valutazione delle prestazioni in ambito di applicazione reale. ........................................33
7. Conclusioni ....................................................................................................................................34
Bibliografia ........................................................................................................................................35
Indice delle figure ..............................................................................................................................35
Appendice A – Risultati Numerici .....................................................................................................36
A.1 CDSeQuMo.............................................................................................................................36
A.2 SeQuMo ..................................................................................................................................39
5. 1
1. Introduzione
La tesi descritta all’interno di questo documento andrà a trattare e sviluppare l’analisi
di tecniche di Machine Learning per predire possibili guasti e disservizi in Reti di
Telecomunicazioni.
Si tratta di un progetto sviluppato in collaborazione con Emaze S.p.a e un’importante
azienda di telecomunicazioni (il committente) e vuole fornire strumenti di supporto
alla proactive assurance per migliorare il servizio di customer care offerto dal
committente del progetto.
Il primo obiettivo posto per lo sviluppo è quello di analizzare la struttura dei sistemi
informativi preesistenti atti al monitoraggio e al controllo delle infrastrutture di rete
fissa. Si è reso pertanto necessario lo studio approfondito dei sistemi database
preesistenti, la loro organizzazione e le informazioni utili che potessero contribuire
allo sviluppo del progetto. Successivamente ci si è occupato della manipolazione
delle informazioni per progettare e realizzare il sistema ad apprendimento automatico
come strumento utile per rilevare disservizi o guasti di linea.
Lo sviluppo è stato realizzato interamente in locale, ma tenendo in considerazione la
possibilità di migrare il sistema su macchina remota in un secondo momento.
I capitoli della tesi sono così organizzati:
• 2) e 3) presentano le specifiche richieste dal committente e la relativa analisi
del progetto;
• 4) descrive l’hardware e software utilizzato;
• 5) analizza lo stato attuale dei sistemi informativi preesistenti;
• 6) analizza e progetta la macchina ad apprendimento automatico;
• 7) propone sviluppi futuri del lavoro creato.
6. 2
2. Presentazione delle richieste
Il committente del progetto non ha presentato particolari richieste se non quelle di
uno sviluppo di uno studio di fattibilità riguardante la previsione dei guasti per
migliorare il servizio di proactive assurance e, di conseguenza, migliorare il grado di
soddisfazione della clientela nell’utilizzo dei servizi offerti. Il progetto descritto nel
presente elaborato di tesi è da considerare come un proof of concept per fornire una
valutazione oggettiva al committente riguardo l’applicazione di tecniche di machine
learning applicate al mondo delle telecomunicazioni.
Lo sviluppo del progetto dovrà inoltre occuparsi della sola clientela business in
quanto gode dei servizi aggiuntivi rispetto all’utenza non business quali il
monitoraggio dello stato della linea per ogni cliente.
3. Analisi delle richieste
Considerando lo sviluppo del progetto completamente libero, e non avendo richieste
specifiche da parte del committente, si è optato per realizzare una macchina ad
apprendimento automatico che possa prevedere apertura di ticket da parte della
clientela del committente. Un ticket, nel nostro caso specifico, rappresenta una
lamentela o un reclamo da parte della clientela in relazione ad un disservizio
sull’infrastruttura di rete fissa. Si è infatti ritenuto che la predizione di un ticket in
arrivo nel breve termine possa rappresentare un utile strumento di supporto ad un
reparto di customer relationship management per migliorarne il servizio offerto.
Il progetto, per la sua realizzazione, richiede uno studio approfondito di strutture dati
già sviluppate su motore Mongo DB.
Non meno importante sarà l’analisi delle informazioni fornite dal committente per
velocizzare lo sviluppo in quanto il sistema da realizzare dovrà potersi adattare
facilmente a una complessa infrastruttura già operativa.
Infine ci si occuperà dello studio degli algoritmi di machine learning più utili allo
scopo e di come manipolare i dati per ottenere una corretta previsione.
Ultimo passo del progetto sarà l’analisi dei risultati ottenuti sia per fornire al
committente eventuali sviluppi futuri sia per valutare altre applicazioni di tecniche di
machine learning relative al mondo delle telecomunicazioni.
7. 3
4. Strumenti necessari allo sviluppo del
Progetto
Il progetto necessita dell’utilizzo del seguente elenco di hardware e software.
Di seguito ne vengono descritte le caratteristiche.
4.1. Hardware
4.1.1. PC Notebook MSI GE-62
È il portatile a disposizione del laureando, montante un processore Intel core I7
octacore e 16 gigabyte di ram ddr3. Le prestazioni offerte dal calcolatore non sono
risultate per nulla superflue in quanto il progetto ha richiesto in prima battuta la
manipolazione di enormi quantità di dati (≈ 30 gigabyte) e, successivamente, una
buona potenza di calcolo a causa delle molteplici implementazioni relative
all’algoritmo di classificazione.
8. 4
4.2. Software
4.2.1. Mongo DB
È il database management system che consente la creazione, manipolazione e
interrogazione dei database presenti nei sistemi informativi in uso da parte del
committente e sviluppati da Emaze. Verrà principalmente utilizzato per recuperare le
informazioni utili riguardo lo stato delle linee.
4.2.2. R Studio
Ambiente di sviluppo basato su linguaggio R, un software statistico open source che
fornisce un insieme di macro e librerie utili per la gestione, l’analisi dei dati e la
produzione di grafici.
4.2.3. Software Java
Java è un linguaggio di programmazione e una piattaforma di elaborazione sviluppati
da Sun Microsystems nel 1995. È un linguaggio orientato agli oggetti
specificatamente progettato per essere il più possibile indipendente dalla piattaforma
di utilizzo. Dal download del software Java si ottiene Java Runtime Environment
(JRE). JRE è composto dalla Macchina virtuale Java (JVM), dalle classi core della
piattaforma Java e dalle librerie Java di supporto.
4.2.4. NetBeans
NetBeans è un ambiente di sviluppo integrato multi-linguaggio e multipiattaforma.
Nello specifico verrà utilizzato per la produzione di software applicativo in
linguaggio Java. La versione utilizzata è 8.1 rilasciata il 4 novembre 2015
9. 5
5. Stato Attuale
Questo capitolo si concentrerà sullo studio dei sistemi informativi esistenti e già
integrati nell’infrastruttura del committente.
I sistemi informativi che costituiscono le principali fonti di dati per il progetto sono
due: il primo relativo all’acquisizione dei ticket, il secondo relativo all’acquisizione
dei key performance indicator (KPI), ovvero indicatori dello stato della linea per ogni
cliente. L’acquisizione dei ticket è gestita da un gruppo interno del committente,
mentre l’acquisizione dei KPI è invece affidata a tre sistemi di monitoraggio
sviluppati da Emaze S.p.a.
5.1. Descrizione del CPE
Il Customer Premise Equipment (CPE) è il dispositivo elettronico assegnato ad ogni
cliente, che permette la connessione alla rete di comunicazione geografica (WAN) . I
principali attributi di un CPE sono vendor, modello e software version.
5.1.1. Ciclo di vita di un CPE
E’ composto, in prima approssimazione, da tre macro stati:
1. Preattivo
2. Attivo (o “in produzione”)
3. Dismesso
Quando il CPE è in stato Preattivo, sono
presenti molte fasi interne relative a opzioni
di configurazione, collaudi e test di linea.
Una volta effettuati e verificati con successo
lo stato del CPE passa in Attivo e si avvia,
se previsto, il monitoraggio del CPE e dello
stato della linea.
Un CPE attivo può essere sostituito in caso di guasto o dismesso in caso di
risoluzione di contratto. Il cliente è effettivamente pagante solo quando il CPE è
attivo.
Figura 1: Workflow CPE
10. 6
Ogni CPE è univocamente identificabile dal suo link reference e per ogni link
reference esistono diversi tipi di linea:
• ADSL
• SHDSL
• CDN
• FTTC_MAKE
• FTTC_NGA_VULA
• FTTH_GPON
• PONTE_RADIO
• MOBILE
e diversi tipi di servizi offerti:
• Voice-Data: linea VOCE e/o DATI - dedicata a piccoli uffici
• DataC: DATI per Corporate Data - linee con infrastruttura più complessa
• VoiceC-DataC: VOCE e DATI per Corporate Data - linee con infrastruttura più
complessa
5.2. Sistemi di monitoraggio
Sono attualmente in produzione tre sistemi di monitoraggio:
• HaWMo (Hardware Monitor)
• SeQuMo (Service Quality Monitor)
• CDSeQuMo (Corporate Data Service Quality Monitor)
SeQuMo e CDSeQuMo si occupano di monitorare lo stato della linea dei CPE allo
scopo di misurare la qualità dei servizi voce e dati tramite acquisizione di
misurazioni di KPI effettuate dagli apparati, mentre HaWMo si occupa di monitorare
le performance hardware dei CPE attraverso dati diagnostici generati dai CPE stessi.
Allo stato attuale la numerosità dei CPE monitorati è la seguente:
#HaWMo = 9782
#SeQuMo = 28133
#CDSeQuMo = 6610
#(CDSeQuMo∩HaWMo)= 3495
#(SeQuMo∩HaWMo)= 6184
#(CDSeQuMo∩SeQuMo) = 0Figura 2: Organizzazione
sistemi di monitoraggio
11. 7
In totale sono monitorati all’incirca 35000 CPE su una base totale di 40000. È bene
notare che il sistema di monitoraggio non sia statico, ma sia fortemente dinamico in
quanto giornalmente vengono aggiunti e dismessi nuovi CPE.
Vengono ora analizzati più in dettaglio le macchine di monitoraggio con i relativi
KPI.
Codici di Errore
I tre sistemi di monitoraggio hanno in comune la stessa rappresentazione dei codici
di errore:
• -1: errore generico durante l'esecuzione del test
• -2: OID SNMP non configurato sul dispositivo
• -3: timeout durante l'acquisizione
• -4: dati non disponibili sul dispositivo
• -5: formato dati ricevuti invalido
• -6: differenza negativa
• -7: calcolo non valido
• -66: interfaccia down
5.2.1. HaWMo
Il sistema è responsabile dell’acquisizione periodica dei KPI relativi allo stato
hardware dei CPE. Tale acquisizione avviene ad intervalli regolari di campionamento
di 15 minuti e viene mantenuto uno storico di 30 giorni (pari a 2880 campioni) per
CPE.
Prima di elencare i KPI acquisiti da HaWMo, è bene fare una precisazione sul
funzionamento del buffer di memoria di ogni CPE. La memoria di ogni CPE è
suddivisa staticamente in 6 pool, ognuno contenente un insieme di buffer di
dimensione fissa. Quando è necessario memorizzare un pacchetto e non ci sono
buffer disponibili, viene creato un nuovo buffer nel pool con dimensione minima
adeguata per il pacchetto (e viene incrementato il buffer miss counter). Quando tale
pool non ha più spazio disponibile, si usa il pool con buffer di dimensione
immediatamente superiore (e viene incrementato il buffer failure counter, vedi più
sotto). Se nessun pool ha un buffer disponibile, il pacchetto viene scartato.
12. 8
5.2.1.1. LISTA KPI
• Uso CPU ultimi 5 minuti (%)
Rappresenta il valore percentuale di utilizzo della CPU (relativo a un periodo pari a 5
minuti) del dispositivo CPE.
• Uso memoria (%)
Rappresenta il valore percentuale di utilizzo della memoria del dispositivo CPE.
Note: I dispositivi VendorB non supportano l’acquisizione di questo KPI.
• Buffer failure
Rappresenta il numero di buffer failures negli ultimi 15 minuti.
I dispositivi VendorA e VendorB non supportano l’acquisizione di questo KPI
(quindi solo VendorB).
• Misses totali sui buffer
Numero di buffer miss negli ultimi 15 minuti.
I dispositivi VendorA e VendorC non supportano l’acquisizione di questo KPI
(quindi solo dispositivi VendorB)
• Uptime
Rappresenta il l’intervallo di tempo trascorso dall’ultima accensione del CPE
• Lista delle Interfacce
HaWMo raccoglie, per ogni CPE, la lista delle interfacce valide. Per ognuna di tali
interfacce vengono acquisiti anche i KPI relativi allo stato operativo e
all’occupazione di banda in ingresso ed uscita (vedi KPI successivi).
• Stato Operativo dell’Interfaccia (di rete)
Presente per ognuna delle interfacce valide, questo KPI rappresenta lo stato operativo
dell’interfaccia in questione. Valori possibili sono:
• up
• down
• testing
• unknown
• dormant
• notPresent
• lowerLayerDown
13. 9
• In - per Interfaccia
Presente per ognuna delle interfacce valide, questo KPI rappresenta l’occupazione di
banda in ingresso relativa all’interfaccia in questione.
• Out - per Interfaccia
Presente per ognuna delle interfacce valide, questo KPI rappresenta l’occupazione di
banda in uscita relativa all’interfaccia in questione.
• Uptime - per Interfaccia
Presente solo nell’interfaccia cellular dati di un box 4G, rappresenta il l’intervallo di
tempo trascorso dall’ultima attivazione dell’interfaccia coinvolta.
• Raggiungibilità
Questo KPI è associato al CPE (non alla singola interfaccia). Non viene acquisito in
maniera diretta dai CPE, bensì calcolato indirettamente in base ai valori acquisiti per
gli altri KPI. Qualora durante l’acquisizione di uno o più KPI si verifichino situazioni
di timeout, la raggiungibilità viene determinata come KO. Qualora invece tutte le
acquisizioni siano andate a buon fine (ovvero sia stato possibile acquisire un valore
per ognuno degli altri KPI, sia esso un valido o meno) senza incorrere in alcun
timeout, la raggiungibilità viene determinata come OK.
14. 10
5.2.2. SeQuMo
A intervalli periodici di 15 minuti, il sistema SeQuMo si preoccupa di interrogare
tramite protocollo SNMP tutti i dispositivi coinvolti per la raccolta dei risultati dei
test eseguiti dai singoli CPE.
Ogni CPE viene interrogato in relazione ai seguenti messaggi:
• request http;
• query DNS;
• ICMP echo;
Ogni PROBE (dispositivo dedicato ai test relativi la sola parte voce) verrà
interrogata in relazione al KPI MOS, mean opinion score, per tutti i CPE abilitati.
5.2.2.1. LISTA KPI
• MOS
Le PROBE eseguono a intervalli regolari di 15 minuti i test di tipo Voce, simulando
una chiamata telefonica verso i CPE. Il valore del MOS (Mean Opinion Score) è una
misura della chiarezza di una trasmissione telefonica. Questa misurazione va da 0 a
5: 5 indica una qualità della voce eccellente, mentre 0 indica una qualità pessima.
Figura 3: Schema di funzionamento di SeQuMo
SeQuMo
15. 11
• Stato Linea Primaria
Questo KPI viene derivato dal sistema SeQuMo dalla presenza degli altri KPI
acquisiti dal CPE e indica se la linea primaria è attiva.
• Http
Rappresenta il Round Trip Time (latenza) relativo all’acquisizione di una pagina web
via HTTP. Il CPE è configurato per l’esecuzione periodica dell’acquisizione di una
pagina HTTP, e il relativo RTT viene acquisito interrogando direttamente il CPE
sotto monitoraggio tramite l’uso del protocollo SNMP.
• Dns
Rappresenta il Round Trip Time (latenza) relativo alla risoluzione di un hostname
tramite interrogazione di un DNS server da parte del CPE. Questo test non è
supportato dai device VendorA. Per tali device viene sostituito dal test ICMP. Il CPE
deve essere configurato per l’esecuzione periodica della risoluzione di un hostname
sul DNS.
• Icmp Average e Icmp failure rate
Questo test viene usato in sostituzione al test DNS, in particolare a beneficio dei
device VendorA. Viene effettuato un ping continuo verso il server DNS; in base ai
risultati di tali ping il sistema ricava due KPI, uno relativo alla latenza (RTT) media
dei pacchetti ICMP, l’altro relativo alla percentuale di pacchetti persi nella
comunicazione fra il CPE e il server DNS. Vengono letti 30 valori, dei quali viene
fatta la media per estrarre la latenza in millisecondi e la valutazione del packet loss
percentuale.
• Reboot
Rappresenta il numero di reboot del device nell’intervallo di tempo considerato,
ovvero dall’acquisizione precedente.
• Ima Up
Rappresenta il numero di risalite di flussi IMA del device negli ultimi 15 minuti.
Ima (Inverse multiplexing over ATM) identifica una modalità di trasmissione nella
quale il flusso di dati viene suddiviso in pacchetti inviati sui collegamenti fisici
disponibili e ricomposti successivamente, una volta giunti a destinazione
16. 12
• Ima Down
Rappresenta il numero di cadute di flussi IMA del CPE nell’intervallo di tempo
considerato.
• Interface Up
Rappresenta il numero di risalita di portante del CPE nell’intervallo di tempo
considerato.
• Interface Down
Rappresenta il numero di cadute di portante del CPE nell’intervallo di tempo
considerato.
5.2.3. CDSeQuMo
Il suo funzionamento è analogo a quello di SeQuMo, ma è dedicato solo per la
clientela Corporate. A differenza di SeQuMo monitora ulteriori KPI come utilizzo
banda in download/upload e parametri di QoS, ovvero parametri di qualità del
servizio fissati al momento del contratto. Tale acquisizione avviene ad intervalli
regolari di campionamento di 15 minuti.
5.2.3.1. LISTA KPI
• Raggiungibilità
Questo KPI indica la raggiungibilità (in termini di packet loss) del CPE. Valori molto
bassi (idealmente 0%) sono indicativi di corretta raggiungibilità del dispositivo,
mentre valori molto alti (nel caso peggiore, 100%) sono indicativi di CPE spento o
non raggiungibile a causa di problematiche di rete.
CDSeQuMo effettua ping continui verso i CPE, secondo le seguenti modalità:
Ogni ping consiste di un messaggio ICMP, il quale viene dichiarato perso
dopo un’attesa di 3 secondi. Le sessioni di ping sono organizzate in slot
sequenziali di durata minima di 1 secondo:
– se l’esecuzione di uno slot richiede più di 1 secondo, il successivo
viene avviato appena il corrente finisce
– se l’esecuzione di uno slot termina in meno di 1 secondo, c’è un
periodo di attesa prima dell’esecuzione del successivo
17. 13
Durante ogni slot vengono contattati un massimo di 200 indirizzi ip, in
maniera sequenziale.
Viene comunque garantito che non vengano inviati pacchetti ICMP verso lo
stesso indirizzo IP con frequenza maggiore di 3 secondi.
– questo significa che qualora nel sistema siano registrati, per
esempio, meno di 200 indirizzi IP, la distanza minima fra l’invio di
pacchetti ICMP verso gli stessi CPE sarà di 3 secondi
Al termine di ogni ciclo di polling, ovvero ogni 15 minuti, per ogni CPE si effettua il
conteggio dei pacchetti ICMP inviati e ricevuti e si calcola la percentuale di packet
loss.
• Http
Analogo al test effettuato su SeQuMo.
• Dns
Analogo al test effettuato su SeQuMo.
• Icmp
Analogo al test effettuato su SeQuMo.
• Download rate
Rappresenta il Download rate complessivo della banda dati del CPE, non
differenziato per classe di servizio, negli ultimi 15 minuti.
A partire dal numero di byte acquisiti durante l’acquisizione n-esima, e dal valore
raccolto durante l’acquisizione precedente [n-1], si ricava l’occupazione di banda in
kbps secondo la formula:
[ ] = ( [ ] − [ − 1]) / 1024 ∗ 8 /
• Upload rate
Rappresenta l’Upload rate complessivo della banda dati del CPE, non differenziato
per classe di servizio, nell’arco degli ultimi 15 minuti.
A partire dal numero di byte acquisiti durante l’acquisizione n-esima, e dal valore
raccolto durante l’acquisizione precedente [n-1], si ricava l’occupazione di banda in
kbps secondo la formula:
[ ] = ( [ ] − [ − 1]) / 1024 ∗ 8 /
18. 14
5.3. Sistema di Ticketing
5.3.1. Workflow di un Ticket
Nel momento in cui il cliente percepisce un disservizio sulla sua linea, chiama il
CRM (customer relationship management). Il CRM si suddivide internamente in due
gruppi: il 1° Livello (frontline) che gestisce tutte le chiamate in entrata della clientela
e il 2° Livello (backoffice) che si occupa di sistemare problemi più “blandi” in
quanto ha a disposizione strumenti di visibilità e di troubleshooting da remoto. In
media il CRM risolve il 60% delle chiamate, il resto si tramuta in apertura di un
ticket.
Nel caso in cui il CRM non abbia gli strumenti necessari per risolvere il problema
entra in gioco Assurance, il gruppo di gestione di ticket che, arrivati a questo punto
del workflow, vengono considerati Ticket Tecnici. Assurance suddivide il ticket in 2
tipologie:
• Work Order (ticket interno)
• Terze Parti (ticket aperto a sua volta a operatori telefonici di terze parti)
e si occupa di identificare un gruppo interno per risoluzione del problema.
Una volta che il gruppo interno dichiara di aver terminato il troubleshooting, il ticket
ritorna ad Assurance che, o tramite un controllo diretto sul CPE o tramite una
telefonata al cliente (o delegando il controllo al CRM), verifica la risoluzione del
problema.
Se, al momento del contatto col cliente, si rileva che il problema persiste o non sia
stato sistemato viene riaperto un altro ticket, ex novo, non agganciato al precedente.
5.3.2. Chi può aprire un Ticket
Gli enti e le persone fisiche che possono aprire un ticket sono:
• Cliente, in qualsiasi momento; chiamando il CRM.
• PM (gestore dell’installazione e configurazione del CPE), nella fase di
preattivazione e nei primi 15 gg dell’attivazione;
• Il sistema CDSeQuMo, in qualsiasi momento; automaticamente in caso di lettura di
PacketLoss = 100% nell’arco di 30 minuti. Questi ticket sono considerati
automaticamente ticket tecnici
19. 15
5.3.3. Contenuto dei ticket
Un singolo ticket contiene:
• Data di Apertura
• Data di Chiusura
• Link Reference : per identificare il CPE e la relativa linea
• Tipologia Ticket
• Status: disposizione del progetto solo ticket con status Answered (problema risolto)
e Closed (verificato col cliente)
• Context: tipo di cliente e di gestione che deve avere (tempistiche, workflow di
lavorazione).
• Tripletta: costituito dai campi Service MacroArea, Service Name e Trouble
Description.
• Close_Code: campo compilato solo quando lo Status è Answered oppure Closed.
Rappresenta l'indicazione del problema rilevato una volta effettuato il
troubleshooting e rappresenta quindi quanto di più vicino a una descrizione del
problema. Non sempre infatti il ticket è indicatore di un degrado/disservizio, ma può
anche accadere che venga aperto per effettuare modifiche sui servizi, sulle classi di
servizio o modifiche di configurazione sul CPE.
5.3.4. Lavori Programmati
Un’informazione utile fornita dal committente è quella relativa ai lavori
programmati, ovvero una lista di Link Reference che giornalmente sono sottoposti a
potenziali problemi di linea in termini di rilevazione dei KPI in quanto è in corso un
lavoro fisico, come ad esempio una sostituzione di cablaggi o riconfigurazioni di
Broadband Network Gateway, sull’infrastruttura di rete. Questo tipo di informazione
si è rilevata molto utile in termini di riduzione del rumore in quanto ticket aperti
durante lavori programmati non sono stati presi in considerazione.
20. 16
6. Progettazione della macchina ad
apprendimento automatico
Con il termine classificazione si intende l’operazione di assegnare degli oggetti
chiamate istanze ad alcune categorie predefinite chiamate classi: si tratta di un
problema diffuso che riguarda molte applicazioni diverse. Tra gli esempi che si
possono citare c’è l’identificazione delle email di spam sulla base dell’oggetto e del
contenuto, la categorizzazione delle cellule come benigne o maligne oppure la
classificazione delle galassie secondo la loro forma.
Tipicamente l’input per un problema di classificazione è rappresentato da un insieme
di dati chiamato training set, l’obiettivo è quello di creare una descrizione generale
che permetta di catalogare dati futuri non ancora visti. Ogni istanza appartenente a un
training set è composta da attributi che descrivono lo stato della istanza e una o più
label che descrive una o più classi di appartenenza per quella istanza. Gli attributi
(chiamati anche feature) sono solitamente di due tipi: nominali oppure numerici.
Formalmente si definisce classificatore il task di apprendere una funzione F che
mappa un insieme di feature A in una delle classi di C.
Le feature usate per lo sviluppo del progetto sono di tipo numerico e la numerosità
delle classi è pari a due (apertura del ticket e non apertura del ticket): lo sviluppo del
progetto verterà quindi sull’addestramento e valutazione delle prestazioni di un
classificatore binario.
21. 17
6.1. Scelta del classificatore
Per lo sviluppo del progetto si è optato per l’algoritmo di classificazione chiamato
Random Forest.
6.1.1. Random Forest
È basato su alberi decisionali. Un albero decisionale è un albero in cui ogni nodo
interno è associato un test su una delle feature e gli archi verso i figli sono etichettati
come i risultati distinti del test. Infine ogni foglia è associata a una classe che
permette così di creare una partizione del training set in classi distinte. Gli alberi
decisionali presentano diversi vantaggi tra cui:
• Facilità di interpretazione;
• Offrono una buona accuratezza generale;
• Robustezza al rumore;
Il classificatore Random Forest genera, durante la fase di addestramento, una foresta
di alberi decisionali. Al momento del test ogni albero genera la sua predizione
relativa a una stessa istanza e i risultati dei singoli test vengono aggregati, valutando
la classe di maggioranza e fornendo una classificazione per quella istanza. Si è optato
per un classificatore di tipo Random Forest in quanto è un tipo di classificazione
molto efficiente e resistente all’overfitting. Per overfitting si intende quando un
modello di classificazione si adatta eccessivamente ai dati osservati fornendo ottime
prestazioni sui dati di addestramento, mentre le prestazioni sui dati non visionati
saranno peggiori.
22. 18
6.1.2. Valutazioni delle prestazioni
Per quanto riguarda le prestazioni del classificatore sono fornite dalla fase di
validazione. Infatti non è significativo studiare le prestazioni del classificatore sulle
istanze del training set dato che la funzione di classificazione è stata costruita su di
essa. Si effettua perciò la validazione su dati mai analizzati dal classificatore. Per
dimostrare la bontà del classificatore creato si effettuerà una validazione di tipo K-
fold (con K = 10) funzionante nel seguente modo:
1. Si suddivide il dataset in K sottoinsiemi disgiunti garantendo la stessa proporzione
delle classi;
2. Ad ogni passo (in totale ci sono K passi), la parte 1/K-esima del dataset viene
utilizzata come validation set, mentre la restante parte costituisce il training set.
In ogni passo si ricavano le prestazioni del classificatore confrontando i dati di
predizione del validation set con i dati reali.
È prassi infatti raccogliere i risultati di classificazione in una tabella chiamata
Confusion Matrix la quale fornisce delle metriche significative relative alla bontà
della classificazione. La rappresentazione di una Confusion Matrix relativa a un
problema di classificazione binario è la seguente:
Classe Reale
+ -
Classe Predetta
+ TP FP
- FN TN
Dove:
• TP (True Positive): previsione positiva di istanza positiva
• FP (False Positive): previsione positiva di istanza negativa
• FN (False Negative): previsione negativa di istanza positiva
• TN (True Negative): previsione negativa di istanza negativa
23. 19
Le metriche significative di un problema di classificazione sono:
• TPR, True Positive Rate: rappresenta la frazione delle istanze positive classificate
correttamente e può essere vista come la capacità del classificatore di identificare
istanze positive. Viene calcolato come: =
!"
• FPR, False Positive Rate: rappresenta la frazione delle istanze negative classificate
come positive e possono essere interpretate, nel nostro caso specifico come la
capacità di generare falsi allarmi. Viene calcolato come: # =
!
! "
• FNR, False Negative Rate: rappresenta la frazione delle istanze positive classificate
come negative e viene calcolato come: #$ =
!"
!"
24. 20
6.1.3. Curva ROC
ROC sta per Receiver Operating Characteristics ed è una tecnica utilizzata nei
classificatori binari per visualizzare i classificatori in base alle loro performance. È
una curva bidimensionale dove il True Positive Rate è lungo l’asse Y e il False
Positive Rate lungo l’asse X. La curva ROC permette di studiare i rapporti tra allarmi
veri e i falsi allarmi e si ottiene, una volta addestrato il classificatore, studiando
l’andamento delle coppie (TPR, FPR) nello spazio ROC al variare della threshold
(soglia di votazione fornita dagli alberi decisionali che di default è il 50%+1 ) del
classificatore Random Forest. Una volta ottenuti i punti nello spazio ROC è possibile
ottenere una curva tramite tecniche di interpolazione.
I punti significativi in una curva ROC sono i seguenti:
• (0,0): Rappresenta un classificatore la cui predizione risulta, indipendentemente
dall’istanza valutata, sempre Negativa;
• (0,1): Rappresenta la classificazione perfetta, ovvero quanto il classificatore non
produce falsi allarmi e riesce a predire tutte le istanze Positive;
• (1,1): Rappresenta un classificatore la cui predizione risulta, indipendentemente
dall’istanza valutata, sempre Positiva.
La linea diagonale y = x rappresenta una strategia di classificazione random,
paragonabile cioè ad un lancio di una moneta per la predizione di eventi, mentre una
curva più è distante dalla diagonale e maggiore sarà la sua capacità di previsione.
Per comparare due classificatori attraverso la curva ROC viene introdotto il
Figura 4: Esempio di Curva ROC
25. 21
coefficiente AUC, Area Under Curve, che valuta l’area sottesa alla curva ROC:
maggiore è il coefficiente di AUC e maggiore sarà l’accuratezza del classificatore.
Infine le curve ROC vengono utilizzate anche in fase di ottimizzazione: possono
essere utili cioè per fissare un valore di cut-off per garantire valori di False Positive
Rate desiderati e studiare il classificatore in termini di True Positive Rate.
6.2. Costruzione del Dataset
Viene ora descritta la procedura relativa alla costruzione del Dataset usata per
addestrare e validare il classificatore.
6.2.1. Riferimenti Temporali per il Dataset
Poiché la tesi si propone di valutare la previsione di ticket in seguito a lettura dei
KPI, e non avendo indicazioni dal committente riguardanti la lunghezza della
previsione e il numero di previsioni da fare al giorno sono state fissate delle variabili
temporali per studiare dove si ottengono i migliori risultati e per valutare quale può
essere l’orizzonte di predizione utile per il committente.
Le variabili temporali fissate sono le seguenti:
• W (in ore): lunghezza della finestra temporale in cui si calcola una feature come
aggregato delle letture di KPI (per quanto tempo raccolgo i dati);
• G (in ore): gap (quanto tempo prima ho a disposizione la predizione);
• H (in ore): lunghezza dell’orizzonte di predizione (per quanto tempo vale la
predizione).
Se t è l’istante in cui genero una predizione, allora vengono raccolte osservazioni tra
t-W e t; all’istante t genero una predizione valida per l’intervallo tra t+G e t+G+H.
Figura 5: Finestre Temporali W, G e H
26. 22
Sono stati scelti diversi valori per le 3 variabili e combinati tra loro ottenendo così
Dataset diversi su cui si sono valutate le prestazioni:
• W=12 (h);
• H= 0.25, 1, 4, 8(h);
• G= da 0 a 24 (h) a intervalli di 1 ora.
6.2.2. Creazione delle Feature
Per ogni KPI preso in considerazione sono state realizzate 5 feature attraverso cinque
distinte funzioni di aggregazione relative alla finestra temporale W. Le funzioni
utilizzate sono le seguenti:
• Massimo: max(()) = * ( | ( > () ∀ = 1, … , }
• Minimo: min(()) = * ( | ( < () ∀ = 1, … , }
• Media: med(()) =
∑ 788
9
: = 1, … , }
• Conteggio degli errori: c_err(()) = ∑ >(())) : >(()) = ?
1 () = −3
0 AB C
• Conteggio dei dati non disponibili:
c_na(()) = D >(())
)
: >(()) = ?
1 () ∈ *−1, −2, −4, −5, −6}
0 AB C
I KPI considerati per lo sviluppo del progetto sono i seguenti:
Per CDSeQuMo:
• Raggiungibilità (s)
• Packet Loss (pl, tx, rx)
• Download Rate (ib)
• Upload Rate (ob)
• Latenza http (h)
• Latenza dns ( d oppure icmp in base al tipo di Vendor)
Per SeQuMo:
• Latenza http (h)
• Latenza dns ( d oppure icmp in base al tipo di Vendor)
• Reboot (dr)
• Interface Up (iu)
• Interface Down (id)
Mentre sono stati esclusi i seguenti KPI in quanto non sempre presenti su tutti i
dispositivi:
• QOS (qos)
• MOS (m)
• Flussi Ima
27. 23
6.2.3. Scelta dei Ticket
Per ridurre al minimo il rumore presente all’interno dei ticket si è effettuata una
selezione in quanto i ticket forniti dal committente erano relativi, oltre che a guasti e
disservizi sulla linea, anche a riconfigurazioni del dispositivo o a situazioni anomale
non predicibili in alcun modo dalla lettura dei KPI.
Sono stati pertanto filtrati così i ticket:
• rimossi i Ticket automatici del Portale di Monitoring
• rimossi i Ticket con CLOSE_CODE: No_Trouble_Found
• rimossi i Ticket aperti durante il periodo di lavori programmati
• tra i rimanenti, considerati solo i primi ticket aperti per ogni link reference
• tra i rimanenti, considerati solo quelli con una CLOSE_CODE che effettivamente
indicasse un guasto o disservizio sulla linea
Ottenendo così un sottoinsieme significativo di ticket relativi a problemi di linea.
6.2.3. Scelta dei Campioni
Per quanto riguarda la creazione dei campioni significativi per addestrare e validare
l’algoritmo di classificazione si è proceduto al seguente modo:
Sia LR l’insieme dei Link Reference:
1. Identifico l’insieme TT di ticket costruito come sopra;
2. Partiziono LA in due sottoinsiemi:
• LRsi
contenente i link reference che hanno generato un ticket di TT;
• LRno
contenente i link reference che non hanno generato nessun ticket di TT.
3. Costruisco il dataset D come unione di:
• Dsi
, n1 istanze per ogni elemento di LRsi
(n1=H*4);
• Dno
, n2 (n2 = 3) istanze per ogni elemento di LRno
; n3 (n3=3) istanze per ogni
elemento di LRsi
; ogni istanza corrisponde ad una finestra W;
• nessuna finestra W contiene una apertura di ticket
Numero di Istanze SI = |LRsi
|* H * 4
Numero di Istanze NO = 3*|LRsi
| + 3*|LRno
| = |LR|*3
28. 24
6.2.4. Trattamento dei Missing Values
Quando si ha a che fare con dati provenienti dal mondo reale è impossibile non
imbattersi nel problema dei dati mancanti. Molto spesso i record presentano alcune
variabili per le quali non è noto il valore. In generale un numero di Missing Values
inferiore al 5% sul totale del dataset viene considerato solitamente gestibile, valori
dal 5% al 15% richiedono metodi ad hoc, mentre valori superiori al 15% sono
difficilmente gestibili. Per quanto riguarda lo sviluppo del progetto si è optato per
sostituire i valori mancanti con la media dei valori della feature su tutto il Dataset.
6.2.5. Trattamento dei dati sbilanciati
Nel caso trattato ci si è trovati difronte alla creazione di Dataset sbilanciati, ovvero
Dataset in cui una classe è presente in numero molto maggiore rispetto ad un’altra.
Nel nostro caso specifico la classe relativa alle istanze NO ha il rapporto con la
classe delle istanze SI di 1000:1. Ovviamente lo sbilanciamento dei dati in questione
è intrinseco al problema stesso e non causato da una raccolta sbilanciata dei dati. La
soluzione proposta per ovviare allo sbilanciamento dei dati è quella di adottare un
approccio Cost-Sensitive ovvero associando, durante la fase di training, un diverso
costo dell’errore per classe; il costo è stato assegnato in modo da essere inversamente
proporzionale alla cardinalità della classe stessa assegnando pertanto un peso
maggiore alla classe di minoranza.
29. 25
6.3. Prestazioni del classificatore
Vengono ora valutati i risultati forniti fornendo un approfondimento relativo alle
prestazione del classificatore creato in relazione ai parametri temporali G e H.
6.3.1. CDSeQuMo
Relativamente al sistema CDSeQuMo si possono fare le seguenti considerazioni:
6.3.1.1. True Positive Rate
Per quanto riguarda le prestazioni in termini di True Positive Rate si può notare come
i risultati migliori si ottengano all’aumentare della finestra di previsione H.
Per quanto riguarda la previsione con H pari a 15 minuti (0,25 ore) si segnala come
all’aumentare del Gap G ci sia un calo si prestazioni in termini di TPR passando da
un massimo di 0,8 a un minimo di 0,6 , mentre considerando una finestra di
previsione maggiore non c’è un calo significativo delle performance.
Figura 6: TPR per CDSeQuMo
CDSeQuMo
30. 26
6.3.1.2. False Positive Rate
Nonostante l’aumentare di H porti dei miglioramenti in termini di TPR, la situazione
invece si ribalta nella valutazione dei False Positive Rate (o FPR). Come si evince
dal grafico sottostante il tasso dei falsi positivi aumenta, fino addirittura a triplicare
rispetto al caso migliore, all’aumentare della finestra di previsione H.
Nonostante siano valori molto bassi questi ultimi non vanno sottovalutati in relazione
al problema considerato: infatti considerando che l’apparato CDSeQuMo monitora
7000 dispositivi diversi e supponendo un numero di previsioni al giorno pari a 10 per
ogni linea, ciò comporta potenzialmente un numero di falsi positivi pari a 700 nel
caso migliore (H = 1) e 2100 nel caso peggiore (H=8).
A tal proposito si è scelto di valutare le prestazioni del classificatore agendo sulla
soglia del classificatore stesso per migliorare le prestazioni in termini di False
Positive Rate e analizzare come una variazione in tal senso modifica le prestazioni in
Figura 7: FPR per CDSeQuMo
CDSeQuMo
31. 27
termini di True Positive Rate. Sono stati pertanto fissati due indici di False Positive
Rate e letto il corrispettivo valore di True Positive per ogni curva ROC creata. Per
quanto riguarda gli indici fissati si è optato per un valore di False Positive pari a 0,01
e 0,0015 ottenendo rispettivamente gli indici TPR@1% e TPR@0,15%.
6.3.1.3. True Positive Rate @1%
Analizzando il grafico è chiaro come impostando cut-off di FPR pari a 0,01 le
prestazioni non cambino in maniera significativa rispetto all’indice di TPR con una
soglia del classificatore di default.
Figura 8: TPR@1% per CDSeQuMo
CDSeQuMo
32. 28
6.3.1.4. True Positive Rate @0,15%
Situazione ben diversa la si ha andando a impostare un cut-off sul FPR pari a 0,015.
Per quanto riguarda le previsioni con finestra temporale pari a 15 minuti le
performance in termini di TPR si aggirano sul 20% cioè si riuscirebbe a prevedere
solo un quinto dei ticket totali. D’altra parte per valori di H maggiori di un’ora si può
notare come le prestazioni calino, ma si assestino su valori molto buoni.
Considerando una finestra di previsione maggiore di un’ora e su un totale di 7000
linee e 10 misurazioni al giorno si ha, a fronte di 105 falsi positivi giornalieri, una
previsione dei ticket che si aggira al 75% rispetto alla totalità dei ticket.
Si ritiene pertanto che questi ultimi rappresentino dei risultati più interessanti per il
committente in quanto una diminuzione di un ordine di grandezza dei falsi positivi
comporta un calo delle prestazioni in termini di TPR in media del solo 20%.
Figura 9: TPR@0,15% per CDSeQuMo
CDSeQuMo
33. 29
6.3.2. SeQuMo
Relativamente alla macchina SeQuMo si possono fare le seguenti considerazioni:
6.3.2.1. True Positive Rate
Analogamente al classificatore applicato alla macchina CDSeQuMo, per quanto
riguarda le prestazioni in termini di True Positive Rate si può apprezzare come i
risultati migliori si ottengano all’aumentare della finestra di previsione H.
Per quanto riguarda nello specifico la previsione con H pari a 15 minuti (0,25 ore) si
segnala come all’aumentare del Gap G ci sia un calo si prestazioni in termini di TPR
soprattutto dopo le 12 ore passando da un massimo di 0,8 a un minimo di 0,6 ,
mentre considerando una finestra di previsione maggiore non c’è un calo così
significativo delle performance.
Figura 10: TPR per SeQuMo
SeQuMo
34. 30
6.3.2.2. False Positive Rate
Nonostante l’aumentare di H porti dei miglioramenti in termini di TPR, la situazione
invece si ribalta nella valutazione dei False Positive Rate (o FPR). Come si evince
dal grafico sottostante il valore relativo dei falsi positivi aumenta , fino addirittura a
triplicare rispetto al caso migliore, all’aumentare della finestra di previsione H.
Si può notare come il False Positive Rate sia di gran lunga più elevato rispetto al
False Positive Rate ottenuto con il classificatore relativo a CDSeQuMo. Tenendo in
considerazione che è stato applicato lo stesso processo per entrambe le
macchine di monitoraggio si può fare una considerazioni su come le feature (e
pertanto i relativi KPI ) di CDSeQuMo abbiano una maggior correlazione con
l’apertura dei ticket rispetto alle feature di SeQuMo.
Analogamente a quanto fatto per CDSeQuMo vengono ora valutate le prestazioni del
classificatore andando a fissare un valore di cut-off sul FPR per analizzarne il TPR.
Figura 11: FPR per SeQuMo
SeQuMo
35. 31
6.3.2.3. True Positive Rate @1%
Impostando un cut-off sul FPR pari a 0,1 e indipendentemente dalla finestra di
previsione si può sostenere che il TPR cali all’aumentare del gap G e assuma
globalmente valori tra compresi tra il 50% e il 90%.
È da notare, e a tal proposito ci si propone di svolgere un’analisi più approfondita, un
andamento anomalo della curva per Gap compreso tra le 10 e le 20 ore. Questo
potrebbe essere sinonimo di una scelta errata dei campioni significativi oppure indice
di una certa stagionalità oraria nell’apertura dei ticket da parte della clientela del
committente.
Figura 12: TPR@1% per SeQuMo
SeQuMo
36. 32
6.3.2.4. True Positive Rate @0.15%
Impostando un cut-off sul FPR pari a 0,015 e indipendentemente dalla finestra di
previsione si può sostenere che il TPR cali all’aumentare del gap G e assuma
globalmente valori tra compresi tra il 30% e il 70%.
In questo caso si sottolinea come si possano ottenere risultati con un True Positive
Rate pari al 60% solo per valori di gap molto bassi e inferiori alle 5 ore. D’altra
parte va considerato che SeQuMo monitora all’incirca 30000 dispositivi e,
supponendo un numero di previsioni pari a 10 per linea, si ottengono giornalmente
all’incirca 450 falsi positivi al giorno.
Figura 13: TPR@0,15% per SeQuMo
SeQuMo
37. 33
6.3.3. Valutazione delle prestazioni in ambito di
applicazione reale.
Vengono ora contestualizzati i risultati ottenuti fornendo un possibile scenario di
gestione dei ticket con il classificatore.
Supponiamo di voler fornire al CRM uno strumento di supporto durante l’orario
d’ufficio (9-17) relativamente alla possibile apertura di ticket da parte dell’utenza
CDSeQuMo. Viene suggerita pertanto questa strategia: fornire al CRM due
previsioni al giorno, una relativa alla mattina e una relativa al pomeriggio in modo
tale da allertare gli addetti ai lavori fornendo indicazioni sul possibile carico di
lavoro in arrivo e in modo da permettere una migliore gestione della forza lavoro in
termini di risorse umane nell’arco della giornata.
Lo specifico ambito applicativo richiede una finestra di previsione H pari a 4 ore e un
gap G di 1 ora per fornire al CRM il tempo necessario ad allocare le risorse. I dati
relativi a CDSeQuMo con H=4h e G=1h sono a tal proposito molto promettenti:
infatti in questo caso si ha una predizione dei ticket pari al 78% con un False Positive
Rate dello 0,15%. Contestualizzando le percentuali si può supporre che, a fronte di
100 ticket reali nell’arco della giornata, ne vengano predetti correttamente 78 e
vengano generati 18 falsi allarmi.
In alternativa è possibile fornire indicazioni utili coprendo l’intero della giornata
generando predizioni per 24 volte in un giorno (con H =1h) o per 3 volte in un giorno
(con H=8h). In entrambi i casi si possono prevedere ticket con una precisione del
75%, e un False Positive Rate dello 0,15%. È tuttavia da tenere in considerazione che
il numero di Falsi Positivi che genera la macchina è direttamente proporzionale al
numero di previsioni fatte, pertanto con 24 previsioni al giorno si generano
all’incirca 200 falsi positivi e con 3 previsioni al giorno se ne generano appena 27
pur mantenendo la stessa percentuale di previsione dei True Positive.
38. 34
7. Conclusioni
Lo sviluppo del progetto commissionato è risultato di grosso interesse anche a livello
formativo. L’utilizzo di un software come R Studio mi ha dato la possibilità di
studiare e analizzare oltre che un nuovo tool, un nuovo linguaggio di manipolazione
e rappresentazione di dati.
Lo sviluppo del progetto è stato inizialmente lento a causa dello studio e dell’analisi
dei sistemi preesistenti, ma una volta compreso il sistema nel suo complesso si è
impiegato del tempo utile nella comprensione del linguaggio utilizzato e delle
rispettive librerie velocizzando l’intero sviluppo.
È curioso da segnalare come la libertà fornita dal committente si sia rivelata un’arma
a doppio taglio: non avendo chiari gli obbiettivi da sviluppare si è optato per un
problema che comprendesse il maggior numero di utenza monitorata senza entrare
troppo nel dettaglio delle linee e delle loro eventuali criticità.
Mi ritengo piuttosto soddisfatto della possibilità fornitami, poiché l’apprendimento di
un tool a me sconosciuto all’inizio del progetto, e la possibilità di toccare con mano
metodologie e tecniche di Machine Learning rappresentano una branca del computer
science che dovrebbero far parte del bagaglio culturale di ogni Ingegnere
Informatico.
Possibili sviluppi futuri del progetto sono:
• Presentazione delle prestazioni al committente;
• Inserimento in produzione del classificatore con taratura dello stesso e valutazione
delle performance nell’ambiente reale;
• Suddividere il classificatore in base a differenti tipologie di linee;
• Progettazione e sviluppo di un classificatore per la previsione di guasti di linea;
• Estensione del classificatore creato attraverso l’aggiunta di feature provenienti da
altri sistemi di monitoraggio.
39. 35
Bibliografia
Phil Spector. Data Manipulation with R.
Peter Dalgaard. Introductory Statistics with R
Shai Shalev-Shwartz. Understanding Machine Learning: From Theory to Algorithms
Jason Bell. Machine Learning: Hands-On for Developers and Technical
Professionals
J. Ross Quinlan. Induction of decision trees
Peter Harrington. Machine Learning in Action
Documentazione JAVA
· http://docs.oracle.com/javase/6/docs/api/
Documentazione R
- http://www.r-project.org/
Indice delle figure
Figura 1: Workflow CPE…………………………………………………………………………………..…pag 5
Figura 2: Organizzazione Macchine di monitoraggio………………………………………….pag 6
Figura 3: Schema di funzionamento di SeQuMo…………………………………………….pag 10
Figura 4: Esempio di Curva ROC………………………………………………………………………pag 20
Figura 5: Finestre Temporali W, G e H……………………………………………………………..pag 21
Figura 6: TPR per CDSeQuMo………………………………………………………………………..pag 25
Figura 7: FPR per CDSeQuMo………………………………………………………………………..pag 26
Figura 8: TPR@1% per CDSeQuMo………………………………………………………………..pag 27
Figura 9: TPR@0,15% per CDSeQuMo……………………………………………………………pag 28
Figura 10: TPR per SeQuMo…………………………………………………………………………..pag 29
Figura 11: FPR per SeQuMo…………………………………………………………………………..pag 30
Figura 12: TPR@1% per SeQuMo…………………………………………………………………..pag 31
Figura 13: TPR@0,15% per SeQuMo……………………………………………………………..pag 32