5 distribuzioni Python per padroneggiare l'apprendimento automatico

Se lavori in statistica, scienza dei dati o machine learning, le probabilità che tu stia utilizzando Python sono alte. E anche per una buona ragione: il ricco ecosistema di librerie e strumenti, e la comodità del linguaggio stesso, rendono Python una scelta eccellente.

Ma quale Python? Esistono diverse distribuzioni del linguaggio e ognuna è stata creata secondo linee diverse e per un pubblico diverso. Qui abbiamo dettagliato cinque incarnazioni di Python, dalla più generica alla più specifica, con dettagli su come si impilano per la gestione dei lavori di machine learning.

Video correlato: come Python semplifica la programmazione

Perfetto per l'IT, Python semplifica molti tipi di lavoro, dall'automazione del sistema al lavoro in campi all'avanguardia come l'apprendimento automatico.

Anaconda Python

Anaconda è diventata un'importante distribuzione Python, non solo per la scienza dei dati e l'apprendimento automatico, ma anche per lo sviluppo Python generico. Anaconda è supportato da un fornitore commerciale con lo stesso nome (ex Continuum Analytics) che offre piani di supporto per le imprese. 

La distro Anaconda fornisce, prima di tutto, una distribuzione Python dotata di un facile accesso ai pacchetti spesso utilizzati nella scienza dei dati: NumPy, Pandas, Matplotlib e così via. Non sono semplicemente in bundle con Anaconda, ma sono disponibili tramite un sistema di gestione dei pacchetti personalizzato chiamato Conda. I pacchetti installati da Conda possono includere complicate dipendenze binarie esterne che non possono essere gestite tramite il Pip di Python. (Nota che puoi ancora usare Pip se lo desideri, ma non otterrai i vantaggi che Conda fornisce per quei pacchetti.) Ogni pacchetto è aggiornato da Anaconda e molti di essi sono compilati con Intel MKL estensioni per la velocità.

L'altro grande vantaggio che Anaconda conferisce è un ambiente grafico, Anaconda Navigator. Il Navigator non è un IDE, ma piuttosto un comodo front-end GUI per le funzionalità di Anaconda, tra cui il gestore di pacchetti Conda e ambienti virtuali configurati dall'utente. È inoltre possibile utilizzare Navigator per gestire applicazioni di terze parti come i notebook Jupyter e l'IDE di Visual Studio Code.

Un'installazione minima di Anaconda, chiamata Miniconda, installa solo una quantità sufficiente della base di Anaconda per iniziare, ma può essere espansa con altri pacchetti installati da Conda- o Pip quando ne hai bisogno. Questo è utile se vuoi sfruttare la ricca gamma di librerie di Anaconda, ma devi mantenere le cose snelle.

ActivePython

La scienza dei dati è solo uno dei casi d'uso di ActivePython, che è stato progettato per fungere da edizione del linguaggio supportata professionalmente con implementazioni coerenti tra architetture e piattaforme. Questo aiuta se stai usando Python per la scienza dei dati su piattaforme come AIX, HP-UX e Solaris, oltre a Windows, Linux e MacOS.

ActivePython cerca di attenersi il più possibile all'incarnazione di riferimento originale di Python. Invece di un programma di installazione speciale per pacchetti matematici e statistici complessi (l'approccio Anaconda), ActivePython precompila molti di questi pacchetti, utilizzando le estensioni Intel MKL dove necessario, e li fornisce come pacchetti con l'installazione predefinita di ActivePython. Non devono essere installati formalmente; sono disponibili immediatamente.

Tuttavia, se si desidera eseguire l'aggiornamento a una versione più recente di quei pacchetti precompilati, sarà necessario attendere fino all'uscita della successiva build di ActivePython stesso. Ciò rende ActivePython più coerente nel suo insieme, una cosa preziosa da avere quando la riproducibilità dei risultati è importante, ma anche meno flessibile.

CPython

Se vuoi iniziare il tuo lavoro di machine learning da zero, utilizzando nient'altro che la versione ufficiale e semplice di Python, scegli CPython. Così chiamato perché è l'edizione di riferimento del runtime Python scritto in C, CPython è disponibile dal sito Web di Python Software Foundation e fornisce solo gli strumenti necessari per eseguire script Python e gestire i pacchetti.

CPython ha senso se vuoi creare un ambiente Python personalizzato per un progetto di machine learning o data science, ti fidi di te stesso per farlo bene e non vuoi che eventuali alterazioni di terze parti si intromettano. Il sorgente per CPython è immediatamente disponibile, quindi puoi persino compilare in modo personalizzato le modifiche che potresti voler apportare per motivi di velocità o esigenze di progetto.

D'altra parte, usare CPython significa che dovrai affrontare i dettagli dell'installazione e della configurazione di pacchetti come NumPy, con tutte le loro dipendenze, alcune delle quali devono essere scovate e aggiunte manualmente.

Parte di questo lavoro è diventato meno oneroso negli ultimi anni, soprattutto ora che il gestore di pacchetti Pip di Python installa elegantemente binari precompilati del tipo utilizzato in molti pacchetti di data science. Ma ci sono ancora molti casi, specialmente su Microsoft Windows, in cui dovrai adattare tutti i pezzi a mano, ad esempio installando manualmente un compilatore C / C ++.

Un altro svantaggio dell'utilizzo di CPython è che non utilizza nessuna delle opzioni di accelerazione delle prestazioni utili nell'apprendimento automatico e nella scienza dei dati, come le estensioni MKL (Math Kernel Library) di Intel. Dovresti creare le librerie NumPy e SciPy per utilizzare Intel MKL da solo.

Pensilina pensata

La distribuzione En Thought Canopy di Python somiglia ad Anaconda in molti modi. È costruito con la scienza dei dati e l'apprendimento automatico come casi d'uso principali, viene fornito con il proprio indice di pacchetto curato e fornisce sia front-end grafici che strumenti da riga di comando per la gestione dell'intera configurazione. Gli utenti aziendali possono anche acquistare En Thought Deployment Server, un sistema di gestione dei pacchetti dietro il firewall. I pacchetti di machine learning creati per Canopy utilizzano le estensioni Intel MKL.

La principale differenza tra Anaconda e Canopy è la portata. Canopy è più modesto, Anaconda più completo. Ad esempio, mentre Canopy include strumenti a riga di comando per la creazione e la gestione di ambienti virtuali Python (utili quando si ha a che fare con diversi set di pacchetti per diversi flussi di lavoro di machine learning), Anaconda fornisce una GUI per quel lavoro. D'altra parte, Canopy include anche un pratico IDE integrato, un browser di file combinato, un notebook Jupyter e un editor di codice, utile per entrare subito e mettersi al lavoro senza problemi.

WinPython

La missione originale dietro WinPython era quella di fornire un'edizione di Python creata appositamente per Microsoft Windows. Ai tempi in cui le build di CPython per Windows non erano particolarmente robuste, WinPython riempiva una nicchia utile. Oggi, l'edizione Windows di CPython è abbastanza buona e WinPython si è rivolto a colmare le lacune ancora non pavimentate da CPython, specialmente per le applicazioni di data science e machine learning.

Per impostazione predefinita, WinPython è portabile. L'intera distribuzione WinPython si inserisce in una singola directory che può essere posizionata ovunque ed essere eseguita ovunque. Un'installazione WinPython può essere fornita come archivio o su un'unità USB, preinstallata con tutte le variabili di ambiente, i pacchetti e gli script necessari per un determinato lavoro. È un modo utile per raccogliere tutto ciò che è necessario per addestrare un particolare modello o riprodurre uno specifico esperimento di dati. Oppure puoi registrare un'installazione di WinPython con Windows ed eseguirla come se fosse stata installata in modo nativo (e cancellarla in seguito, se lo desideri).

Vengono trattati anche molti degli elementi più complicati di una distribuzione Python incentrata sull'apprendimento automatico. La maggior parte delle librerie chiave — NumPy, Pandas, Jupyter e interfacce per i linguaggi R e Julia — sono incluse per impostazione predefinita e costruite con le estensioni Intel MKL, se del caso. Anche il compilatore Mingw64 C / C ++ viene fornito con NumPy in WinPython, in modo che le estensioni binarie Python possano essere compilate dai sorgenti (ad esempio, tramite Cython) senza dover installare un compilatore.

WinPython ha il proprio programma di installazione dei pacchetti, WPPM, che gestisce i pacchetti forniti con binari predefiniti e pacchetti Python puro. E per coloro che vogliono solo una versione essenziale di WinPython senza pacchetti inclusi per impostazione predefinita, WinPython offre una "versione zero", sulla stessa linea di Miniconda di Anaconda.

Video correlato: Machine learning e AI decifrati

Rompendo il clamore intorno all'apprendimento automatico e all'intelligenza artificiale, il nostro panel parla delle definizioni e delle implicazioni della tecnologia.