IBM Cloud: Watson studio: Python, R e SPSS Modeler

Questo articolo fa parte di una serie scritta in collaborazione con Raoul Alfredo Rocher e Massimo Loaldi. Come IT Solution Architect in ambito Cloud e Intelligenza artificiale vogliamo proporvi alcune brevi review per facilitare l'uso e l'adozione di tecnologie emergenti e innovative.

IBM Cloud è la piattaforma cloud di IBM che aiuta gli sviluppatori a realizzare e ad eseguire applicazioni e servizi innovativi.

Come spiegato nell’articolo relativo ai moduli di intelligenza artificiale di IBM, Watson non è altro che un servizio di intelligenza artificiale, suddiviso in moduli. Ogni servizio di Watson è responsabile di un dominio specifico di intelligenza artificiale. Essi sono moduli componibili ed integrabili tra loro all’interno di soluzioni esistenti.

Requisito necessario per il proseguo della lettura e per la creazione delle risorse è essere in possesso dell’account IBM Cloud. Se non si disponesse dell’account seguire il tutorial per la creazione di un free account.

Nello specifico quest’oggi continueremo il discorso iniziato nello scorso articolo riguardante Watson Studio. Nell’articolo precedente è stato istanziato il servizio, spiegato il funzionamento generale di watson studio, collegato un database di esempio ed eseguito il processo di data refining. Oggi toccheremo il tema dello sviluppo di modelli predittivi, sia in modo visuale tramite SPSS Modeler (Drag and Drop) che scrivendo linee di codice con i linguaggi Python oppure R.

Entrando in un progetto già esistente in watson studio (In alternativa nell’articolo precedente è indicato come istanziare il servizio di watson studio e creare un progetto da zero) rechiamoci nella pagina asset in alto (come nell’immagine sottostante).

No alt text provided for this image

In questa sezione vengono indicati tutti gli asset del nostro progetto.

Gli asset più importanti sono:

  • Dati: Import di dati tramite file oppure collegamento di database esterni.
  • Notebook: Inserimento di notebook in linguaggio Python oppure R.
  • Dashboard: Dashboard interattive sviluppate sui dati importati tramite Cognos analytics (Oggetto dei prossimi articoli).
  • Flussi Modeler: Flusso di Spss Modeler.
  • Modelli: modelli di machine learning sviluppati
  • Auto AI: Esperimenti di Auto AI.

Quest’oggi ci concentreremo sui flussi modeler e sui notebook.

Molto spesso le persone che iniziano a sviluppare modelli statistici e matematici non hanno la padronanza di un linguaggio di programmazione come Python oppure R, per questo un prodotto IBM conosciuto come SPSS modeler, ci viene può essere d’aiuto. Esso permette la creazione di veri e propri flussi di lavoro. Un flusso è composto da almeno 2 nodi e da almeno una freccia.

Condicio sine qua non è la presenza di dati in Watson Studio ed averli eventualmente rifiniti attraverso il servizio data refinery flow. Watson Studio si avvale di SPSS modeler per permettere ai suoi utenti di creare, verificare ed addestrare un modello di machine learning predittivo, eseguire analisi testuali, generare grafici o di effettuare altre operazioni sui records degli assets importati (ad esempio unire due diverse tabelle di database in un unico asset) attraverso un’interfaccia facile e di immediato utilizzo.

Per creare un nuovo flusso recarsi in alto a destra nel pulsante blu Aggiungi a progetto, e successivamente cliccare su Flusso modeler. Compilare con nome e description, selezionare Modeler flow e IBM SPSS Modeler.

No alt text provided for this image

La prima cosa da fare è importare gli assets su cui si vuole creare un modello, un flusso di operazioni che porteranno poi al nostro output desiderato. Nell’esempio della figura sottostante, abbiamo usato SPSS modeler per unire tre tabelle di database diversi in un’unica tabella così poi da creare successivamente una dashboard interattiva che aggiorni automaticamente tutti i suoi grafici, anche se comprensivi di dati di database diversi.


No alt text provided for this image

Nello specifico, abbiamo ad esempio usato le funzioni Merge ed Append di SPSS modeler, per unire le nostre tabelle, e poi abbiamo generato ed esportato i data assets che utilizzeremo poi per la nostra analisi in Watson Studio. Nella figura 2, evidenziamo il data asset “allin2” che abbiamo generato tramite SPSS modeler e che lo esportiamo in Watson Studio attraverso la funzione Data Asset Export.Allin2 sarà proprio la nostra tabella, comprensiva di dati di 3 tabelle diverse, che useremo come fonte unica di una dashboard interattiva in Cognos Analytics.

SPSS Modeler ha d’altro canto molte potenzialità nonostante sia un tool visuale, nello specifico sono presenti le seguenti sezioni, ognuna con molti nodi da inserire:

  • Import: Input dell’utente oppure un data asset già rifinito su watson studio.
  • Record Operations: Operazione sui record (ordinamento, aggregazione, append, Bilanciamento, campionamento, ecc..)
  • Field Operations: Operazioni sui campi specifici del database (Filtro, reclassificazione, ecc..)
  • Modeling: Machine learning model (Sia automatici come l’auto AI, sia algoritmi conosciuti di classificazione, di regressione, di clustering o metodi ensemble).
  • Text Analytics; identificazione del linguaggio, text mining
  • Graphs: Per la creazione di grafici (Vedremo negli articoli successivi Cognos Analytics)
  • Export e Output per esportare I risultati oppure salvare dei nuovi dati che sono stati modificati.

Ulteriori informazioni su come utilizzare al meglio SPSS Modeler in Watson Studio sono indicate in:

https://dataplatform.cloud.ibm.com/docs/content/wsd/spss-modeler.html

Per i data scientist puri che non hanno intenzione di utilizzare strumenti visuali ma vorrebbero solo iniziare a scrivere linee di codice è possibile creare un nuovo notebook.

Il notebook elettronico, è il corrispettivo di un notebook cartaceo, cioè si possono prendere appunti, fare test, scarabocchi e scrivere qualsivoglia cosa senza preoccuparsi del risultato finale. In un campo come la data science e la statistica applicata è fondamentale poter fare delle prove e avere subito un riscontro, senza dover debuggare tutto lo script dall’inizio.

Per creare un notebook direttamente dalla schermata asset di watson studio, cliccare sul tasto blu in alto a destra “Add to project” e successivamente su notebook.

È possibile caricare un notebook vuoto, imortare un notebook da file oppure importare un notebook da una pagina url (per esempio da Github). È possibile selezionare diversi tipi di environment tra cui Python, R oppure Scala.

No alt text provided for this image

In questo notebook vedremo due esempi, il primo con R e il secondo con Python.

L’interfaccia grafica di un notebook di R, denominata R Studio, è molto simile all’interfaccia R studio in locale.

L’output al posto che essere visualizzato in uno dei 4 quadranti viene printato sotto la cella eseguita.

In questo caso si vuole predire la classe di un fiore importando il dataset “iris”.

L’algoritmo che si utilizzerà sono le reti neurali. E alla fine genereremo una confusion matrix per mostrare il risultato. I Pacchetti che si utilizzeranno in questo esercizio sono nnet, caret e NeuralNetTools

CODICE R:

install.packages(‘nnet’)

install.packages(‘caret’)

install.packages(‘NeuralNetTools’)

library(caret)

library(nnet)

library(NeuralNetTools)

#ESERCIZIO

set.seed(123)

random <- runif(nrow(iris))

iris2 <- iris[order(random),]

head(iris2)

train <- iris2[1:100, ]

test <- iris2[101:150,]

#nnet(Variabile da predire, tilde significa tutte le variabili (esclusa species) del dataset train, size è il numero di unità nello strato nascosto, rang indica i pesi casuali, max it rappresenta il numero di iterazioni dette anche ere)

nn <- nnet(Species ~. , train, size = 2, rang = 0.1, maxit = 1000)

summary(nn)

print(nn)

#Cosa cambia all’aumentare o al diminuire delle ere?

#nn50Ere <- nnet(Species ~., trainIris2, size = 2, rang = 0.1, maxit = 50 )

#summary(nn50Ere)

#print(nn50Ere)

pred <- predict(nn, test, type = ‘class’)

table(test$Species, pred)

#Per avere più informazioni su accuratezza utilizzare il pacchetto caret

confusionMatrix(test$Species, pred)

plotnet(nn)

È possibile copiare ed incollare il codice sul proprio notebook R in Watson studio ed eseguirlo per ottenere il risultato del modello di classificazioni con reti neurali.

No alt text provided for this image

Per quanto riguarda il notebook in python, il risultato è molto simile. Quando creo un nuovo notebook basterà selezionare un environment con python.

Aprendo il notebook l’interfaccia sarà molto simile al notebook in R, soltanto che il linguaggio di programmazione sarà diverso.

Sia i notebook in R, sia i notebook in python possono essere schedulati per girare ad una certa ora del giorno attraverso un job.

Per ulteriori informazioni seguire la guida di riferimento al link:

https://eu-gb.dataplatform.cloud.ibm.com/docs/content/wsj/analyze-data/notebooks-parent.html?audience=wdp&context=wdp

Tutti i nostri articoli li trovate qui:



To view or add a comment, sign in

Others also viewed

Explore topics