Il volume e la complessità dei dati aziendali continua a crescere. E con loro cresce l’importanza che rivestono nel processo decisionale e nella pianificazione strategica. Non stupisce dunque che le organizzazioni di business stiano aumentando gli investimenti in persone, soluzioni e tecnologie legate alla data science.
Nell’indagine “Data and Analytics Leadership Executive Survey”, Wavestone ha intervistato i responsabili dei dati di 116 organizzazioni Fortune 1000, sondando lo stato dell’arte nelle loro organizzazioni e le loro opinioni sull’evoluzione verso un’azienda data-driven: l’87,8% dei chief data officer e di altri dirigenti IT e aziendali ha dichiarato che gli investimenti in iniziative basate sull’analisi dei dati, come i programmi di data science, sono aumentati nel 2022. In prospettiva, l’83,9% prevede ulteriori aumenti quest’anno, nonostante le attuali condizioni economiche.
Per costruire il portfolio di tecnologie abilitanti e raggiungere gli obiettivi di analisi, i team di data science oggi possono scegliere tra un’ampia selezione di strumenti e piattaforme. Wavestone ha analizzato 18 tra i principali strumenti utili ad affrontare il processo di analisi. Eccoli.
Quando la quantità incontra la velocità: Apache Spark
Apache Spark è un motore open source per l’elaborazione e l’analisi dei dati, in grado di gestire grandi quantità di dati, fino a diversi petabyte. La capacità di Spark di elaborare rapidamente i dati ha alimentato una crescita significativa nell’uso della piattaforma sin dalla sua creazione nel 2009, contribuendo a rendere il progetto Spark una delle più grandi comunità open source tra le tecnologie per i big data.
Grazie alla sua velocità, Spark è particolarmente adatto alle applicazioni di intelligenza continua alimentate dall’elaborazione quasi in tempo reale di dati in streaming. Tuttavia, in quanto motore di elaborazione distribuita di uso generale, Spark è altrettanto adatto per l’estrazione, la trasformazione e il caricamento di dati e per altri lavori SQL batch.
D3.js, uno strumento dinamico e flessibile
Un altro strumento open source, D3.js è una libreria JavaScript per la creazione di visualizzazioni di dati personalizzate in un browser web. Comunemente nota come D3, acronimo di Data-Driven Documents, utilizza standard web come Html, Scalable Vector Graphics e CSS, invece di un proprio vocabolario grafico. Gli sviluppatori di D3 lo descrivono come uno strumento dinamico e flessibile che richiede uno sforzo minimo per generare rappresentazioni visive dei dati.
D3.js consente ai progettisti di visualizzazioni di legare i dati ai documenti tramite il Document Object Model e di utilizzare i metodi di manipolazione del Dom per effettuare trasformazioni dei documenti basate sui dati. Rilasciato per la prima volta nel 2011, può essere utilizzato per progettare vari tipi di visualizzazioni di dati e supporta funzionalità come l’interazione, l’animazione, l’annotazione e l’analisi quantitativa.
Ibm Spss, una piattaforma potenziata dal machine learning
Ibm Spss è una famiglia di software per la gestione e l’analisi di dati statistici complessi. Comprende due prodotti principali: Spss Statistics, uno strumento per l’analisi statistica, la visualizzazione dei dati e la creazione di report, e Spss Modeler, una piattaforma di data science e analisi predittiva con un’interfaccia utente drag-and-drop e funzionalità di machine learning.
Spss Statistics copre tutte le fasi del processo di analisi, dalla pianificazione all’implementazione del modello, e consente agli utenti di chiarire le relazioni tra le variabili, creare cluster di punti di dati, identificare le tendenze e fare previsioni, oltre ad altre funzionalità. Può accedere ai tipi di dati strutturati più comuni e offre una combinazione di un’interfaccia utente guidata da menu, una sintassi di comandi propria e la possibilità di integrare estensioni R e Python, oltre a funzioni per automatizzare le procedure e legami di import-export con Spss Modeler.
Aumentare la velocità di esecuzione con Julia
Julia è un linguaggio di programmazione open source utilizzato per il calcolo numerico, l’apprendimento automatico e altri tipi di applicazioni di data science. Julia combina la comodità di un linguaggio dinamico di alto livello con prestazioni paragonabili a quelle di linguaggi staticamente tipizzati, come C e Java. Gli utenti non devono definire i tipi di dati nei programmi, ma un’opzione consente loro di farlo. Anche l’uso di un approccio a dispatch multiplo in fase di esecuzione contribuisce ad aumentare la velocità di esecuzione.
Jupyter Notebook abilita la collaborazione interattiva
Applicazione web open source, Jupyter Notebook consente la collaborazione interattiva tra data scientist, data engineer, matematici, ricercatori e altri utenti. Si tratta di uno strumento di notebook computazionale che può essere utilizzato per creare, modificare e condividere codice, oltre a testo esplicativo, immagini e altre informazioni. Ad esempio, gli utenti di Jupyter possono aggiungere codice software, calcoli, commenti, visualizzazioni di dati e rappresentazioni multimediali dei risultati di calcolo in un unico documento, noto come notebook, che può essere condiviso e rivisto dai colleghi.
Di conseguenza, secondo la documentazione di Jupyter Notebook, i notebook “possono fungere da record computazionale completo” delle sessioni interattive tra i membri dei team di data science. I documenti del notebook sono file JSON con funzionalità di controllo delle versioni. Inoltre, un servizio Notebook Viewer permette di renderli come pagine web statiche per la visualizzazione da parte di utenti che non hanno Jupyter installato sui loro sistemi.
Keras accelera l’implementazione di modelli di apprendimento automatico
Keras è un’interfaccia di programmazione che consente agli scienziati dei dati di accedere e utilizzare più facilmente la piattaforma di apprendimento automatico TensorFlow. Si tratta di un’Api e di un framework open source per l’apprendimento profondo scritto in Python che viene eseguito sopra TensorFlow ed è ora integrato in tale piattaforma. In precedenza Keras supportava diversi back-end, ma è stato legato esclusivamente a TensorFlow a partire dalla versione 2.4.0 rilasciata nel giugno 2020.
Come API di alto livello, Keras è stato progettato per favorire una sperimentazione facile e veloce che richiede meno codice rispetto ad altre opzioni di deep learning. L’obiettivo è accelerare l’implementazione di modelli di apprendimento automatico, in particolare di reti neurali di deep learning, attraverso un processo di sviluppo ad “alta velocità di iterazione”, come si legge nella documentazione di Keras.
Il potenziale di Matlab per integrare le tecnologie emergenti
Matlab è un linguaggio di programmazione di alto livello e un ambiente di analisi per il calcolo numerico, la modellazione matematica e la visualizzazione dei dati. Viene utilizzato principalmente da ingegneri e scienziati tradizionali per analizzare dati, progettare algoritmi e sviluppare sistemi embedded per comunicazioni wireless, controllo industriale, elaborazione dei segnali e altre applicazioni, spesso in combinazione con lo strumento Simulink, che offre funzionalità di progettazione e simulazione basate su modelli.
Sebbene Matlab non sia così ampiamente utilizzato nelle applicazioni di data science come linguaggi quali Python, R e Julia, supporta l’apprendimento automatico e il deep learning, la modellazione predittiva, l’analisi dei big data, la computer vision e altre attività svolte dagli scienziati dei dati.
La struttura gerarchica di Matplotlib
Matplotlib è una libreria open source per la creazione di grafici in Python, utilizzata per leggere, importare e visualizzare i dati nelle applicazioni di analisi. I data scientist e altri utenti possono creare visualizzazioni statiche, animate e interattive dei dati con Matplotlib, utilizzandola negli script Python, nelle shell Python e IPython, in Jupyter Notebook, nei server delle applicazioni web e in vari toolkit GUI.
L’ampia base di codice della libreria può essere difficile da padroneggiare, ma è organizzata in una struttura gerarchica progettata per consentire agli utenti di costruire visualizzazioni principalmente con comandi di alto livello.
L’approccio multidimensionale di NumPy
NumPy, abbreviazione di Numerical Python, è una libreria open source di Python ampiamente utilizzata nelle applicazioni di calcolo scientifico, ingegneria, scienza dei dati e apprendimento automatico. La libreria è composta da oggetti array multidimensionali e da routine per l’elaborazione di tali array per consentire varie funzioni matematiche e logiche. Supporta anche l’algebra lineare, la generazione di numeri casuali e altre operazioni.
Uno dei componenti principali di NumPy è l’array N-dimensionale, o ndarray, che rappresenta un insieme di elementi dello stesso tipo e della stessa dimensione. Un oggetto di tipo dati associato descrive il formato degli elementi di dati in un array. Gli stessi dati possono essere condivisi da più ndarray e le modifiche apportate a uno di essi possono essere visualizzate in un altro.
La programmazione fatta semplice: Python
Python è il linguaggio di programmazione più utilizzato per la data science e l’apprendimento automatico e uno dei linguaggi più popolari in generale. Il sito web del progetto open source Python lo descrive come “un linguaggio di programmazione interpretato, orientato agli oggetti e di alto livello con una semantica dinamica”, oltre a strutture di dati integrate e funzionalità di tipizzazione e binding dinamici. La semplicità della sintassi di Python consente di imparare facilmente il linguaggio e la leggibilità riduce i costi di manutenzione dei programmi.
Il linguaggio multifunzionale può essere utilizzato per un’ampia gamma di attività, tra cui l’analisi dei dati, la visualizzazione dei dati, l’intelligenza artificiale, l’elaborazione del linguaggio naturale e l’automazione dei processi robotici. Gli sviluppatori possono creare applicazioni web, mobili e desktop in Python.
Python è utilizzato non solo da data scientist, programmatori e ingegneri di rete, ma anche da lavoratori al di fuori delle discipline informatiche, dai contabili ai matematici e agli scienziati, che spesso sono attratti dalla sua facilità di utilizzo.
Alzare l’asticella di Python con Pandas
Costruita sulla base di NumPy, Pandas presenta due strutture di dati principali: l’array monodimensionale Series e il DataFrame, una struttura bidimensionale per la manipolazione dei dati con indicizzazione integrata. Entrambe possono accettare dati da array NumPy e altri input; un DataFrame può anche incorporare più oggetti Series.
Gli sviluppatori di Pandas affermano che il loro obiettivo è quello di renderlo “l’elemento fondamentale di alto livello per l’analisi dei dati pratica e reale in Python“. I principali percorsi di codice di pandas sono scritti in C o nel superset Cython di Python per ottimizzarne le prestazioni, e la libreria può essere utilizzata con vari tipi di dati analitici e statistici, tra cui tabelle, serie temporali e matrici etichettate.
PyTorch garantisce una sperimentazione rapida e flessibile
Framework open source utilizzato per costruire e addestrare modelli di deep learning basati su reti neurali, PyTorch è apprezzato dai suoi sostenitori per il supporto di una sperimentazione rapida e flessibile e per la transizione senza soluzione di continuità alla distribuzione in produzione. La libreria Python è stata progettata per essere più facile da usare rispetto a Torch, un framework di apprendimento automatico precursore basato sul linguaggio di programmazione Lua. Secondo i suoi creatori, PyTorch offre anche maggiore flessibilità e velocità rispetto a Torch.
Recuperare, pulire, analizzare e presentare i dati con R
Il linguaggio di programmazione R è un ambiente open source progettato per applicazioni di calcolo e grafica statistica, nonché per la manipolazione, l’analisi e la visualizzazione dei dati. Molti data scientist, ricercatori accademici e statistici utilizzano R per recuperare, pulire, analizzare e presentare i dati, rendendolo uno dei linguaggi più popolari per la scienza dei dati e l’analisi avanzata.
La suite multifunzione di SAS
SAS è una suite di software integrata per l’analisi statistica, l’analisi avanzata, la BI e la gestione dei dati. Sviluppata e venduta dal fornitore di software SAS Institute. la piattaforma consente agli utenti di integrare, pulire, preparare e manipolare i dati, per poi analizzarli con diverse tecniche statistiche e di scienza dei dati. SAS può essere utilizzato per diverse attività, dalla BI di base e la visualizzazione dei dati alla gestione del rischio, l’analisi operativa, il data mining, l’analisi predittiva e l’apprendimento automatico.
Gli algoritmi, i comandi e le classi di alto livello di SciPy
SciPy è un’altra libreria Python open source che supporta gli usi del calcolo scientifico. Abbreviazione di Scientific Python, presenta un insieme di algoritmi matematici e di comandi e classi di alto livello per la manipolazione e la visualizzazione dei dati. Include più di una dozzina di sottopacchetti che contengono algoritmi e utilità per funzioni come l’ottimizzazione dei dati, l’integrazione e l’interpolazione, nonché equazioni algebriche, equazioni differenziali, elaborazione di immagini e statistiche.
La libreria SciPy è costruita sopra NumPy e può operare su array NumPy. Ma SciPy offre ulteriori strumenti per il calcolo degli array e fornisce strutture di dati specializzate, tra cui matrici rade e alberi k-dimensionali, che vanno oltre le capacità di NumPy.
Così Scikit-learn aiuta a rappresentare i dati
Scikit-learn è una libreria open source per l’apprendimento automatico per Python, basata sulle librerie di calcolo scientifico SciPy e NumPy e su Matplotlib per la rappresentazione dei dati. Supporta l’apprendimento automatico sia supervisionato che non supervisionato e include numerosi algoritmi e modelli, chiamati stimatori nel linguaggio di scikit-learn. Inoltre, fornisce funzionalità per l’adattamento, la selezione e la valutazione dei modelli, nonché per la preelaborazione e la trasformazione dei dati.
Scikit-learn ha però alcuni limiti dovuti a vincoli di progettazione. Per esempio, non supporta l’apprendimento profondo, l’apprendimento per rinforzo o le Gpu e il sito web della libreria dice che i suoi sviluppatori “considerano solo algoritmi ben consolidati da includere”.
TensorFlow, la piattaforma open source di Google
TensorFlow è una piattaforma open source per l’apprendimento automatico sviluppata da Google, particolarmente apprezzata per l’implementazione di reti neurali di deep learning. La piattaforma accetta input sotto forma di tensori, simili ad array multidimensionali NumPy, e utilizza una struttura a grafo per far fluire i dati attraverso un elenco di operazioni di calcolo specificate dagli sviluppatori. Offre anche un ambiente di programmazione con esecuzione immediata che esegue le operazioni singolarmente senza grafi, il che offre una maggiore flessibilità per la ricerca e il debug dei modelli di apprendimento automatico.
La piattaforma include anche un modulo TensorFlow Extended per l’implementazione end-to-end di pipeline di apprendimento automatico di produzione, oltre a un modulo TensorFlow Lite per dispositivi mobili e IoT.
Weka, la soluzione per il data mining
Weka è un workbench open source che fornisce una raccolta di algoritmi di apprendimento automatico da utilizzare nelle attività di data mining. Gli algoritmi di Weka, chiamati classificatori, possono essere applicati direttamente agli insiemi di dati senza alcuna programmazione tramite una Gui o un’interfaccia a riga di comando che offre funzionalità aggiuntive; possono anche essere implementati tramite un’API Java.
Il workbench può essere utilizzato per applicazioni di classificazione, clustering, regressione e association rule mining e comprende anche una serie di strumenti di preelaborazione e visualizzazione dei dati. Inoltre, Weka supporta l’integrazione con R, Python, Spark e altre librerie come scikit-learn.