Tecnologie a confronto

Le migliori librerie Python per il Machine learning

Uno dei motivi per i quali scegliere Python per la Data science è nel numero delle librerie disponibili, a oggi circa 140mila, che coprono qualsiasi esigenza a partire dal Deep learning fino alla data viz

Pubblicato il 12 Gen 2023

PALM 2

Python è uno dei tanti linguaggi di programmazione attualmente diffusi ed è da considerare generico, non ha quindi uno scopo specifico, ma ci sono ambiti di sviluppo nei quali è maggiormente indicato e, tra questi, figura l’intelligenza artificiale (AI) nella sua definizione canonica, che la vede come un costrutto basato sul Machine learning, il Deep learning (con le reti neurali) e i Big data. Le librerie per l’AI e il Machine learning sono disponibili per la maggior parte dei linguaggi, ma nessuno ne vanta tante quante Python, stimate in circa 140mila e orientate alla Data science. Numero in costante crescita, sospinto da una comunità nutrita ed effervescente.

Gli usi di Python

Secondo la 22esima edizione del report “State of the Developer Nation” (aggiornato al primo trimestre 2022) Python è il secondo linguaggio di programmazione dietro a JavaScript e conta 15,7 milioni di utenti a livello globale, ossia 3,3 milioni in più rispetto al terzo trimestre del 2021.

Librerie Python

(Fonte: State of the Developer Nation)

Come si può vedere nell’immagine sopra, JavaScript è il linguaggio che conta sulla community più numerosa (17,4 milioni di utenti) ma è per lo più votato alle web app. Python, dal suo canto, è meno usato per il web ma trova la propria raison d’être nella Data science, nel Machine learning e nelle applicazioni IoT, ambiti nei quali JavaScript non si distingue.

Python è multipiattaforma, prelevabile gratuitamente ed è costantemente aggiornato e migliorato dalla comunità di appassionati, alla quale partecipa ancora Guido van Rossum, ossia il padre putativo che lo ha ideato nel 1991, più di 30 anni fa.

In alternativa, ci sono distribuzioni a pagamento che mettono a disposizione moduli aggiuntivi, tra i quali alcuni per l’accesso ai database PostreSQL, MySQL e Oracle o per il supporto a metodi di crittografia dei dati. Oltre a ciò, con le distribuzioni a pagamento si ottiene il supporto di specialisti.

python librerie

Le librerie

Python permette di sviluppare funzioni molto complesse le quali, insieme alle funzioni, possono essere raccolte in librerie e condivise con altri sviluppatori, i quali potranno farne uso senza doverne riscrivere il codice.

Le librerie – termine ereditato letteralmente dall’inglese “library” – non sono una peculiarità di Python, esistono infatti per qualsiasi linguaggio di programmazione.

Le librerie di Python per il Machine learning

Come detto, Python sposa la Data science in generale e il Machine learning, attività alle quali è deputato in virtù delle tante librerie disponibili. Qui elenchiamo alcune librerie tra le più utilizzate, seguendo però il principio della loro trasversalità, a cominciare dalle funzioni matematiche che sono l’humus della Data science.

Quelle che proponiamo sono prelevabili a titolo gratuito.

NumPy

È la libreria principale per la matematica, permette di lavorare in modo più veloce con matrici e vettori. La funzione ndarray consente di cambiare il numero delle dimensioni di un array, strutture dati ispirate proprio ai vettori e alle matrici. Tra le funzioni matematiche comprese in NumPy ce ne sono molte necessarie al Machine learning.

Riteniamo che sia una libreria fondamentale perché è la base di molte altre librerie del Python.

Pandas

Altra libreria cardinale per la Data science, l’analisi dei dati e il Machine learning, comprende funzioni per la pulizia e l’importazione di set di dati. Le strutture principali sono dataframe (di fatto tabelle con righe e colonne) e series, ossia array unidimensionali. Pandas facilita il merge e lo splitting dei dati, così come le operazioni per filtrare i dati per righe e colonne. Basata su NumPy, si integra con altre librerie orientate alla Data science.

Un pacchetto progettato per lavorare sia con i dati organizzati in database relazionali sia con dati etichettati utili al Deep learning e quindi al Machine learning.

SciPy

Libreria che contiene una collezione di algoritmi usati in ambito scientifico che rendono Python strumento paragonabile ad ambienti specifici per il calcolo e l’analisi statistica quali Mtlab o SciLab. Ogni sezione di SciPy copre argomenti peculiari del calcolo scientifico, attira il favore degli utenti perché ritenuta più intuitiva di NumPy, parere questo che ci limitiamo a riportare. Ciò che è inconfutabile è la vasta documentazione a corredo di questa libreria, implementata a sua volta su NumPy e votata al Machine learning.

PyTorch

È una libreria particolarmente nota a chi opera nel comparto della visione artificiale del riconoscimento del linguaggio naturale. Sviluppata in gran parte da Meta AI e scritta in Lula, è stata pensata per il Deep learning e le reti neurali e si sta guadagnando un proprio spazio, nonostante la presenza ingombrante (ma giustificata) di framework come TensorFlow. Dalla sua, PyTorch ha l’uso del calcolo dinamico, un vantaggio quindi nella costruzione di architetture di alto livello e, nel medesimo tempo, l’uso risulta maggiormente intuitivo.

XGBoost

La libreria XGBoost è molto usata nel Gradient Boosting, metodo che fornisce previsioni accurate soprattutto in ambienti Big data e usato nell’apprendimento supervisionato. Gli algoritmi di incremento del gradiente aiutano a ridurre gli errori di bias i quali, insieme a quelli di varianza, sono tra i problemi più stringenti in materia di apprendimento automatico. XGBoost combina modelli costruiti sui set di dati di addestramento per creare un altro modello nel quale vengono corretti gli errori riscontrati.

Scikit-Learn

Usa le capacità di algebra lineare e gli array ad alte prestazioni di NumPy per restituire modelli statistici. Sickit-Learn è basato sulla già ciatata NumPy e su SciPy e bene si adatta al Machine learning in Python, grazie alla gamma di strumenti che mette a disposizione. Al contrario, nonostante fornisca anche metodi per le implementazioni di reti neurali, ha alternative più valide nel campo del Deep learning.

Scikiit-Learn fornisce anche strumenti per le trasformazioni dei dati, elemento fondamentale nello sviluppo di modelli di previsione.

Keras

Facilita i test delle reti neurali e il loro addestramento. Keras consente di costruire modelli e di analizzare grandi set di dati. È progettata come interfaccia per altre librerie di più basso livello, tra le quali TensorFlow, Theano e il framework per l’apprendimento automatico Microsoft Cognitive Toolkit che, in Keras, sono chiamati backend.

Punta molto sulla velocità di implementazione, infatti rende possibile la creazione di modelli complessi con un numero esiguo di righe di codice. Scalabile e flessibile, è molto utilizzata anche perché permette di passare da un backend all’altro consente di distribuire i processi di Deep learning su più unità di elaborazione grafica (Gpu).

Gradio

Gradio è particolarmente usata per creare interfacce grafiche per i modelli di Machine learning al fine di interagire con i modelli stessi e visualizzarne i risultati.

Trova ambito di applicazione durante le fasi di test e di dimostrazione ma, più in generale, crea un collegamento tra gli scienziati dei dati e chi deve valutarne i risultati. Consente facilmente di creare web App e di rendere visibili i risultati del proprio lavoro anche a platee distanti e di interagire con i diversi modelli.

Permette di importare qualsiasi tipo di dato, non soltanto tabellare.

Valuta la qualità di questo articolo

La tua opinione è importante per noi!

Articoli correlati

Articolo 1 di 2