Combina i linguaggi della scienza dei dati quali SAS, Python, R e SQL utilizzando WPS Analytics

Blog

Megaphone

Inserito

03 mag 2018

Categoria

Scienza dei dati

Condividi

Di: Borja Comendeiro, scienziato dei dati senior presso World Programming, Regno Unito

Si discute spesso su quale linguaggio di programmazione dei dati uno scienziato dei dati debba apprendere. Il linguaggio SAS, R, Python, SQL, Julia e così via, ognuno ha i suoi sostenitori e detrattori. È sicuro presupporre che il migliore linguaggio sia quello che ti aiuta a massimizzare la tua produttività e raggiungere i tuoi obiettivi.

Le organizzazioni hanno spesso tutti i tipi di usi e competenze in linguaggi di programmazione; aree diverse di un'organizzazione possono preferire linguaggi diversi, e all'interno di una singola area ci possono essere ragioni per usare un linguaggio piuttosto che un altro per compiti diversi.

Ogni linguaggio ha i suoi punti di forza:

Structured Query Language (SQL)
SQL è il linguaggio più conosciuto per l'interazione con i database. Semplice ma potente, è spesso il punto di partenza per le persone che imparano ad analizzare i dati. Per le attività che comportano l'estrazione, l'ordinamento, il riepilogo dei dati, può essere uno strumento perfettamente accettabile. Per le attività che coinvolgono origini dati eterogenee, più fasi o programmi procedurali, diventa rapidamente ingombrante o poco pratico.

Linguaggio SAS
Il linguaggio SAS semplifica l'esecuzione di semplici attività di elaborazione dati e analisi avanzate, e l'elaborazione di grandi volumi di dati con minime risorse di calcolo e righe di codice. Il linguaggio SAS offre una preparazione dei dati scalabile unita a solidi metodi statistici. Generalmente non vi è nessuna limitazione all'adattamento dei dati alla memoria. I fornitori commerciali di compilatori del linguaggio SAS offrono elevati livelli di supporto per i dati critici di raccolte statistiche e ambienti analitici.

Linguaggio R
Il linguaggio R offre potenti funzionalità di visualizzazione ad hoc e consente agli utenti di eseguire analisi statistiche di nicchia e all'avanguardia. R ha una vasta community di collaboratori open source che aiuta a far crescere sempre di più la gamma di pacchetti statistici, sebbene possa essere difficile navigare nell'ampia serie di raccolte disponibili. Il linguaggio R in genere richiede l'adattamento dei dati alla memoria, il che limita la capacità di R di gestire grandi volumi di dati. Le funzionalità di preparazione dei dati del linguaggio R non sono così convincenti.

Linguaggio Python
Apprezzato dagli studenti, il linguaggio Python è un linguaggio di programmazione più universale rispetto ai linguaggi R o SAS. Esistono alcune raccolte analitiche di Big data popolari scritte in Python, come PySpark e le relative API per molti componenti dell'ecosistema Hadoop e framework Deep Learning, quali Theano e Tensorflow.

Linguaggio Julia
Un'aggiunta più recente al mercato dei linguaggi per i dati, il linguaggio Julia è ben progettato e può avere un'esecuzione efficiente, però gli manca un'ampia base di utenti e l'ecosistema degli altri linguaggi.

Altri linguaggi
I linguaggi qui sopra sono quelli più comunemente associati alla scienza dei dati. È possibile eseguire l'analisi dei dati in un'ampia varietà di linguaggi, alcuni dei quali includono raccolte di grandi dimensioni per le analisi numeriche e statistiche, tra cui Java, C, Fortran, Octave, SPSS e molte altre.

Idealmente, gli scienziati dei dati possono creare programmi che utilizzano lo strumento migliore per ogni aspetto di un'attività di scienza dei dati. Immagina di leggere i dati dal tuo database SQL, eseguire un'analisi della frequenza in un paio di righe utilizzando la procedura della frequenza nel linguaggio SAS e quindi tracciando i risultati tramite ggplot2 in R. Oppure, immagina che i tuoi analisti del linguaggio SAS altamente competenti possano generare flussi di lavoro per la preparazione dei dati che un nuovo assunto con spiccate competenze in Python può usare a proprio vantaggio.

È possibile passare da R a Python fino ad un certo punto usando estensioni come la raccolta rPy2 in Python o il pacchetto rPython in R.

Tuttavia, il passaggio da uno strumento all'altro richiede spesso la serializzazione e la deserializzazione dei dati da uno strumento ad un altro, concatenando programmi in linguaggi diversi utilizzando uno strumento di gestione del flusso di lavoro o generando script di bash o shell complessi che possono diventare difficili da mantenere. L'attività è talmente noiosa e soggetta a errori che raramente viene eseguita oltre che per script end-to-end di grandi dimensioni e complessi.

In questo tipo di situazioni, WPS è l'ideale piattaforma di scienza dei dati integrata, che consente agli scienziati dei dati di utilizzare lo stesso programma per codificare da utente a utente tramite il linguaggio SAS, R, Python, SQL e Java all'interno dello stesso programma e ambiente di sviluppo.

Immaginiamo quindi di disporre di un set di dati di grandi dimensioni contenente informazioni sui clienti in cui uno dei campi è costituito da dati di testo non strutturati. Con WPS, è possibile combinare in un singolo script:

  • SQL per interagire con il database
  • Linguaggio SAS per la preparazione e creazione di rapporti dei dati
  • R per il mining di testo
  • Linguaggio SAS per la costruzione di modelli
  • Python per un'ulteriore costruzione di modelli
Spatial analysis1

L'esempio di costruzione di modelli sopra riportato nel linguaggio SAS predice il guadagno in conto capitale in base all'età, al tipo di relazione, agli anni di istruzione e al livello di reddito, creando modelli separati in base al genere

WPS Analytics: un programma per più linguaggi.

Spatial analysis2.it it

Supponiamo che la maggior parte della cronologia dei clienti risieda in un database relazionale strutturato. Potrebbe essere l'ideale per leggere direttamente i dati e utilizzare la lingua nativa del database, richiamare alcune procedure archiviate che sono state precedentemente codificate o incollare una query che il team DBA ha precedentemente creato. Cosa succede se i dati aggiuntivi si trovano all'interno di un cluster Hadoop? È possibile connettersi ai database per leggere i dati utilizzando il linguaggio SAS, ad esempio nella procedura SQL:

Spatial analysis3

Il linguaggio SAS è ideale per la preparazione dei dati con più funzioni di preparazione dei dati, tra cui importazione, fusione, filtraggio, trasformazione e rimodellazione, imputazione del valore mancante e convalida. Ad esempio, è possibile modificare la struttura del set di dati utilizzando la procedura di trasposizione del linguaggio SAS:

Spatial analysis4Spatial analysis5


Il linguaggio SAS ha funzioni meno facilmente utilizzabili per i dati non strutturati. I linguaggi R e Python possono sia usare a proprio vantaggio i completi framework per condurre analisi del sentiment o analisi tf-idf, e convertire l'output in un formato strutturato per la costruzione di modelli. La procedura R di linguaggio SAS semplifica l'invio di un set di dati a R da cui è possibile ricavare le variabili del sentiment:

Utilizzando un input con utenti e alcuni campi di testo:

utentetesto
utente 1È stata un'esperienza orribile al negozio, personale scortese, servizio clienti scadente, non tornerò mai più
utente 2Servizio decente, anche se lento, nel complesso una buona esperienza
utente 3Sono rimasto molto soddisfatto del loro servizio, affidabile e con un ottimo rapporto qualità-prezzo

Si ottiene un output con un punteggio del sentiment che è possibile utilizzare in ulteriori costruzioni di modelli o rapporti.

utentetestosentiment
utente 1È stata un'esperienza orribile al negozio, personale scortese, servizio clienti scadente, non tornerò mai più-0,963
utente 2Servizio decente, anche se lento, nel complesso una buona esperienza0,158
utente 3Sono rimasto molto soddisfatto del loro servizio, affidabile e con un ottimo rapporto qualità-prezzo0,915
Spatial analysis8

Il linguaggio Python ha alcuni pacchetti di costruzione di modelli utili, come ad esempio Scikit-learn e Keras, un'API di alto livello per i framework di apprendimento Tensorflow e Theano Deep. Utilizzando la procedura Python nel linguaggio SAS, è facile usare a proprio vantaggio questa funzionalità di Python all'interno dello stesso programma.

Spatial analysis9

L'uso di questa strategia con la piattaforma WPS di World Programming presenta numerosi vantaggi:

  • I programmi di analisi sono di facile implementazione: un singolo programma può essere pianificato o richiamato tramite la riga di comando
  • Pipeline analitiche e flussi di lavoro di facile manutenzione, dato che è necessario seguire un singolo file per la gestione della configurazione e il controllo della versione.
  • Diversi insiemi di competenze possono essere usati facilmente a proprio vantaggio tramite raccolte incorporate a diverse tecnologie che sono le migliori nella propria categoria. Le risorse di proprietà intellettuale possono essere preservate e riutilizzate universalmente

Ormai è semplice avere il meglio di tutti i mondi, utilizzando la tecnologia più adatta per ogni parte di un singolo processo analitico. È possibile bilanciare le esigenze di: Big Data, dati strutturati e non strutturati, preparazione dei dati, velocità di elaborazione, apprendimento automatico, funzionalità IA, implementazione della produzione e costi finanziari, liberi dai limiti di un set tecnologico e tuttavia accessibili all'interno di un framework e un'interfaccia utente coerenti e gestiti.