Febbraio 2018

Volume 33 Numero 2

Il presente articolo è stato tradotto automaticamente.

Artificially Intelligent - Uso di Jupyter Notebook

Da Frank La La | 2018 febbraio

Frank La VigneIl server Jupyter Notebook è una open source, strumento basato su browser che consente agli utenti di creare e condividere documenti che contengono il codice in tempo reale, visualizzazioni e testo. Server Jupyter notebook non sono in sé gli ambienti di sviluppo di applicazioni. Invece, forniscono un interattivo pad"zero" in cui possono essere esplorati e sperimentati con dati. Offrono una shell interattiva basata su browser per diversi linguaggi di programmazione, ad esempio Python o R e consentono di esperti di dati e tecnici sperimentare rapidamente i dati, fornendo una piattaforma per condividere codice, osservazioni e visualizzazioni. Notebook possono essere eseguiti in locale in un PC o nel cloud tramite vari servizi e sono un ottimo modo per esplorare i set di dati e acquisire familiarità con un nuovo linguaggio di programmazione. Per gli sviluppatori abituati a un IDE più tradizionale, tuttavia, possono essere elevatissimo inizialmente.

Struttura di un server Jupyter Notebook

Server Jupyter notebook sono costituiti da una serie di "celle" disposte in una sequenza lineare. Ogni cella può essere testo o codice. Testo nelle celle viene formattato in MarkDown, un linguaggio di markup semplice con la sintassi di formattazione di testo normale. Le celle di codice contengono codice nella lingua associata con il blocco per Appunti specifico. Notebook Python possono eseguire solo codice Python e non R, mentre un notebook R è possibile eseguire R e non di Python.

Figura 1 Mostra i notebook IntroToJupyterPython disponibile come un file di esempio in macchina virtuale di analisi scientifica dei dati. Si noti l'indicatore della lingua per il blocco appunti nell'angolo superiore destro della finestra del browser, che mostra che il blocco note è collegato al runtime di Python 2. Il cerchio a destra di "Python 2" indica lo stato corrente del kernel. Un cerchio pieno indica che il kernel è in uso e un programma è in esecuzione. Un cerchio vuoto indica che al kernel è inattivo. Inoltre, prendere nota che il corpo principale del notebook contiene testo, nonché di codice e di un tracciato nel grafico.

Esercitazione Notebook Introduzione alle funzionalità di base di un server Jupyter Notebook
Figura 1 Notebook esercitazione Introduzione alle funzionalità di base di un server Jupyter Notebook

Creazione di un server Jupyter Notebook nei blocchi appunti di Azure

Esistono diverse opzioni per l'esecuzione di un server Jupyter notebook. Tuttavia, il modo più rapido per iniziare è tramite il servizio Azure Notebook, che è in modalità di anteprima al momento della redazione del presente documento. Individuare su notebooks.azure.com e accedere con le credenziali dell'ID di Microsoft. Se richiesto, concedere le autorizzazioni, che verrà richiesto di specificare l'applicazione. Per primo utilizzo, il sito verrà chiesto di un ID utente pubblica. Per creare un URL per il profilo host e condividere i notebook. Se non si desidera impostare in questo momento, fare clic su "No grazie." In caso contrario, immettere un valore e fare clic su Salva.

Nella schermata viene ora visualizzato la pagina del profilo. Il servizio di Azure Notebook archivia notebook Jupyter nelle librerie. Per creare un blocco per Appunti, è innanzitutto necessario creare una libreria. In raccolte, è disponibile un pulsante per aggiungere una libreria. Fare clic su di essa per creare una nuova raccolta. Nella finestra di dialogo che segue, immettere un nome per la libreria e un ID per l'URL di condivisione. Se si desidera rendere pubblico questa libreria, selezionare la casella accanto a "Libreria pubblica". Selezionare o deselezionare che la casella accanto a "Creare un file README.md" inserirà automaticamente un file README.md per scopi di documentazione. Fare clic su Crea per creare una nuova raccolta.

A questo punto, la pagina del profilo avrà una libreria elencata. Fare clic su di esso per visualizzare il contenuto della libreria. Attualmente, l'unico elemento è il file README.md. Fare clic sul pulsante nuovo per aggiungere un nuovo elemento. Nella finestra di dialogo che seguono, immettere un nome per il nuovo elemento e scegliere Python 3.6 Notebook tra i menu a discesa accanto al tipo di elemento e fare clic su nuovo.

Una volta creato l'elemento, verrà visualizzato nella raccolta con una. Estensione di file IPYNB. Fare clic su di esso per avviare un'istanza del server Jupyter in Azure. Si noti che una nuova scheda del browser o una finestra verrà aperta e che l'interfaccia sia più simile a schermo in figura 1. Fare clic all'interno della casella di testo e scrivere il codice seguente:

print("Hello World!")

Scegliere le celle eseguire dal menu di cella nella parte superiore della pagina. La schermata dovrebbe essere simile figura 2.

Salve, mondo! in un server Jupyter Notebook
Figura 2 Hello World! in un server Jupyter Notebook

Fare clic su tale server Jupyter aggiunto all'interno della cella vuota e scegliere cella > tipo di cella > Markdown dalla barra dei menu. Quindi aggiungere il testo seguente.

# This is markdown text #
Markdown is a versatile and lightweight markup language.

Fare clic su Salva icona e chiudere la scheda del browser. Nella finestra della libreria, clic sul file notebook nuovamente. La pagina verrà aggiornata e la formattazione di markdown avranno effetto.

Successivamente, aggiungere un'altra cella di codice, facendo clic nella cella markdown e scegliendo Inserisci cella sotto il menu Inserisci. Ho detto in precedenza, che potrebbe essere eseguito solo codice Python Raccoglitore di Python. Che non è completamente impostato su true, come è possibile usare la "!" per inviare comandi della shell. In questa nuova cella, immettere il comando seguente.

! ls -l

Scegliere di eseguire celle dal menu di esecuzione oppure fare clic sull'icona con il simbolo Riproduci/Pausa su di esso. Il comando restituisce un elenco del contenuto della directory, che contiene il file di blocco note e il file README.md. Ancora una volta, dopo la risposta Jupyter aggiunta una cella vuota. Nella cella vuota, digitare il codice seguente:

%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
x = np.random.rand(100)
y = np.random.rand(100)
plt.scatter(x, y)
plt.show()

Eseguire la cella e dopo qualche istante verrà visualizzato un grafico a dispersione i risultati. Per chi ha familiarità con Python, la prima riga del codice potrebbe sembrare insolita, in quanto parte del kernel di IPython che esegue codice Python in un server Jupyter notebook. Il comando % matplotlib inline indica al runtime di IPython per visualizzare i grafici generati da matplotlib in linea con i risultati. Questo tipo di comando, noto come un comando "chiave" inizia con "%". Un'esplorazione completa di comandi magici garantisce un articolo. Per ulteriori informazioni sui comandi magici, consultare la documentazione di IPython in bit.ly/2CfiMvh.

Per quelli non hanno familiarità con Python, segmento di codice precedente consente di importare due raccolte, NumPy e Matplotlib. NumPy è un pacchetto di Python per il calcolo scientifico (numpy.org) e Matplotlib è un grafico 2D comune tracciato libreria per Python (matplotlib.org). Quindi, il codice genera due matrici di numeri casuali 100 e vengono tracciati i risultati come un grafico a dispersione. L'ultima riga del codice consente di visualizzare il grafico. Come i numeri vengono generati in modo casuale, il grafico verrà modificato leggermente ogni volta che viene eseguita la cella.

Appunti nell'area di lavoro ML

Fino a questo punto, ho illustrato reti Jupyter in esecuzione come parte del servizio Azure Notebook nel cloud. Tuttavia, i notebook Jupyter possono essere eseguiti in locale, nonché. In effetti, Jupyter notebook sono integrate nel prodotto Azure Machine Learning Workbench. Nell'articolo precedente, è stato illustrato il progetto di esempio Iris classificazione. Mentre l'articolo non menzionati, sussiste un notebook incluso con il progetto che i dettagli di tutti i passaggi necessari per creare un modello, nonché un grafico 3D del set di dati iris.

Per visualizzarla, aprire il progetto di esempio Iris classificatore dal mese ultimo, "Creazione di modelli in Azure ML Workbench" (msdn.com/magazine/mt814992). Se non è stato creato il progetto, seguire le istruzioni nell'articolo per creare un progetto dal modello. All'interno del progetto, illustrato nella figura 3, fare clic sull'icona del terzo (1) dalla parte superiore della barra degli strumenti verticale nella parte sinistra della finestra, quindi fare clic su iris (2) nell'elenco di file.

Visualizzazione Appunti in una di Azure Machine Learning Workbench progetto
Figura 3 visualizzazione Appunti in una di Azure Machine Learning Workbench progetto

Carica il file di blocco note, ma non è in esecuzione il server notebook, vengono memorizzati nella cache i risultati indicati da un'esecuzione precedente. Per rendere interattivo il blocco note, fare clic sul pulsante Start di un Server Notebook (3) per attivare il server di rete locale.

Consente di spostarsi sulla cella vuota immediatamente dopo il grafico 3D e immettere il codice seguente per visualizzare i primi cinque record nel set di dati iris:

iris.head(5)

Scegliere Inserisci cella sotto il menu Inserisci e immettere il codice seguente nella cella vuota per visualizzare la matrice di correlazione:

iris.corr()

L'output dovrebbe essere simile figura 4.

Matrice di correlazione per il Set di dati Iris
Matrice di correlazione nella figura 4 per il Set di dati Iris

Una matrice di correlazione viene visualizzato il coefficiente di correlazione tra i vari campi di un set di dati. Un coefficiente di correlazione misura la dipendenza lineare tra due variabili con valori più vicino a 1 indica una correlazione positiva e valori per -1 che indica una correlazione negativa. I valori più vicino a 0 indicano una mancanza di correlazione tra i due campi. È ad esempio, una stretta correlazione tra petalo larghezza e lunghezza petalo con un valore di 0.962757. D'altra parte, la correlazione tra Sepal larghezza e lunghezza Sepal è molto debole con un valore di-0.109369. Naturalmente, ogni campo ha una 1.0 correlazione con se stesso.

Anacondas

Finora, ho utilizzato solo notebook Jupyter come parte di un servizio cloud Microsoft o localmente tramite software Microsoft. Tuttavia, Jupyter è open source e può essere eseguito indipendentemente dall'ecosistema di Microsoft. Un set di strumenti più diffusi è Anaconda (anaconda.com/download), una distribuzione open source di Python e R per Windows, Mac e Linux. Jupyter fornito come parte di questa installazione. In esecuzione in locale Jupyter consente di inizializzare un server Web locale sulla porta 8888. Si noti che, nel sistema, è possibile solo creare un blocco per Appunti Python 3 quella solo kernel che è installato sul PC.

Macchine virtuali di analisi scientifica dei dati

In esecuzione in un server Jupyter notebook locale è ideale per scenari in cui non è affidabile o garantito l'accesso a Internet. Per altre attività complesse, potrebbe essere convocazione creare una macchina virtuale ed eseguire Jupyter in hardware più potente. Per semplificare questa attività, Azure offre un'immagine della macchina virtuale di analisi scientifica dei dati per Windows e Linux, con gli strumenti di analisi scientifica dei dati più comuni già installati.

Creazione di una macchina virtuale da questa immagine è semplice e veloce. Dal portale di Azure, fare clic sulla nuova icona e ricerca per la macchina virtuale di analisi scientifica dei dati"sono disponibili numerose opzioni. Tuttavia, ritengo che l'immagine di Ubuntu sia il più completo di funzionalità. Scegliere la macchina virtuale di analisi scientifica dei dati per l'immagine di Linux (Ubuntu) e creare una macchina virtuale seguendo i passaggi della procedura guidata. Una volta che il computer sia in esecuzione, è possibile configurare la macchina virtuale per l'accesso desktop remoto. Fare riferimento alla documentazione su come connettersi a una VM Linux in bit.ly/2qgHOZo.

Quando si è connessi al computer, fare doppio clic sull'icona Jupyter sul desktop. Verrà aperta una finestra terminale, seguito da una finestra del browser in un secondo momento qualche istante. Quando si fa clic sul pulsante nuova per creare un nuovo blocco appunti, si dispone di alcune altre scelte di ambienti e lingue, come illustrato in figura 5.

Runtime disponibili per la macchina virtuale di analisi scientifica dei dati per Ubuntu
Figura 5 di runtime disponibili per la macchina virtuale di analisi scientifica dei dati per Ubuntu

Insieme a diversi ambienti di runtime, la macchina virtuale di analisi scientifica dei dati per Ubuntu include numerosi esempi di blocchi appunti. Questi notebook offrono indicazioni su tutti gli aspetti le nozioni di base di Azure ML argomenti più avanzati come CNTK e TensorFlow.

Conclusioni

Notebook Jupyter sono uno strumento essenziale per il lavoro di analisi scientifica dei dati, ma tendono a confondere molti sviluppatori perché la piattaforma non dispone delle caratteristiche di base necessarie per lo sviluppo di software. Ciò è da progettazione. Server Jupyter notebook non sono destinati a tale attività.

Che cosa notebook è forniscono un meccanismo di collaborazione in cui gli esperti di dati consente di esplorare il set di dati, sperimentare diverse ipotesi e condividere osservazioni con i colleghi. Server Jupyter notebook può eseguire localmente in un PC, Mac o Linux. Area di lavoro di Azure ML include anche un server notebook incorporato nel prodotto di sperimentazione più facilmente con i dati. È possibile anche eseguire notebook nel cloud come parte di un servizio, ad esempio Azure notebook, o in una macchina virtuale con un hardware più adatto.


Frank La Vignecomporta la pratica di dati & Analitica Wintellect e CO-host il podcast DataDriven. Il suo blog è regolarmente al FranksWorld.com ed è possibile guardare quest'ultimo nel canale YouTube, "Di Frank mondo TV" (FranksWorld.TV).

Grazie ai seguenti esperti per la revisione dell'articolo: Andy Leonard


Viene illustrato in questo articolo nel forum di MSDN Magazine