Strumenti tecnologici e piattaforme, linguaggi di programmazione e tools di vario genere utili dal data mining fino alla data visualization (o meglio, per ciascuna delle fasi del processo tipico di Data Science), i tools rappresentano elementi importanti nel campo della Data Science.

All’interno di un team di Data Scientist se ne usano diversi, ciascuno per le proprie “caratteristica funzionali” e utilità rispetto a progetti, esigenze ed obiettivi.

La comunità Open Source contribuisce ormai da anni al Data Science Toolkit (la cassetta degli attrezzi della Data Science), percorso che ha portato importanti progressi nel campo, stimolando anche l’industria IT dedicata a questo specifico settore (industria che per altro, molto spesso, contribuisce all’ecosistema open source in maniera attiva mettendo a disposizione risorse e competenze)

Oggi il mercato dell’offerta mette sul piatto un’ampissima varietà di strumenti, dai linguaggi di programmazione ai sistemi di visualizzazione dei dati, passando per quelli dedicati alla data preparation, alla data exploration, al data mining

Diamo un’occhiata ad alcuni dei linguaggi di programmazione e dei tools che, solitamente, non mancano all’interno di un team di Data Scientist.

 

Linguaggi di programmazione

Un linguaggio di programmazione è un “codice formale” che comprende un insieme di istruzioni che producono vari tipi di output. Nella Data Science questi linguaggi sono indispensabili per poter implementare algoritmi e consentire alle “macchine” (ai computer) di svolgere determinate operazioni.

Ecco quali sono i linguaggi di programmazione oggi più utilizzati dai Data Scientist:

 

  • Python: è uno dei linguaggi più popolari della Data Science, uno dei più utilizzati a livello mondiale. È un linguaggio open source e di facile utilizzo che esiste dal 1991, dinamico, generico e orientato a oggetti. Supporta anche più paradigmi, dalla programmazione funzionale a quella strutturata e procedurale.

 

  • R: è un linguaggio di programmazione di alto livello tipicamente utilizzato in ambito statistico (il linguaggio ed i software all’interno dei quali è utilizzato vengono generalmente sfruttati per l’elaborazione statistica e la visualizzazione dei dati in forma grafica). R può però essere utile per esplorare set di dati e condurre analisi ad hoc, dato che “gode” di moltissime librerie utili per la scienza dei dati.

 

  • Scala: è un linguaggio giovane, nato nel 2003. Scala supporta la programmazione funzionale staticamente tipata, nonché l’elaborazione simultanea e sincronizzata. Le sue applicazioni spaziano dalla programmazione web all’apprendimento automatico (machine learning), ma è anche un linguaggio scalabile ed efficace per la gestione dei Big Data.

 

  •  Java: linguaggio di programmazione orientato agli oggetti. Oggi per i Data Scientist sono disponibili centinaia di librerie Java che coprono ogni tipo di problema che un programmatore può incontrare. Si tratta di un linguaggio versatile con il quale si è in grado di gestire anche più attività contemporaneamente (infatti è utilizzato in modo elastico per diversi ambiti, dall’elettronica alle applicazioni desktop e web). I framework di elaborazione più diffusi come Hadoop vengono eseguiti su Java che rappresenta uno di quei linguaggi per la Data Science che può rapidamente e facilmente scalare per applicazioni di grandi dimensioni.

 

  • JavaScript: linguaggio di scripting che nasce per la gestione del contenuto dinamico delle pagine web, e questo rimane tutt’oggi uno dei suoi principali utilizzi. Con la nascita di ambienti di sviluppo server-side (come NodeJs e Deno) la sua diffusione in ambito Data Science è andata crescendo, ne è sintomo (e causa) la proliferazione di librerie sia computazionali, sia grafiche, che ad oggi permettono le più svariate operazioni in ambito analytics. Esistono anche alcune “varianti” per la creazione di dashboard e la visualizzazione dei dati.

 

  • C e C++: sono linguaggi di programmazione meno recenti ma stanno dando un ottimo contributo ad alcune fasi della Data Science, soprattutto per la velocità di esecuzione molto rapida. Quando si tratta di sviluppare applicazioni per Big Data, la velocità di esecuzione è una delle caratteristiche più importanti: con funzionalità scritte in C/C++, è possibile elaborare set di dati di grandi dimensioni in tempi molto stretti. Non solo, sia C, sia C++ sono anche molto efficienti per lo sviluppo di nuove librerie, che possono essere utilizzate anche con diversi linguaggi (e poiché le applicazioni di Data Science dipendono molto dalle nuove librerie di programmazione, questi possono svolgere un ruolo importante).

 

  • Julia: Julia è un linguaggio di programmazione sviluppato appositamente per il calcolo numerico ad alte prestazioni (può per esempio implementare rapidamente concetti matematici come l’algebra lineare). Essendo un linguaggio ad alto livello si presta all’implementazione rapida di concetti matematici anche molto complessi riuscendo comunque a mantenere alte prestazioni computazionali. Inoltre può essere utilizzato anche per la programmazione di funzionalità di back-end e di front-end.

 

  • MATLAB: è un linguaggio definito “di alto livello” abbinato a un ambiente interattivo per il calcolo numerico, la programmazione e la visualizzazione (un ambiente per il calcolo numerico e l’analisi statistica scritto in C). Si tratta di un linguaggio utilizzato nell’elaborazione tecnica ideale per la grafica, la matematica e la programmazione. L’ambiente interattivo consente di analizzare i dati, creare modelli e sviluppare algoritmi.

 

  • SQL: è il famoso acronimo di Structured Query Language, il popolare linguaggio per la gestione dei dati. Sebbene non venga utilizzata esclusivamente per le operazioni di Data Science, la conoscenza delle tabelle e delle query SQL è fondamentale per i Data Scientist in tutte le fasi, soprattutto quando è necessario occuparsi dei sistemi di gestione dei database (è infatti un linguaggio molto valido e specifico per archiviare, manipolare e recuperare i dati nei database relazionali). Sebbene l’SQL tradizionale possa essere efficacemente utilizzato per gestire una grande quantità di dati strutturati, i Data Scientisti hanno bisogno anche di strumenti come database NoSQL (Not Only SQL) per gestire i dati non strutturati (i database NoSQL memorizzano dati non strutturati senza uno schema “rigido” come nel caso SQL e diventano quindi una risorsa preziosa per l’archiviazione e l’analisi dei Big Data).

 

Alcuni strumenti utili

Entrando un po’ più in dettaglio sugli strumenti, software e piattaforme in particolare, ecco che cosa può servire ad un team di Data Scientist (anche se l’elenco può davvero essere lunghissimo, sono moltissimi gli strumenti oggi a disposizione della Data Science).

 

  • Apache Hadoop: è un software open source (basato su Java) che sfrutta l’elaborazione parallela tra cluster di nodi, facilitando così la risoluzione di problemi computazionali complessi e attività ad alta intensità di dati. Da un punto di vista tecnico, Hadoop segue il “map/reduce”: lo fa suddividendo file di grandi dimensioni in blocchi e inviandoli ai nodi con le istruzioni. Detto in parole più semplici, è un framework open source che crea modelli di programmazione semplici e distribuisce un’ampia elaborazione di set di dati su migliaia di cluster di computer.

 

  • Apache Spark: è un potente motore di analisi ed è uno degli strumenti di Data Science più utilizzati. È noto per offrire un cluster computing velocissimo. Spark accede a varie origini dati come Cassandra, HDFS, HBase e S3. Può anche gestire facilmente set di dati di grandi dimensioni. L’architettura “in-memory” multilivello di Spark consente di interrogare i dati ripetutamente (la capacità di Spark di lavorare in memoria lo rende estremamente veloce per l’elaborazione dei dati e la scrittura su disco) ed è quindi ideale per algoritmi di apprendimento automatico. Spark offre anche funzionalità ad hoc per la pulizia dei dati, la Data Transformation, nonché per la creazione di modelli e la loro valutazione.

 

  • MySQL: il nome è ormai familiare. MySQL gode di una straordinaria popolarità ed è uno dei database open source più utilizzati, ideale per accedere ai dati dai database (è un sistema di gestione di database relazionali open source, ossia un è un RDBMS – Relational Database Management System). Con MySQL gli utenti possono facilmente archiviare e accedere ai dati in modo strutturato.

 

  • TensorFlow: è un framework offerto da Google e si presenta come una libreria sfruttabile per “fare tutto”, anche se per la maggior parte dei casi viene sfruttata per costruire e addestrare modelli, distribuendoli su diverse piattaforme come computer, smartphone e server. Si possono creare modelli statistici, visualizzazioni di dati e accedere ad alcune delle funzionalità più utilizzate per Machine Learning e Deep Learning.

 

  • Dataiku: è una piattaforma di Data Science Collaborativa che copre tutta la filiera dalla creazione di un processo di data exploration alla Data Preparation, allo studio e all’applicazione di modelli di mining descrittivi e predittivi, fino alla Data Visualization mediante la creazione di dashboard. È pensata per team di Data Scientist, data analyst e ingegneri per esplorare, prototipare e costruire modelli e analisi ed alimenta sia l’analisi self-service, sia l’operatività dei modelli di Machine Learning. In parole semplici, è una piattaforma software che aggrega tutti i passaggi e gli strumenti di Big Data necessari per passare dai dati grezzi alle applicazioni pronte per la produzione riducendo i cicli di caricamento, preparazione, test e distribuzione necessari per creare applicazioni basate sui dati. BNova ha scelto Dataiku perché consente di creare e far crescere la cultura Data Driven all’interno delle aziende.

 

  • Tableau: è una piattaforma di analisi end-to-end ed un ottimo strumento di Data Visualization; fornisce una rappresentazione chiara dei dati e può aiutare a prendere decisioni più rapide (ed oggettive, basate sui dati). Lo fa utilizzando cubi di elaborazione analitica online, database cloud, fogli di calcolo e database relazionali. Con Tableau si possono utilizzare i dati senza limiti legati al dispositivo, tramite un browser, un computer fisso o un dispositivo mobile, oppure integrandoli in qualsiasi applicazione. BNova ha scelto Tableau per la Visual Analytics a beneficio di tutte le figure aziendali. È infatti una piattaforma che non richiede competenze di programmazione, permette a tutti di esplorare e analizzare grandi volumi di dati in modo semplice ed intuitivo.

 

  • Vertica: il database NoSQL analitico colonnare progettato per gestire grandi volumi di dati in rapida crescita e fornire alte prestazioni, notevolmente migliori rispetto ai tradizionali sistemi relazionali. Inoltre è in grado di offrire alta disponibilità e scalabilità, e supporta distribuzioni su più piattaforme cloud ( AWS , Google Cloud , Azure), in locale e in modo nativo su Hadoop. BNova ha scelto Vertica sia per le suddette caratteristiche, sia perché è in continua evoluzione. Recentemente, infatti, Vertica si è affacciato al mondo della Data Science e delle Advanced Analytics grazie a VerticaPy, una libreria Python che espone funzionalità scikit-like per la conduzione di progetti di Data Science direttamente all’interno del database Vertica.

 

 

Al di là della “cassetta degli attrezzi” è bene ricordare che la Data Science non è mai una attività fine a sé stessa ma deve essere inserita in una strategia di business di breve e medio periodo.

 

Vorrei sfruttare al meglio i tuoi dati, ma non sai da dove cominciare?

Scopri il nostro Big Data 4 Business Toolkit

 

New call-to-action

Approfondimenti da BNext:

denodo: quando la Data Virtualization fa la differenza

La data virtualization è trasversale e può fare la differenza in quelle situazioni in cui i dati sono su diverse fonti da integrare

Le analisi di coorte integrate in Niky, la piattaforma di Customer Analytics di BNova

Nelle analisi di coorte integrate in Niky puoi osservare l’evoluzione nel tempo delle coorti acquisendo informazioni di valore per il business

Data Virtualization: a chi porta i maggiori benefici?

I vantaggi e benefici che la Data Virtualization porta in azienda riguardano tutti i data consumer, ciascuno in modo diverso. Vediamo per le diverse funzioni aziendali, quali sono i benefici più evidenti.

Analisi di coorte: esempi reali ed applicazioni

Tra gli esempi più significativi di applicazione delle analisi di coorte ci sono quelle specifiche relative ai clienti, prima fra tutte quella che consente di “mappare” il customer journey partendo dall’analisi dei comportamenti delle persone

Analisi di coorte: cos’è e perché è importante per capire il comportamento degli utenti

L’analisi di coorte è una tipologia di analisi dei dati che si concentra sulle attività ed il comportamento di una specifica coorte, ossia un gruppo di persone che condividono una o più caratteristiche comuni in un dato periodo di tempo.

Data Virtualization: le tecniche per mettere a fuoco i tuoi dati

Cos’è la data virtualization? Quali vantaggi porta? Si tratta di un approccio ai dati completamente diverso rispetto a quello tradizionale e permette di superare molte delle limitazioni e problematiche ad oggi presenti. Scopri di più

Data Science Tools: la cassetta degli attrezzi dei team di Data Scientist

Strumenti tecnologici, piattaforme, linguaggi di programmazione, tools di vario genere rappresentano elementi importanti, gli “attrezzi del mestiere” per i Data Scientist. Ecco alcuni dei linguaggi e dei tools che solitamente non mancano all’interno di un team di Data Scientist.

Data Scientist, chi sono e cosa fanno per aiutare le aziende

Oggi i dati rappresentano uno degli asset più critici ed importanti per un’azienda (e non solo), tant’è che ormai si parla dei dati come del nuovo petrolio nell’economia dell’informazione e della conoscenza. Chi lavora sui dati e con i dati gode di un grande vantaggio. Ma chi sono davvero i Data Scientist e cosa fanno concretamente per aiutare le aziende?

Dataiku: i consigli per scegliere il giusto progetto di Data Science

Con decine di potenziali use case ma risorse limitate, è importante dare priorità ai progetti che hanno sia un alto valore di business che un’alta probabilità di successo. I consigli di Dataiku

Le 6 (+1) fasi del processo tipico di Data Science

La Data Science è un campo di studi interdisciplinare il cui obiettivo finale è estrarre informazione e conoscenza utili da dati strutturati o non strutturati. Non esiste un framework unico e universalmente condivido per definire i processi di Data Science, tuttavia, dal punto di vista tecnico lo standard KDD è quello a cui ci si ispira maggiormente, perché indica l’intero processo di ricerca di nuova conoscenza dai dati.