Corso Python per il machine learning

Corso Machine Learning con Python

Il corso Machine Learning con Python ha l’obiettivo di insegnarti a programmare con successo modelli di machine learning tramite il linguaggio Python e le sue più famose librerie. Voglio insegnarti questo linguaggio attraverso la pratica diretta su veri problemi di Machine Learning, accompagnandoti lungo l’intera filiera di lavorazione dal dato.

Il linguaggio Python è famoso per la sua leggerezza sintattica e semplicità. Inoltre l’esistenza di librerie come Pandas e Numpy permettono di risolvere problemi frequenti della programmazione con letteralmente una linea di codice. Per questi motivi, almeno inizialmente, la curva di apprendimento in Python è generalmente più ripida rispetto ad altri linguaggi. Di conseguenza è particolarmente adatto anche a chi non ha solide basi di programmazione ma, per esigenze lavorative o per volontà personale, vuole studiare e applicare le tecniche di machine learning e di analisi predittive dei dati.

Ho tenuto questo corso sia per studenti che non avevano mai programmato in precedenza e sia per studenti che provenivano da altri linguaggi (ad esempio R). In tutti i casi sono rimasti sempre piacevolmente sorpresi da quanto alcune operazioni risultassero comprensibili ed immediate. Attenzione, non sto dicendo che programmare in Python è facile e che dopo un’ora del mio corso sarai pronto a creare un’intelligenza artificiale. Programmare è un’arte che richiede un lungo e duro studio, molto esercizio, pratica e aggiornamento costanti nel tempo. Sto dicendo invece, che con il nostro reciproco impegno, mio da docente e tuo da studente, si può riuscire in tempistiche ragionevoli ad acquisire tutta una serie di competenze utili e applicabili, sia per scopi personali e sia per il mondo del lavoro (a questo proposito puoi leggere questo articolo https://www.tutored.me/it/phyton-come-funziona o anche fare direttamente tu una semplice ricerca sugli annunci di lavoro su Linkedin con la parola chiave Python).

Esempio di codice in una lezione di un corso di Python

L’obiettivo del corso è quello di “insegnarti a fare”. Personalmente non ritengo utile strutturare il programma del corso con il classico paradigma: introduzione al linguaggio, le variabili, le stringhe, le tuple, le liste, i dizionari, le classi, eccetera.  Ciò può essere sicuramente utile ad un programmatore già esperto in un altro linguaggio, per analizzare le differenze e le analogie tra i costrutti e le implementazioni in Python rispetto a quanto già fa ad esempio in Java. Ma per altre tipologie di studenti c’è l’elevato rischio di finire il corso e aver imparato a fare poco o niente.

Mi spiego meglio: alla fine del mio corso vorrei che, se qualcuno ti chiedesse cosa hai imparato, tu rispondessi qualcosa del tipo:

“ad acquisire dati da svariate fonti, importarle in Python, trasformarle e ricombinarle per renderle idonee ai miei scopi, applicare algoritmi di machine learning, valutarne l’accuratezza e rappresentare le informazioni con dei grafici”

e non

“ho imparato la differenza tra tuple e liste, ad aggiungere un nuovo elemento nella posizione iniziale della lista e a creare i DataFrame che so essere utili per il machine learning”

A scanso di equivoci, ritengo fondamentale conoscere anche questi concetti più astratti e nel corso li tratterò molto spesso. Ma ritengo che dal punto di vista didattico e cognitivo, agli studenti risulti molto più utile e gratificante imparare e parlare di come acquisire un file salvato su una pagina web (e per far questo introdurre man mano i vari concetti teorici) invece di utilizzare due ore per parlare di tutte le possibili operazioni ammissibili su un array. Per questo fine riterrei molto più utile studiare gratuitamente una guida dal sito html.it, invece che rivolgersi e pagare un docente.

Con queste premesse metodologiche, vi illustrerò nel prossimo paragrafo cosa andremo ad imparare nel corso.

Il programma del corso “Machine Learning con Python”

Python è oggi utilizzato in moltissime applicazioni: creazione di interfacce, sviluppo di siti web, programmazione di rete. Questo corso si focalizza su un unico particolare aspetto: utilizzare Python per l’analisi dei dati e con un focus particolare sulla creazione di modelli di Machine Learning. Questa sta diventando una competenza fondamentale per chiunque lavori nel mondo della Data Science e più in generale per chiunque abbia necessità di svolgere analisi predittive sui dati. Tutto il programma del corso si focalizza sul come guidarti passo per passo nella filiera di lavorazione dei dati.

Acquisizione dei dati

Partiremo dunque imparando ad importare in Python dati provenienti da svariate fonti:

  • semplici file .csv
  • file excel
  • file json
  • file pdf non strutturati
  • database relazionali come Sql Server
  • database non relazionali come MongoDB
  • file html e pagine web

analizzando in ogni caso come gestire le problematiche più frequenti e importanti.

Analisi descrittiva

Una volta acquisiti i dati, prima di passare al Machine Learning, sarà fondamentale conoscere come svolgere su Python e in particolare con la libreria Pandas tutte le attività di analisi descrittiva e dichiarativa dei dati. Per task del genere l’utilizzo del linguaggio SQL e di un database relazionale risulta più che sufficiente, oltre che in generale più semplice e performante. Tuttavia molto spesso all’interno di un progetto di Machine learning nasceranno esigenze di questo tipo, quando i dati sono ormai già stati importati in Python.

Risulta dunque fondamentale imparare a svolgere operazione di filtro, aggregazione, trasformazione e integrazione di dati. Inoltre non vorrei mai che un mio studente esca dal corso in grado di applicare un algoritmo di random forest per classificare una variabile target, ma non sappia come contare il numero di clienti per ogni regione a partire da un semplice file csv.

Preprocessing

Per utilizzare con efficacia gli algoritmi di Machine Learning è necessario sottoporre i dati ad una serie di operazioni di pre-processamento indispensabili per la corretta esecuzione dei modelli. In questa fase impareremo tra l’altro a

  • codificare la variabile target
  • codificare le variabili categoriche
  • normalizzare i dati
  • gestire i dati mancanti
  • dividere i dati in un insieme di training e un insieme di test
  • selezionare o accorpare le variabili di input

Studio e implementazione del Perceptron

A questo punto potremo concentrarci finalmente sul Machine Learning. Descriveremo nel dettaglio il primo algoritmo del Perceptron, la cui ideazione è risalente addirittura alla fine degli anni cinquanta, che negli ultimi anni ha avuto un’enorme successo grazie alla potenza computazionale dei nuovi computer e all’immensa disponibilità dei dati da parte delle aziende. A questo link https://www.iltascabile.com/scienze/origini-intelligenza-artificiale/ trovi un bell’articolo per approfondire.

Ti anticipo che qui ci sarà bisogno di un po’ di matematica, in particolare di algebra lineare, ma niente di difficile non preoccuparti. Se vuoi iniziare a dare un ripasso scarica gratuitamente i miei appunti che ho scritto appositamente.

Implementeremo l’algoritmo direttamente su Python e lo utilizzeremo per fare le nostre prime analisi predittive!

Codice contenente l'algoritmo del Perceptron

Esecuzione di algoritmi di classificazione supervisionata

A questo punto vedremo come usare altri algoritmi simili al Perceptron senza doverli per forza implementare tutti manualmente su Python. Utilizzeremo a questo scopo la famosa libreria Scikit-Learn per eseguire classificazioni con vari algoritmi, di cui analizzeremo proprietà e parametri. Useremo ad esempio:

  • la regressione logistica
  • la discesa stocastica del gradiente
  • gli alberi di decisioni
  • le random forest
  • l’algoritmo knn

Impareremo infine a valutare l’accuratezza di questi algoritmi e l’attendibilità dei risultati in riferimento a particolari problemi.

Machine learning con Pycaret

A questo punto avremo tutte le basi necessarie per utilizzare con consapevolezza Pycaret, una fantastica libreria di Machine Learning che permetterà di creare modelli con pochissime e semplici righe di codice, demandando a noi il compito di scegliere i modelli, le variabili e i parametri più adatti per raggiungere i risultati desiderati. Pycaret ci permetterà di fare un excursus su altri classi di algoritmi più complesse come la regressione, la classificazione non supervisionata e la clusterizzazione.

 

Informazioni generali

In questa pagina trovi tutte le informazioni su prezzi, durata, modalità di erogazione e materiali dei miei corsi.

 

Alcune recensioni dei miei studenti

Ottima professionalità persona competente di ottima comunicazione

Marco Germenia
27/10/20

positive review Umanamente e professionalmente uno dei migliori insegnanti che abbia mai incontrato nella mia carriera da studente universitario. Con questo ti voglio ringraziare per il tuo prezioso aiuto.

Salvatore K. Maltisotto
15/09/19
Torna su