Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Strumenti per il Machine Learning

Impariamo quali sono i principali strumenti per l'implementazione di soluzioni di machine learning basate su Python.
Impariamo quali sono i principali strumenti per l'implementazione di soluzioni di machine learning basate su Python.
Link copiato negli appunti

Un progetto di Machine Learning può essere suddiviso in una serie di fasi che, sommariamente, possono
essere così descritte:

  • raccolta dati: è la fase in cui si reperiscono i dati con cui affrontare l'apprendimento del modello.
    Questi possono essere ottenuti in varie modalità: accedendo a dataset,
    pubblicamente disponibili, acquisendoli mediante fonti private o ricavandoli in maniera automatizzata;
  • organizzazione dei dati: in questo ambito rientrano le tipiche operazioni di
    "pulizia" dove si verifica la qualità dei dati e la necessità di operare alcune formattazioni, trasformazioni o
    ottimizzazioni ma anche dove i dati vengono integrati con altre fonti disponibili nonché immagazzinati
    eventualmente in supporti più idonei al loro utilizzo;
  • esplorazione: i dataset sinora raccolti vanno consociuti a fondo. Qui subentra una fase
    molto interessante fatta di statistiche, visualizzazioni di grafici, proiezioni, tutte attività volte a comprendere
    aspetti salienti del fenomeno da studiare attraverso le caratteristiche matematiche dei dati che lo rappresentano;
  • preparazione all'apprendimento: una volta che i nostri dati sono stati ben raccolti, preparati ed
    esplorati possiamo passare alla loro predisposizione per l'apprendimento automatico. Qui ci si occupa di preprocessing
    (rielaborazione dei dati per ottimizzare alcune loro proprietà statistiche), selezione delle features
    (comprendere quali aspetti tra i dati raccolti sono più significativi per comprendere il fenomeno) e trasformazione (convertire
    la forma dei dati in maniera che siano utilizzabili dagli algoritmi di apprendimento);
  • apprendimento: entriamo ora nella vera e propria fase di learning dove il modello, seguendo
    le nostre indicazioni, studierà i dati preparati e ne individuerà al meglio le regole interne;
  • validazione del modello e testing: dopo l'apprendimento si passa alla verifica della sua
    attendibilità, mettendolo alla prova con dati di test;
  • previsione: superati i test, il modello è pronto per entrare in servizio e per eseguire previsioni
    su dati nuovi.

Questa descrizione degli step di un progetto di Machine Learning è una buona approssimazione del
lavoro dei data scientist ma in realtà ognuna di queste fasi è caratterizzate da una serie di ulteriori task con
specifici obiettivi. Per fare tutto ciò servono gli strumenti giusti pertanto prima di proseguire nella
guida ci soffermiamo per comprendere bene cosa la cassetta degli attrezzi del professionista dovrebbe contenere.

Linguaggi: perchè proprio Python?

Il Machine Learning potrebbe essere praticato con vari linguaggi di programmazione e ne esistono
diversi ottimi. Pensiamo al C++ con cui
è stata scritta buona parte dell'Informatica esistente, Java
ottimo linguaggio alla base di molti strumenti NoSQL e per Big Data ma anche R
linguaggio idoneo anche a chi non è un programmatore di natura o alternative più recenti come
il linguaggio Julia. Si tratta di tutte soluzioni
di assoluto rilievo, ricche di strumenti e caratterizzate da ottime prestazioni ma nel nostro caso, per questa
guida, abbiamo adottato un linguaggio leader nel settore: Python.

I motivi per cui Python si rivela un'ottima scelta sono molti:

  • è uno dei linguaggi più usati al mondo;
  • ha attorno a sé una delle community di programmatori più popolose e attive esistenti;
  • ha una sintassi molto concisa ma al contempo espressiva;
  • è ricco di funzionalità;
  • su di esso si basa un ecosistema per la Data Science di grandissimo valore.

Proprio di questo ecosistema faremo grande uso pertanto, prima di passare alla fase della sua predisposizione, è importante
capire le tipologie di strumenti di cui conviene dotarsi.

Quali strumenti?

Gli strumenti di seguito elencati saranno il pane quotidiano del data scientist e sarà fondamentale
averli installati e configurati per le nostre esigenze:

  • libreria matematica: alla base di un lavoro simile ci deve essere una potente libreria
    per la gestione di funzioni matematiche e statistiche, dotata di proprie strutture dati
    adatte allo scopo ed in grado di offrire ottime prestazioni. In questo, la scelta preferenziale ricade
    su NumPy. Il linguaggio Python
    offre già molte funzionalità con i suoi moduli math, statistics e le strutture dati ma per un contesto come il
    Machine Learning è indispensabile qualcosa di studiato ad hoc;
  • libreria di elaborazione dati: in questo caso, ci baseremo su un altro cavallo di razza,
    Pandas, libreria basata su NumPy ma che offre strutture dati
    per la gestione dei dataset (DataFrame e Series), molte funzioni, capacità grafiche ma anche interazione con i principali sistemi di
    dati come file CSV,
    fogli di Microsoft Excel e database SQL;
  • libreria per grafici: nella fase di esplorazione ma anche di valutazione dei risultati sarà fondamentale
    visualizzare le distribuzioni dei dati.
    Allo scopo, sarà importante padroneggiare due librerie in particolare: Matplotlib e
    Seaborn;
  • librerie per il Machine Learning: per affrontare le vere e proprie fasi di Intelligenza Artificiale ci affideremo
    a tre ottimi strumenti: scikit-learn, Tensorflow e
    Keras;
  • ambienti di sviluppo: come si sa, in Python si può lavorare perfettamente con interprete e console interattiva e ciò vale anche per la
    Data Science ma in questo ambito, per migliorare la produttività e la condisibivilità del proprio lavoro, si ricorre spesso ai
    notebook Jupyter e alla console IPython che per questi fa da kernel, una sorta di motore interno. Inoltre, ha acquisito una
    certa fama tra i data scientist anche l'ambiente di sviluppo Spyder IDE dedicato alla programmazione
    scientifica.


Ti consigliamo anche