L’era dell’Industria 4.0 ha portato un cambiamento radicale nell’automazione industriale, sottolineando l’importanza di tecnologie avanzate quali IoT, Intelligenza Artificiale e analisi big data. Questi strumenti hanno trasformato i processi produttivi, rendendoli più efficienti e adattabili, ma hanno anche evidenziato la necessità di sviluppare metodi più avanzati per le stime dei costi, fondamentali per mantenere la competitività sul mercato.
In questo contesto, il presente caso di studio esplora l’implementazione di un decision support system (DSS) avanzato da Barbagli, sviluppato in collaborazione con Smartoperations e Quid Informatica, che mira a ottimizzare le operazioni e migliorare l’efficienza nella gestione delle offerte commerciali e partecipazione a bandi di gara.
Il caso aziendale: un Dss per Barbagli
La quarta rivoluzione industriale ha integrato tecnologie di automazione che hanno rivoluzionato i sistemi di produzione, introducendo soluzioni più intelligenti e adattabili alle dinamiche di un mercato in rapido cambiamento. Nonostante i vantaggi, è diventato evidente che i metodi tradizionali di stima dei costi, basati su dati storici, non sono più adeguati.
Barbagli, operante nel settore delle utility, ha risposto a queste sfide con l’introduzione di un DSS basato su tecnologie cloud e intelligenza artificiale. Questo DSS è progettato per fornire stime accurate dei costi operativi e di produzione, aiutando l’azienda a formulare offerte commerciali competitive e partecipare efficacemente a bandi di gara.
Per garantire la precisione del Decision Support System (DSS), è stato essenziale avviare il progetto con una fase intensiva di raccolta dati. Barbagli ha aggregato dati provenienti da molteplici fonti, inclusi sensori IoT distribuiti lungo le linee di produzione, sistemi di gestione interni e dati di mercato esterni riguardanti i costi dei materiali e la domanda di mercato. Il trattamento di questi dati ha incluso fasi di pulizia per eliminare incongruenze o errori e di normalizzazione per uniformare le diverse scale di misura e formati. L’addestramento del modello di machine learning è stato un passo cruciale per garantire la precisione del Decision Support System (DSS) implementato da Barbagli.
La creazione del dataset
Il processo è iniziato con una fase preliminare di pulizia e codifica dei dati storicizzati. Le variabili categoriche all’interno del dataset sono state convertite in numeri interi utilizzando lo strumento OrdinalEncoder della libreria scikit-learn, mentre gli attributi numerici sono stati ridimensionati tramite lo strumento StandardScaler per avere una media di zero e una deviazione standard di uno.
Il dataset completo è composto da 32 colonne, di cui 22 riguardanti i dati specifici delle singole attività e le altre 10 riguardanti i dati anagrafici del comune in cui è stata svolta l’attività. Sono stati individuati e rimossi valori mancanti e attributi ridondanti, come “Popolazione legale 2011” e “denominazione altra lingua”, per migliorare la qualità dei dati. Inoltre, sono state raggruppate le attività appartenenti alla stessa operazione, sommando i tempi di spostamento ed esecuzione e assegnando un esito complessivo alle operazioni.
I valori anomali sono stati individuati utilizzando il metodo dell’intervallo interquartile (IQR). Per i tempi di esecuzione, sono stati rimossi i valori fuori range, mentre per i tempi di spostamento, sono stati eliminati quelli superiori alle due ore. Questo ha migliorato sensibilmente la qualità dei dati senza compromettere l’integrità del dataset. Le variabili categoriche sono state convertite in numeri interi con l’OrdinalEncoder e tutti gli attributi, esclusi quelli target, sono stati scalati usando lo StandardScaler, per fornire input di maggiore qualità possibile al modello.
La scelta del modello di machine learning
Per determinare quale tra le tipologie di machine learning individuate fosse la più adatta, è stato effettuato un test iniziale su una divisione casuale tra dati di addestramento e dati di verifica. Gli algoritmi candidati includevano Support Vector Regression (SVR), Random Forests (RF), e Extreme Gradient Boosting (XGBoost). XGBoost è stato selezionato per le sue prestazioni superiori, come dimostrato dalle metriche di verifica: Root Mean Squared Error (RMSE), Mean Total Error (MTE), e il coefficiente di determinazione R². La configurazione di XGBoost è stata ottimizzata attraverso tecniche di tuning degli iperparametri, come la ricerca a griglia e la validazione incrociata.
I parametri ottimizzati includevano il numero di alberi (n_estimators), la profondità massima degli alberi (max_depth), il tasso di apprendimento (eta), e la frazione di campioni utilizzati per ogni albero (subsample). La combinazione ottimale includeva n_estimators = 1000, max_depth = 8, eta = 0.01, subsample = 0.8, e colsample_bytree = 0.8. Successivamente, ulteriori ottimizzazioni hanno ridotto il numero di alberi decisionali a 500 e poi a 400 per evitare l’overfitting.
Le modalità di addestramento
Per verificare la capacità di generalizzazione del modello, è stato addestrato solo su una parte delle commesse presenti nello storico e testato su commesse non incluse nel dataset di addestramento. I risultati iniziali hanno suggerito la presenza di overfitting, che è stato mitigato riducendo il numero di alberi decisionali e ottimizzando ulteriormente gli iperparametri. Le performance migliorate del modello sono state confermate attraverso una serie di test su diverse combinazioni di attributi e iperparametri. Per contrastare l’overfitting, è stata svolta un’analisi dell’importanza delle variabili (feature importance).
Attraverso la funzione feature_importances_ della libreria Scikit-learn, è stato determinato un indice di importanza per ciascun attributo. I modelli sono stati addestrati con un numero progressivamente crescente di attributi, da un minimo di 3 a un massimo di 27. I migliori risultati sono stati ottenuti utilizzando sei attributi specifici: ‘NumeroPassaggi’, ‘Esito’, ‘ObbligoPreavviso’, ‘TipoMisura’, ‘Codice Regione’, ‘Zone costiere’.
Il modello finale, ottimizzato con gli iperparametri selezionati e addestrato sulla totalità dello storico disponibile, ha mostrato prestazioni superiori in termini di precisione delle previsioni. L’addestramento finale ha confermato che l’uso dei sei attributi selezionati era la configurazione ottimale per il modello di XGBoost.
In parallelo al processo di addestramento, è stata sviluppata la sezione del DSS dedicata alla previsione dei dati forniti dall’utente a livello di commessa. Il sistema, richiamato tramite console dei comandi, genera una previsione del tempo di spostamento ed esecuzione delle attività di installazione e manutenzione della rete di distribuzione di acqua e gas sulla base dei dati forniti, caricando poi i risultati nel database PostgreSQL aggiornato. Questo approccio ha garantito una stima rapida e affidabile, migliorando l’efficienza operativa e la competitività aziendale.
La configurazione di XGBoost
Il successo dell’applicazione di XGBoost nel DSS dipendeva significativamente dalla qualità della selezione delle caratteristiche (feature selection). Per identificare le variabili più influenti, sono state impiegate tecniche di feature engineering avanzate, che includono analisi di correlazione per scartare le variabili ridondanti e l’uso di tecniche automatizzate come l’analisi dell’importanza delle variabili di XGBoost. Questo approccio ha permesso di ridurre la dimensione del modello migliorando allo stesso tempo la sua capacità di generalizzazione evitando l’overfitting.
La configurazione di XGBoost è stata ottimizzata per il contesto specifico di Barbagli mediante tecniche di tuning degli iperparametri, come la ricerca a griglia e la validazione incrociata. Queste tecniche hanno aiutato a trovare il giusto equilibrio tra la capacità di apprendimento del modello e la sua generalizzazione su nuovi dati, ottimizzando parametri come il tasso di apprendimento, il numero di alberi e la profondità massima degli alberi.
Prima dell’implementazione definitiva, il modello XGBoost è stato sottoposto a una serie di simulazioni per valutare la sua efficacia nel prevedere i costi in scenari variabili. Il modello è stato testato con set di dati storici e confrontato con le stime reali per misurare la sua precisione, utilizzando metriche standard come RMSE (Root Mean Squared Error) e il coefficiente di determinazione R². Questi test hanno fornito la conferma che il modello era affidabile e pronto per essere integrato nel sistema decisionale.
Risultati e confronto con altri DSS
L’implementazione di XGBoost all’interno del DSS ha dimostrato un miglioramento significativo nella precisione delle stime dei costi. Il feedback raccolto dagli utenti finali del DSS ha evidenziato una significativa facilitazione nel processo decisionale, con una particolare apprezzamento per l’interfaccia utente intuitiva che permetteva un accesso facile e veloce alle stime di costi. La trasparenza e la comprensibilità delle stime hanno aumentato la fiducia degli utenti nel sistema, promuovendo un’adozione più ampia all’interno dell’organizzazione.
Un confronto con altri sistemi di supporto decisionale che utilizzano diversi algoritmi di machine learning ha dimostrato la superiorità del DSS di Barbagli S.r.l. Questi confronti hanno fornito dati empirici che supportano l’efficacia di XGBoost rispetto ad altri algoritmi, dimostrando come le stime che realizza sono più accurate e affidabili.
Approfondendo le variabili che maggiormente influenzano le stime dei costi, è stato possibile offrire alle aziende una comprensione dettagliata di come diversi fattori esterni e interni possano influenzare la formulazione delle offerte.
Conclusioni e prospettive future
Questo studio ha evidenziato come l’integrazione di XGBoost in un sistema di supporto decisionale possa migliorare significativamente le stime dei costi, dimostrando essere un approccio efficace nel contesto dell’Industria 4.0. Questo non solo sottolinea il successo dell’approccio, ma promuove anche un cambio di paradigma verso un ambiente aziendale più informato e guidato dai dati.
Le implicazioni di questo studio sono vaste, suggerendo che l’adozione di sistemi di supporto decisionale avanzati può migliorare non solo le stime dei costi ma anche l’agilità e la reattività delle aziende alle condizioni di mercato in continua evoluzione. Ulteriori ricerche potrebbero esplorare l’integrazione di XGBoost con altre tecnologie emergenti come l’intelligenza artificiale distribuita e l’apprendimento federato, per gestire dati ancora più vasti e variegati, mantenendo le aziende all’avanguardia nell’era digitale. Questi sviluppi promettono di trasformare ulteriormente i sistemi decisionali aziendali, portando a un ambiente industriale più informato e ottimizzato.