Archivi tag: machine learning

Come Diventare DataScientist da Autodidatta

-Dottore mio figlio vuole diventare DataScientist secondo lei è grave?

-Gravissimo signora, mi dispiace per lei, ma io l’avevo avvertita. Purtroppo la medicina non ha risposte a queste malattie. Si prepari, si prepari, suo figlio andrà all’IKEA o per risparmiare tempo comprerà delle lavagne su Amazon(https://amzn.to/2NpOImd), ne abbiamo già visti di casi del genere.

Le ha già parlato entusiasta di MonteCarlo (https://it.wikipedia.org/wiki/Metodo_Monte_Carlo)?

-Si.

-Allora è più grave di quanto pensassi.

 

Ieri o l’altro ieri mi aveva scritto Davide Sicignani , sempre un fratello del gruppo InnLab, di Terracina (quindi dietro casa), ma che ho conosciuto solo a Londra.

Da sinistra Ugo, Davide, Gabriele ed Io in un tipico pranzo della Domenica Londinese

Davide mi chiedeva un consiglio per un suo amico Biologo che vuole avvicinarsi a Python e DataScience.

In particolare mi contattava perché ho cominciato da Zero e da Autodidatta.

Non essendo la prima persona che mi ha contattato per questo motivo, anche Stefano (sempre InnLab) qualche mese fa, ho deciso di scriverci due righe.

E’ opportuno distinguere tre domini di conoscenza che rientrano a mio avviso sotto il grande cappello del DataScientist, ma lo farò in un altro post:

  • Data Engineering (Informatica)
  • Data Modeling (Probabilità e Statistica- Ricerca Operativa)
  • Business Intelligence (Capacità Analitica)

Quello che racconterò è un po’ la sintesi del mio percorso e delle risorse utilizzate.

Indubbiamente la strada migliore per essere DataScientist è la stessa che caratterizza il settore medico:

La perfetta sinergia tra Pratica, Studio e degli ottimi Mentor.

Cosa ho capito fino ad oggi:

  1. Non esistono corsi che in un mese o in una settimana ti permettono di diventare DataScientist, se dicono il contrario è una balla
  2. Non è possibile diventare DataScientist solo attraverso la pratica
  3. Non è possibile diventare DataScientist solo attraverso i libri
  4. E’ estremamente bello
  5. E’ estremamente faticoso
  6. Esistono molte persone del mestiere disposte ad aiutarti (gratis)
  7. Per iniziare a capirci qualcosa serve almeno un anno di allenamento
  8. L’anno di allenamento necessario non ti esime dal provare a trovare lavoro anche se non hai abbastanza esperienza, quello che sai fare ed hai imparato fallo valutare anche agli altri. Rischi di rimandare il tuo ingresso nel settore spaventato di non essere all’altezza

 

Ahi quanto a dir qual era è cosa dura

esta selva selvaggia e aspra e forte

che nel pensier rinova la paura!

–Dante Alighieri, Inferno, I Canto

 

Quindi quali sono le risorse da scegliere per intraprendere questo percorso?

Ecco le mie:

DataCamp.com

Ad Agosto 2017 ho iniziato a studiare su DataCamp.com ho seguito tutto il percorso per diventare DataScientist.

Consigliatissimo.

Il costo per un anno di accesso a tutti i corsi è di 130/180$ adesso non ricordo precisamente.

Ottimo investimento, corsi semplici, ma efficaci.

Questi corsi servono per una prima infarinatura sul Machine Learning e Python.

L’app mobile permette di allenarsi anche sul bus o in metro su concetti basilari.

Contro, non è assolutamente sufficiente per lavorare, sono necessarie altre risorse a supporto.

 

Python for Data Analysis: Data Wrangling with Pandas, Numpy, and IPython

Il link al libro *-> https://amzn.to/2NrqLuJ

E’ il libro scritto da Wes McKinney, l’autore della libreria Pandas, una delle più usate in Python per la manipolazione e pulizia dei dati.

Il libro me lo aveva regalato Marchetti quando ho cominciato questo percorso ed è stato una grande risorsa, perché gradualmente spiega tutto quello che è necessario sapere per la pulizia e manipolazione dei dati.

Ho impiegato un anno per studiarlo tutto e altri sei mesi servirebbero per ripassarlo ed allenarsi su tutti i concetti che vengono illustrati.

Il libro va letto, studiato, con il pc ed il notebook jupyter aperti.

In questo modo è possibile riprodurre in tempi brevi tutti i consigli ed esempi riportati nel testo.

Se non si mettono in pratica gli esempi riportati, anche modificandoli a piacere, il libro perde gran parte della sua efficacia.

 

Pratica

Questa parte è F-O-N-D-A-M-E-N-T-A-L-E

Ho avuto modo di fare pratica attraverso progetti di consulenza, progetti pro-bono, data set pubblici, durante gli step tecnici di alcuni colloqui di lavoro e lavorando su freelancer.com.

Il tempo viene dedicato in buona parte alla pulizia e manipolazione dei dati, è frustrante, ma è sempre così. 

Solo col tempo ed esperienza si diventa veloce in questa parte del lavoro.

Esistono tantissimi data set pubblici anche italiani dove acquisire dati e iniziare ad effettuare un po’ di Data  Visualization, inferenze e creare qualche modello di Machine Learning

Eccone alcuni:

 

C’è anche Kaggle

Kaggle è una piattaforma e comunity specifica per DataScientist.

Li sono presenti tantissimi dataset sui quali esercitarsi.

Avere un buon punteggio su Kaggle, partecipare alle competizioni è un’ottima strada per farsi notare da eventuali recruiter e poter dimostrare le proprie competenze

PostgreSQL

La conoscenza di SQL è la seconda skill più richiesta dopo Python negli annunci di lavoro.

Questo sulla base  delle job description analizzate (+100) per il lavoro di DataScientist a Londra

Un’ottima piattaforma gratuita per allenarsi è https://pgexercises.com/

Postgresql era uno dei DBMS più frequenti negli annunci, ne esistono anche altri, non sentitevi vincolati nella scelta.

 

Mentor

Un mentor tecnico è una risorsa chiave per vari motivi:

  • Ti sprona a fare di più
  • Può aiutarti in momenti di difficoltà a sciogliere subito eventuali nodi (ovviamente dopo che hai sbattuto la testa per almeno due giorni sul problema)
  • Rende umano un percorso fatto di numeri e righe di codice

Podcast

Esistono podcast di vario tipo sia su SoundCloud che su Spotify, ascoltarli permette nei tempi morti di essere aggiornati su tecnologie e trend del mercato.

Ingrediente Segreto

L’ingrediente segreto è uno ed uno solo: la passione

Se non vi emozionate davanti ad un bel grafico, se non vi incuriosisce la possibilità di pianificare e predire l’andamento delle vendite o valutare l’andamento delle azioni, se non impazzite all’idea di una nottata passata ad analizzare i processi esponenziali che potrebbero rappresentare la rottura di alcuni componenti elettronici, non iniziate questo percorso.

 

E’ la passione che muove tutto, le altre risorse sono secondarie.

Iniziate.

Fate.

Fate.

Fate.

Grazie per aver letto l’articolo!

Un abbraccio

Andrea

 

ps se ci sono errori di battitura o di grammatica scrivimi pure 🙂

*Con i link di affiliazione di Amazon potete aiutarmi a coprire le spese per il blog vi ringrazio in anticipo

 

Annunci

3 commenti

Archiviato in Hobby, Ingegneria

PCA spiegazione per fidanzati/mariti sfortunati prt 2

Non so se la mia spiegazione sulla PCA fosse chiara,non lo so, e ci riprovo.

E’ una tecnica che viene utilizzata molto frequentemente nel campo del Machine Learning, PCA sta a significare Principal Component Analysis.

Ora Immagina.

Per qualche sfortunata ragione, tu devi regalare una borsa alla tua ragazza/moglie/amante (e io nemmeno ai nemici lo auguro).

Immagina.

Tu e la tua conoscenza sul mondo delle borse.

Immagina.

Tu e la tua conoscenza che spazia dal trolley che usi dall’ultima gita a Praga del liceo, che tua madre e la tua ragazza vorrebbero buttare ma per te è ancora funzionante nonostante quella macchina enorme dovuta agli eccessi del tuo amico tale “ER Bresaola”, e finisce allo zaino tecnico porta pc, con esclusione della 24 ore che ti ha regalato Zio Gianni “perché ormai sei grande”.

Immagina.

TU, proprio TU, devi acquistare una borsa, o in romano ‘na borZa.

Photo by Artem Bali on Unsplash

Inizi a classificare i prodotti:

  • Range di costo (5-5000 €)
  • Marca (Cinese Sotto Casa-Mercato di Merce Parallela-Amazon-Alta Moda)
  • Colore(Blu-Rosso-Nero)(In almeno 216 tonalità diverse per colore)
  • Dimensione (Clutch-Trousse-Hobo Bag-Shopping Bag) (miserabile pensavi che si usasse il metro o il cm come da Sistema Internazionale di Unità di Misura)
  • Dove comprarla (Km Da casa tua 0-100km)
  • Come pagarla (Cash-Finanziamento a 20 anni-Bitcoin-Vai a Rubare perché sei povero)
  • Periodo di Analisi Intraperiodale (Primavera-Estate-Autunno-Inverno)
  • Periodo di Analisi Interperiodale (Outlet-Ultima Uscita)

Almeno 8 variabili di scelta, dura eh?

Purtroppo non puoi sottrarti dall’acquisto perché deve farti perdonare.

Non sai il motivo, lo ignori, ma c’è, in quanto uomo sbagli a prescindere e DEVI farti perdonare.

La PCA, ti aiuta a semplificare il problema ed i dati di input per la tua fatidica scelta.

Nel problema in esame alcune variabili sono in qualche modo ridondanti e assimilabili, ad esempio:

  • Come Pagarla
  • Marca
  • Range Di Costo

potrebbero essere aggregate in un’unica nuova variabile.

E’ molto probabile che se vai dal cinese sotto casa puoi aggregare sotto un unico cappello le variabili “Cash-Cinese Sotto Casa-5€” così come se vai ad effettuare l’acquisto in-quella-maison-che-non-va-nominata “Vai a Rubare perché sei povero- maison-che-non-va-nominata-5000€” possono anche loro essere aggregate.

Questo è quello che fa la tecnica PCA.

Stiamo quindi scartando le caratteristiche ridondanti?

No, anche perchè sappiamo benissimo che alla minimo passo falso si  rischia di aprire un caso di stato, tu nella tua classificazione  hai preso in considerazione TUTTE le variabili, ma le hai trasformate attraverso questa tecnica.

Questa domanda è importante perchè nel vecchio articolo parlavo di riduzione, ma questo non significa che scartiamo determinate varibili(in termini matematici stiamo effettuando una combinazione lineare)

La PCA permette di costruire delle nuove variabili aggregate significative nel processo di classificazione basandosi su quelle precedenti.

Con l’esempio precedente siamo passati da 8 variabili a 6.

Inoltre con la nuova trasformazione abbiamo identificato una variabile che può variare sensibilmente da borsa a borsa, questo elemento è di fondamentale importanza perché abbiamo identificato un elemento che permette di differenziare ed identificare (labeling) le varie tipologie.

Dal punto di vista matematico abbiamo identificato la nuova variabile caratterizzata dalla maggior varianza.

E’ per questo che si chiama “Componente Principale”, perchè è la variabile con varianza maggiore.

Ora che sappiamo come classificare le borse quale comprare?

Questo punto esula la tecnica PCA.

Nelle teoria classica del pensiero economico questo problema per l’uomo razionale non si porrebbe.

  • Volume da trasportare
  • Identificazione del costo minimo in rapporto al volume (€/cm3)

Purtroppo, non funziona così tranne nel mondo degli ingegneri, una analisi basata sugli acquisti storici della fidanzata/moglie/amante risolverebbe il problema, ma non è semplice.

“Essere ingegnere è praticamente una malattia. A una donna, moglie d’ingegnere si potrebbe chiedere:  “Signora, suo marito come sta? E’ ancora ingerere?” E lei potrebbe risponere: “No, adesso sta un po’ meglio” -Luciano de Crescenzo – I pensieri di Bellavista

Un’analisi delle frequenze delle caratteristiche degli acquisti passati, magari modellizzata attraverso il teorema di Bayes, potrebbe portarvi ad acquistare la “borsa più frequente” che non è quella “che la farebbe più felice”.

Quello che potete però fare è assegnare dei pesi alle varie variabili e quindi fare un’analisi delle frequenze pesate.

Un metodo potrebbe essere quello di assegnare un peso maggiore alle borse utilizzate il sabato sera, rispetto a quelle utilizzate tutti i giorni.

Scegliete successivamente il modello di borsa con la frequenza pesata maggiore e, con una certa probabilità, avrete scelto l’alternativa che massimizza l’obiettivo (o in altri termini minimizza l’errore).

La descrizione della PCA di questo articolo è estremamente qualitativa e semplifica molte ipotesi alla base. Nel precedente è possibile vedere come cambia la correlazione tra le variabili ed il p-value con un piccolo script in Python.

Quello che farò nell’ultimo post dedicato a questo strumento statistico sarà realizzare una spiegazione estremamente tecnica e sintetica corredata da un’opportuno script in Python.

Grazie per aver letto l’articolo!

Un abbraccio

Andrea

ps se ci sono errori scrivimi pure 🙂

Lascia un commento

Archiviato in Ingegneria, Tecnologia

Giugno dolci dati ed ottimizzazioni

La vita è sempre trionfo dell’improbabile e miracolo dell’imprevisto.


Sono tornato da Londra e sicuramente resterò qui in Italia fino a metà Luglio.

Da metà Marzo fino alla prima settimana di Maggio ho lavorato una catena che produce cupcakes Lola.

Il negozio era un chiosco all’interno della stazione di Marylebone, veramente una bella esperienza, mi sono divertito ed ho imparato molto.

 

Dopo una settimana ero responsabile dell’apertura del negozio.

Dopo tre settimane della chiusura

Dopo cinque settimane l’amministratore delegato è venuto a parlarmi perché voleva mettermi a capo di un progetto di riduzione degli sprechi di cibo dandomi accesso a tutti i dati storici sul fatturato e costi della società.

Come è successo?

Curiosità e noia.

La chiusura del negozio prevede la stesura di un report di fine giornata dove vengono inserite da parte dell’operatore (in questo caso io) informazioni relative a:

  • Fatturato effettivo della giornata
  • Target che era stato definito
  • Sprechi (i cupcakes sono freschi e vengono buttati a fine giornata)
  • Cosa l’azienda avrebbe dovuto fare diversamente da qui ad un anno
  • Idee creative che fossero venute in mente durante la giornata

Una cosa che mi aveva colpito mentre lavoravo era la differenza tra Fatturato – Target – Wastage che non sembrava ottimizzata. (spoiler: c’è un ampio margine di miglioramento 🙂 )

Così un giorno in cui c’erano pochi clienti e mi stavo annoiando ho aperto il pc e con largo anticipo ho iniziato a scrivere il report evidenziando che l’ordine quotidiano di dolci effettuato dalla store manager doveva basarsi su un modello predittivo (una regressione lineare) che considerasse una pluralità di variabili (dati storici sulle vendite, condizioni meteo, flusso di persone della stazione) e che c’era la necessità di studiare la correlazione tra le variabili del modello ed i dati storici.

A  seguito del mio report il CEO ha scritto una email alla store manager dicendole che voleva assolutamente parlarmi, mi ha portato a cena, mi ha proposto di occuparmi di realizzare il nuovo progetto per la riduzione degli sprechi di cibo una volta tornato dall’Italia e di fare la mia offerta economica per il progetto.

Attualmente sto lavorando a distanza, mi sto occupando di tutta una fase preliminare di analisi della quantità e qualità di dati effettivamente disponibili.

It’s easier to fool people than to convice them that they’ve been fooled


Oltre a questo progetto di riduzione degli sprechi, giovedì mi è stato proposto un ulteriore progetto sempre su Londra di ottimizzazione e big data, di questo non posso condividere ulteriori dettagli.

E’ un progetto molto complesso e se l’incarico dovesse essere confermato vedrà l’applicazione di almeno tre differenti algoritmi di Machine Learning.

Continua sempre il mio supporto all’Associazione di InnovAction Lab, ma devo essere più presente, siamo ancora in alto mare con il DB (colpa mia), l’ultimo evento su Roma è stato un flop, ma il BBQ di Agosto è già in agenda.

Per non farmi mancare nulla dovrò sistemare alcune questioni amministrative ed operative per l’azienda di famiglia e devo (da almeno due mesi) rifare il sito di Wheelab per raccontare quello che è stato,  il rinnovo del sito mi è stato suggerito e richiesto da molti recruiter.

Gli impegni per Giugno sono tanti, le energie sono sempre le stesse e non dormire sarebbe solo un problema per la produttività.

La produttività è sempre un tema particolare.

La nostra capacità di concentrazione è crollata sensibilmente, in alcuni casi paragonabile a quella di un pesce rosso (http://time.com/3858309/attention-spans-goldfish/) e purtroppo guardiamo lo schermo del cellulare ogni 10-12 minuti, circa 80 volte al giorno(http://www.businessinsider.com/dscout-research-people-touch-cell-phones-2617-times-a-day-2016-7?IR=T).

A ragione di questo ho deciso che temporaneamente per tutto il mese di Giugno non sarò presente sui social network. 

  • Eliminazione di Instagram-Linkedin-Twitter dal cellulare
  • Cambio password di Facebook e disconnessione dell’account

Quando sarà Luglio uscirò dalla caverna.

 

Se ci riuscirò scriverò qualche articolo sugli ultimi libri letti nei mesi passati, sto rispettando abbastanza bene la lista che avevo fatto a Gennaio.

Un abbraccio e grazie per aver letto il mio articolo.

 

Andrea

 

ps se noti qualche errore scrivimi pure

Lascia un commento

Archiviato in riflessioni, Scritti sparsi