Introduzione
Barbagli è un’azienda che offre servizi operazionali per il settore dell’industria delle multi-utility, tra cui gestione delle letture dei consumi, fatturazione e gestione dell’incasso (reading, billing & cashing), installazione e manutenzione dei contatori, gestione delle utenze morose. I servizi erogati differiscono significativamente sia in termini di abilità tecniche richieste agli operatori di campo, sia per il livello di servizio contrattualmente accordato al committente. Il personale tecnico di campo riceve dai propri supervisori (Operations Manager, OM) il pacchetto di ordini di lavoro da svolgere.
In taluni casi l’operatore può organizzare in autonomia il proprio programma giornaliero; in altri casi, pur permanendo un certo grado di autonomia, egli è vincolato al rispetto di fasce orarie comandate più o meno estese. Il management ha l’esigenza di monitorare le prestazioni degli operatori, per individuare le pratiche virtuose, gli eventuali errori e le esecuzioni anomale su cui intervenire. Per identificare le prestazioni anomale ci si può basare sul confronto tra la prestazione rilevata e la prestazione standard. Tuttavia, sono molteplici i fattori esogeni e non determinabili né controllabili dall’azienda, che possono influenzare la prestazione individuale: l’eterogeneità dei servizi offerti, l’incertezza connessa alle rilavorazioni, la diversa qualificazione ed esperienza dell’operatore, le caratteristiche dell’area geografica da servire, la variabilità. E’ complesso definire gli standard di riferimento sulla base di modelli analitici di processo. Si è quindi proposto di utilizzare il machine learning per lo sviluppo di un modello predittivo della prestazione, a partire da determinate caratteristiche, e di impiegare tale modello come una black-box da impiegare per il confronto con la prestazione effettiva, ai fini della identificazione delle anomalie.
Questo è stato possibile perché l’azienda disponeva di una gran quantità di dati raccolti dal campo. Ogni operatore è infatti dotato del proprio dispositivo mobile (PDA), che viene usato sia per ricevere e visualizzare il pacchetto di ordini di lavoro della giornata, sia per registrare – con una procedura guidata – i tempi di esecuzione (inizio e fine operazione) e il tipo di attività svolta. Questi dati sono raccolti nel database aziendale e possono quindi essere elaborati per la costruzione di un modello predittivo. La prestazione così stimata viene confrontata in tempo reale con quella effettiva, al fine di rilevare i tempi anomali. Il gap di prestazione (i.e. prestazione stimata – prestazione effettiva) può essere impiegato anche per rideterminare gli scostamenti di costo e di tempo a finire del programma settimanale, e quindi le variazioni di marginalità del contratto di appalto. Per valutare in modo oggettivo i tempi di esecuzione, il valore di riferimento della prestazione deve considerare il maggior numero di caratteristiche. Data la varietà e la numerosità dei dati disponibili, si è deciso di adottare una specifica classe di algoritmi di Machine Learning: le cosiddette Macchine a Vettori di Supporto (Support Vector Machine, SVM). Nel seguito della memoria si illustra il procedimento applicativo di tale tecnologia al problema in oggetto, la cui sintesi è illustrata nella Figura 1.
Sviluppo dello strumento
Le SVM sono un popolare metodo di Machine Learning che trae origine dalla teoria statistica dell’apprendimento e che può essere utilizzato per scopi di classificazione, regressione ed altri compiti di apprendimento automatico. Lo scopo di un algoritmo di SVM è produrre un modello – la “macchina” – che, opportunamente addestrato, sia in grado di predire il valore di una variabile incognita a partire da un certo insieme di attributi (i.e. caratteristiche) che la caratterizzano: proprio come un manutentore analizza lo storico dei guasti della macchina per comprendere le cause e quindi prevenire simili futuri malfunzionamenti, così gli algoritmi di SVM utilizzano i valori noti assunti dalla variabile ed i suoi attributi per modellizzare e quindi prevedere il suo comportamento.
Il modello predittivo si ottiene con le seguenti fasi:
- Stabilire gli attributi con cui si vuole caratterizzare la prestazione (variabili indipendenti);
- Definire le metriche per la misura della prestazione (indicatori, o KPI) (variabili dipendenti);
- A partire dai dati del database aziendale, produrre un dataset con i dati necessari sia per addestrare che per validare il modello SVM.
- Sottoporre a test il modello SVM ottenuto.
Nel caso in esame, la metrica scelta per la misura della prestazione è il tempo ciclo complessivamente impiegato per svolgere l’attività: è dato dalla somma dei tempi di spostamento per recarsi – conclusa la precedente attività – presso il luogo in cui deve erogare il servizio, e di esecuzione dell’intervento. Per l’addestramento del modello, dopo un attento confronto con OM e direzione aziendale abbiamo deciso di usare la mediana dei tempi ciclo per caratterizzare la prestazione individuale di riferimento. Questo parametro è stato calcolato per ogni operatore, su un numero consistente di attività della stessa tipologia, stesso genere, stessa accessibilità al contatore e stesso esito. Sono quindi state selezionate le lavorazioni effettuate in un determinato periodo temporale, ed abbiamo estratto i dati su cui poi è stata calcolata la statistica in oggetto. Il risultante set di dati (circa 1200 record) è stato poi suddiviso in due parti, uno per l’addestramento ed uno per la validazione.
La scelta e composizione del primo (pari al 75% del totale) deve essere particolarmente accorta perché è uno dei fattori determinanti la sua capacità di generalizzazione – cioè la capacità di fornire una risposta corretta a nuovi dati di input – e per questo deve essere quanto più possibile rappresentativo delle prestazioni di riferimento che cerchiamo di ottenere con il modello SVM. L’altro fattore determinante è la scelta della combinazione ottimale dei parametri caratterizzanti il modello (validazione), che viene fatta valutando il modello associato ad ogni combinazione di parametri sulla seconda parte del set di dati: quando l’errore che contraddistingue la predizione dei dati per la validazione raggiunge un minimo, la combinazione di parametri corrispondente è quella ottimale. Infine, con la fase di test si valuta la capacità predittiva del modello su nuovi dati di input. Nella tabella 1 si sintetizzano gli attributi impiegati per l’addestramento del modello, e che sulla base della esperienza del settore caratterizzano la prestazione.
Risultati
I risultati della fase di test sono illustrati in Tabella 2. Prendendo a riferimento il set di dati utilizzato per effettuare l’addestramento e validazione del modello (ovvero il campione di valori di tempo ciclo di riferimento) e definendo l’errore percentuale dei valori predetti come il rapporto della differenza tra il target predetto e quello effettivo rispetto a quest’ultimo, si può valutare oggettivamente la bontà del modello per determinati valori di soglia dell’errore di predizione: si può notare come per un valore di soglia pari al 20%, ovvero se si accettassero per buoni tutti quei valori predetti che si differenziano meno del 20% dal valore effettivo (valori predetti entro soglia) e non buoni gli altri (valori predetti fuori soglia), approssimativamente un valore su dieci di quelli predetti con il modello SVM sarebbe da considerare un errato benchmark della prestazione; se invece decidessimo di tollerare una soglia del 30%, solo meno del 4% dei valori predetti sarebbe da considerare sbagliato.
Conclusioni
L’applicazione in oggetto si è rivelata estremamente semplice ed efficace per lo sviluppo di modelli predittivi di tipo black-box, anche a partire da dati “sporchi”, che possono essere rapidamente estratti ed elaborati per caratterizzare la prestazione degli operatori di campo, per interventi manutentivi con elevata varibilità nei tempi e nelle caratteristiche esecutive. Il modello consente di intercettare in modo adeguato (ad esempio, con circa un errore del 10%) le anomalie di prestazione rilevate (se è tollerabile una confidenza del 20%). Complessivamente, la bontà del modello deve essere giudicata in base al tipo di applicazione che se ne intende fare. Una soglia di accettabilità del 20% o del 30% si può ritenere ammissibile per individuare prestazioni anomale a livello complessivo di commessa, per correggere il tiro con il committente nei successivi contratti o lotti di lavorazione. Per utilizzi più spinti, è certamente consigliato potenziare la fase di addestramento.
Un modello più “addestrato” può anche facilitare l’identificazione, sempre ex post, di esecuzioni non conformi. Un sistema di questo tipo può quindi facilitare i supervisori nel controllo quotidiano o settimanale delle prestazioni di commmessa, e nel controllo delle prestazioni individuali della forza di campo, senza necessità di modelli analitici o calcoli complessi. Le tecniche SVM possono gestire facilmente dati eterogenei e multidimensionali, senza che sia necessario conoscere o discriminare il modo in cui il processo viene effettivamente condotto. Questo è particolarmente indicato per implementazioni in sistemi in cui vi è una elevata varietà e dinamicità delle specifiche di erogazione dei servizi. Infine, il modello può essere impiegato per supportare la schedulazione dinamica delle attività.
Cosimo Barbieri, Ricercatore, IBIS LAB, Scuola di Ingegneria dell’Università di Firenze
Mario Rapaccini, Prof. Associato, Gestione dell’Innovazione, Scuola di Ingegneria dell’Università di Firenze