PCA Parte Prima

Tra i vari progetti di Luglio e Agosto ci potrebbe essere un progetto di ottimizzazione dei costi per una società UK (non è la stessa dei cupcakes) che potrebbe richiedere l’applicazione della PCA.
In questo articolo (e forse anche un successivo) proverò a spiegare un concetto fondamentale e particolarmente utile.

Devo premettere che la trattazione è volutamente semplificata ed esistono persone decisamente più competenti e brave di me che illustrano (in inglese) l’argomento, Youtube è pieno.
Allora perchè un articolo supernoioso?

Semplice! Per me spiegare le cose è uno dei migliori metodi per apprendere.

Questo lo insegna il sommo Feyman, mica Ciccio Paduccio, maggiori info sul metodo di apprendimento Feyman qui -> https://www.focus.it/comportamento/scuola-e-universita/le-tre-regole-di-feynman-per-preparare-un-esame-e-imparare-tutto

 

Tornando a noi.

L’analisi in componenti principali, in inglese PCA, è una trasformazione lineare.

Fare una PCA è come prendere la lista dei 50 “capisardi” della vita e ridurli a 3:
“La femmina, il danaro e la mortazza”.

La PCA permette di ridurre le variabili identificando quelle realmente importanti(termine statisticamente insignificante) e non correlate tra loro (termine statisticamente fondamentale).

In termini tecnici è una trasformata, un operatore matematico, in questo caso lineare, che trasforma una funzione in un’altra funzione.

E’ molto utilizzata nell’ambito del Machine Learning nella risoluzione dei probelmi di regressione e classificazione perchè permette di ridurre il numero di variabili in gioco (feature reduction) considerando quelle fondamentali.

Nell’esempio che vi propongo, si è applicata la PCA non tanto per ridurre il numero di variabili (che è rimasto il medesimo 2), ma per decorrelarle

E’ una versione leggermente modificata di un esercizio di DataCamp.Com di questo capitolo (https://www.datacamp.com/courses/unsupervised-learning-in-python).

Nella prima fase dell’esempio si studia la correlazione tra due variabili e nella seconda parte si applica una PCA

Sono stati presi 209 semi e si è misurata la loro lunghezza e larghezza e le informazioni sono state salvate in un file *csv

Inzialmente ho realizzato uno scatter plot per vedere quale fosse la correlazione tra le due variabili ed ho calcolato il coefficiente di pearson, successivamente ho applicato una PCA per decorrelare le due variabili e identificare le componenti principali che definiscono due nuove variabili, dove quella con la maggiore varianza raprpesenta il primo asse, mentre la seconda quella con varianza minore.

Nel caso noi avessimo avuto m variabili e dalla PCA avessimo ottenuto n variabili, con m>n, allora il secondo asse sarebbe stato descritto dalla seconda variabile con varianza maggiore, il terzo asse con la terza variabile con varianza maggiore fino alla n-essima variabile.

Nei prossimi articoli cercherò di illustrare meglio il concetto con esempi pratici, fino a quando non riuscirò a elaborare un articolo dal titolo “PCA Guida definitiva” o “PCA spiegata a mia nonna”.

In [10]:
#Analisi PCA 
# Importiamo le librerie necessarie matplot scipy.stats e pandas 
import matplotlib.pyplot as plt
from scipy.stats import pearsonr
import pandas as pd
#Carichiamo il file 
grains=pd.read_csv("seeds-width-vs-length.csv")
#Vediam sempre di che si tratta e come si caratterizzano i nostri dati
print(grains.info())
print(grains.describe())
#Estraiamo dal dataframe solo i valori per poter successivamente lavorare con specifici array
grains=grains.values
#La 0-sima colonna del dataframe rappresenta la larghezza
width = grains[:,0]

#La 1-a colonna del dataframe rappresenta la lunghezza
length = grains[:,1]

# Grafichiamo tutto con uno scatter plot larghezza-lunghezza
plt.scatter(width, length)
plt.axis('equal')
plt.show()

#Calcoliamo il coefficiente di pearson detto anche coefficente di correlazione lineare ed il p-value dei dati
correlation, pvalue = pearsonr(width,length)

# Visualizziamo in due valori appena calcolati
print("Correlazione tra le due  variabili larghezza e lunghezza", round(correlation, 4))
print("P-value dei dati",pvalue)
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 209 entries, 0 to 208
Data columns (total 2 columns):
3.312    209 non-null float64
5.763    209 non-null float64
dtypes: float64(2)
memory usage: 3.3 KB
None
            3.312       5.763
count  209.000000  209.000000
mean     3.258349    5.627890
std      0.378603    0.444029
min      2.630000    4.899000
25%      2.941000    5.262000
50%      3.232000    5.520000
75%      3.562000    5.980000
max      4.033000    6.675000
Correlazione tra le due  variabili larghezza e lunghezza 0.8604
P-value dei dati 1.5696623081483666e-62

Addesso possiamo valutare quelle che sono le componenti principali della nostra distribuzione e decorrelarre le due variabili attraverso una PCA

In [4]:
#Carichiamo il modulo della libreria che ci interessa per l'operazione
#PCA Analysis 
# Import PCA
from sklearn.decomposition import PCA

#Creiamo l'istanza pca modello
modello = PCA()

# Applichiamo il metodo fit_transform method al nostro dataset sul grano
#Otterremo un nuovo array con due nuove variabili decorrelate
pca_features = modello.fit_transform(grains)

# Assegniamo la 0-sima colonna di pca_features alla variabile xs
xs = pca_features[:,0]

# Assegniamo la 1-a colonna di pca_features alla variabile ys
ys = pca_features[:,1]

# Grafichiamo tutto con uno scatter plot le due nuove variabili
plt.scatter(xs, ys)
plt.axis('equal')
plt.show()

# Calcoliamo coefficiente di pearson per le due nuove variabili xs ys
correlation, pvalue = pearsonr(xs, ys)

# Visualizziamo i due risultati approssimati
print("Correlazione tra le due nuove variabili xs ed ys", round(correlation,4))
print("P-value dei dati",pvalue)
Correlazione tra le due nuove variabili xs ed ys -0.0
"P-value dei dati 1.0
Annunci

1 Commento

Archiviato in Ingegneria

Back In Black

Giugno è stato un mese veramente intenso!

Partiamo dalle cose importanti, sono riuscito a rivedere con un aperitivo di InnovAction Lab Roma Nicola Greco!

L’ultima volta che l’avevo visto era due tre anni fa a Roma, insieme ad Enrico Bruschini, prima che entrasse al MIT a Boston, avevamo organizzato una cena molto ruspante a base di pomodori e mozzarella di bufala nel periodo di Natale. Ora  sta lavorando per File Coin l’azienda che ha realizzato la più grande ICO  Italiana (257 Milioni di dollari)

Non so spiegare bene cosa facciano questo video invece ci riesce egregiamente:

Inoltre sia il Negroni Sbagliato che il Cosmopolitan erano fatti a regola d’arte, particolare che non mi sento di trascurare.

Cambiando discorso, vi rircordate il rapporto che dovevo realizzare per la società di dolci?

La stesura del rapporto è quasi finita, tanto sudore e matrici, ma forse è più corretto chiamarlo “modello predittivo” che rapporto.

Se ho fatto bene i conti, forse, sono riuscito ad implementare una regressione linerare polinomiale che garantisce una accuratezza migliore del 50% sulle stime (per i tecnici del mestiere, valutazione effettuata su un campione di dati che ho splittato nel classico 70/30, con il tempo forse nei prossimi giorni implementerò una crossvalidation del modello)

Nonostante questo la presentazione del lavoro è ancora mediocre, senza considerare l’inglese con la quale l’ho scritta, anche questo da migliorare.

 

Tutto procede come imprevisto

Sarei dovuto ripartire a breve, fino ad un mese fa questo era il programma,  ma uno dei lavori che sto curando qui in Italia durerà fino a fine Settembre.

Ovviamente Tramontana (fondatore di una delle pagine italiane facebook più importanti di psicologia “Talking“)aveva previsto la mia permanenza estiva qui in Italia già in tempi non sospetti vincendo una scommessa.

Puoi leggere, leggere, leggere, che è la cosa più bella che si possa fare in gioventù: e piano piano ti sentirai arricchire dentro, sentirai formarsi dentro di te quell’esperienza speciale che è la cultura – Pier Paolo Pasolini

Vi ricordate la mia lista di libri?

Sto ancora leggendo Conrad Heart Of Darkness in lingua inglese e  nonostante siano solo un 100 di pagine ho scoperto di avere un dizionario veramente limitato

(Questo il link se volete prenderlo su Amazon)
Sabato mattina mi sono segnato tutte le ultime parole che avevo letto e delle quali non conoscevo il significato ed ho creato queste scorecard su Quizlet che potete usare.

https://quizlet.com/_50wbpb

Visto che io mi scordo tutto, in questo modo posso rileggere a distanza di tempo i termini che non conoscevo e rinforzare il processo di memorizzazione.

Il libro è particolare, le descrizioni dei luoghi molto belle, ma sicuramente non è un libro “allegro”.

Era dalla scorsa estate che non leggevo un romanzo, in generale mi sento più propenso alla lettura di saggi e libri tecnici, ma ogni tanto bisogna variare.

 

Se vuoi andare veloce vai da solo, se vuoi andare lontano vai in compagnia – Antico Proverbio Africano

 

Giovedì ho partecipato ad una conferenza sulle Reti Neurali da Enlabs.

Le reti neurali sono dei modelli matematici che simulano il funzionamento di una rete neurale biologica in modo estremamente semplificato.

Rientra nel fantastico mondo del Machine Learning e dell’Intelligenza Artificiale.

I campi di applicazione  sono veramente disparati, il dipartimento di Ingegneria Civile di Roma Tre negli anni ’90 (credo) , li utilizzava per determinare le cause degli incidenti stradali e trattati nel corso di Teoria delle Infrastrutture Viarie 

Durante la conferenza è stato presentato questo video meraviglioso:

Personalmente gli attuali sviluppi tecnologici delle reti neurali che più mi affascinano sono:

  • Individuazione dei tumori alla pelle attraverso analisi delle immagini con una precisione superiore a quella media dei dermatologi  https://cs.stanford.edu/people/esteva/nature/
  • Predizione della domanda/valore di determinate azioni in borsa
  • Riconoscimento di immagini ed elementi all’interno di queste sempre più sofisticati, esempio per analisi preliminari di immagini satellitari per valutare il cambiamento di fiumi, corsi d’acqua ecc… potrebbero essere utilizzati ad esempio nella lotta all’abusivismo edilizio

Personalmente con python e l’analisi dati mi sto affacciando ai modelli ARIMA sulle serie storiche ed anche in questo ambito, dei modelli predittivi, i risultati che stanno dando le reti neurali sono molto positivi in alcuni casi migliori dei modelli ARIMA come mostrato in questo studio https://www.hindawi.com/journals/jam/2014/614342/.

 

 

L’ultima grande scoperta di Giugno è http://philosophizethis.org l’autore del sito ha su spotify un podcast di Filosofia (in Inglese) spettacolare!

Capisco che per alcuni la cosa è strana (già mi è stato evidenziato da più persone), ma avere la possibilità di riscoprire Hegel, Sant’Agostino o la Scuola di Fracoforte mentre si è in treno o bloccati nel traffico è meraviglioso.

 

Un abbraccio e grazie per aver letto il mio articolo.

 

Andrea

 

ps se noti qualche errore scrivimi pure, se ti è piaciuto ricondividilo! 🙂

 

Lascia un commento

Archiviato in riflessioni, Scritti sparsi, Viaggi

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

Innovazione PI-Campus e riflessioni

Il piano di ieri era quello di andare a tornare in giornata da Roma per l’evento del PI-Campus con Carlo Gualandri e Roberto Bonanzinga.

La realtà però è sempre diversa e così, dopo l’evento, mi sono ritrovato a mezzanotte all’inizio del concerto dei Punkreas all’Acrobax in giacca, camicia e pantalone (la foto con occhiaie rende meglio).


Sveglia alle 07 e treno del ritorno per la CaliFormia alle 8:30, fortunatamente ho dormito a casa di due InnLaber, Giorgia e Stefano, Innlab 13.

Il livello qualitativo dell’evento del PI-Campus era elevatissimo, sia per gli oratori che per i partecipanti.

Carlo è stato il fondatore di:

  1. virgilio.it
  2. Fineco
  3. Gioco Digitale

Roberto invece ha lavorato per 7 anni in una delle società di Venture Capital più importanti d’Europa Balderton Capital ed ha investito in:

  • Banjo
  • BlingNation
  • Contentful
  • Depop
  • FutureAdLab
  • LIfeCake
  • SaatchiArt
  • Storylane
  • Tictail
  • Vivino
  • Wooga

A questo aggiungo che è stato veramente un piacere rivedere buona parte della comunità romana di InnovAction Lab ed in particolare essere aggiornato sui loro progetti, i loro successi e, capita, insuccessi (ndr. purtroppo si notava l’assenza di Guglielmo Innlab ’12, Salvucci Innlab ’12, De Carlo Innlab ’13 e Giulio Innlab ’14).

Dall’evento, sia durante la conferenza di Carlo e Roberto, sia durante il successivo aperitivo, sono nate e ri-nate molte riflessioni:

  • Se fondi un’azienda o startup il valore creato per il cliente sarà nella tecnologia innovativa o nel servizio.  Un errore che spesso noto (e che ho commesso anche io con Wheelab) è il focus sui problemi tecnologici e non sui problemi inerenti all’organizzazione del servizio che si vuole offrire
  • Commettere errori è accettabile (non positivo), nel momento in cui stai testando delle ipotesi della tua idea, se commetti errori senza aver elaborato delle ipotesi stai sprecando tempo e denaro, probabilmente nemmeno tuo, ma quello di altri. Su questo punto Roberto è stato chiarissimo “Quando decido in quale startup investire il foglio excel mi interessa per capire come allocheranno nei prossimi 12 mesi i soldi che gli darò, questo è un mestiere fondato sulle eccezioni”
  • La vecchiaia ti porta irreparabilmente ad avere meno energie e, si spera, più esperienza. L’esperienza ti permette di commettere meno errori e conseguentemente risparmiare energie.
  • I founder sono fondamentali, passerai molto più tempo con loro che con tua moglie (ma sarà sempre lei la risposta alla domanda di Ruben(Innlab ’12):  “Cosa ti toglie il fiato in questo periodo?”)
  • Se un determinato processo umano in azienda è ripetuto con una certa frequenza è possibile automatizzarlo?
  • Costruire un’azienda è difficilissimo, farlo in Italia ancora di più, non c’è nessun premio per chi partecipa ad una maratona con una borsa piena di mattoni e non riesce a terminarla, se ci sono ambienti più favorevoli bisogna spostarsi
  • Silvio Gulizia, Innlab 13, caro amico, ha scoperto che esiste un BBQ InnLab che si tiene ogni anno il primo venerdì dopo ferragosto e quest’anno è alla sesta edizione, meglio tardi che mai
  • Per la sesta edizione del BBQ Innlab si stanno già organizzando con le macchine da Bari
  • I tramonti di Roma sono un’emozione immensa, ieri il cielo era terso ed al calar del sole uno spicchio di luna illuminava la Capitale, chi corre con i mattoni lo fa’ per amore, lo capisco pienamente

 


Dopo l’evento, il tutto casualmente, siamo scappati in un’altra villa del PI-Campus a giocare a biliardino, un bagno di sangue, sono vergognosamente fuori allenamento. Successivamente siamo andati al concerto dei Punkreas per l’uscita del loro nuovo EP all’Acrobax.

Sono tornato temporaneamente da Londra e di cose da raccontare ce ne sono tantissime, appena ho un attimo di respiro le racconterò tutte, purtroppo Maggio con tutte queste comunioni è un momento duro, a tratti durissimo.

Lascia un commento

Archiviato in Startup, Tecnologia

Aggiornamenti su questa residenza Londinese

Sono passati ormai due mesi da questa mia permanenza in UK, sono cambiate e successe diverse cose.

Al clima, sempre variabile, ormai ho fatto l’abitudine. Sono riuscito ad andare a correre sotto la neve, quindi considero il peggio passato, se, e solo se, i miei amici la smettessero di inviarmi le foto al tramonto di Formia e Gaeta, a questo non mi abituerò mai.

In questi mesi mi sono dedicato alla panificazione, disciplina fantastica che non conoscevo e che mi sta particolarmente divertendo. Ho iniziato così a preparare il pane in casa con lievito di birra, farina, acqua e sale.

Pane.PNG

Sto continuando a studiare e cercare lavoro come Data Scientist, in particolare sto approfondendo PostgreSQL, ho trovato questo sito veramente interessante e di supporto.

Purtroppo verso fine Febbraio ho dovuto fare i conti con il mio inglese e con l’affitto.

Un caro amico mi aveva detto che facevo un po’ di errori che andavano corretti, inoltre quando parlavo con i recruiter spesso mi bloccavo per l’ansia, così ho deciso di scegliere, temporaneamente, un lavoro che mi permettesse di migliorare forzatamente la lingua e di pagare le spese di casa.

Cercando su Indeed e consegnando anche il CV a mano sono riuscito ad accedere alla primo colloquio per lavorare presso Lola Cupcakes, successivamente ho effettuato una giornata di prova di due ore e sono stato assunto.

Oltre a questo lavoro per migliorare la mia padronanza linguistica continuo a seguire delle lezioni di inglese su Fluentify durante il weekend, così che possa avere un insegnante che corregga i miei errori.

Quindi ricapitolando, verso gli inizi di Marzo è cominciata ufficialmente la mia avventura come Sales Assistant presso Lola Cupcakes, una catena di pasticcerie che vende torte e cupcakes.

Lavoro presso la stazione di Marylebone, ogni mattina da un megalaboratorio arrivano alla stazione delle torrette con vari scompartimenti contenenti i cupcakes, che sono stati preparati durante la notte, io mi occupo di “creare il display”, venderli e fare in modo che sia tutto pulito.

E’ abbastanza faticoso, perché devo stare tutto il giorno in piedi, gli orari sono o 07:30-15:30 o 13:00-21:00 per 7.80£/h, ma nonostate la fatica è un’esperienza interessante sotto vari aspetti:

  • Posso pagarmi l’affitto, senza chiedere soldi alla mia famiglia
  • L’organizzazione del lavoro è molto strutturata e (quasi) nulla è lasciato al caso
  • Sin dalla seconda settimana ho avuto la responsabilità di aprire da solo il punto vendita di Marylebone
  • Dalla terza settimana ho iniziato ad occuparmi della chiusura del negozio (Gestione delle rimanenze, aggiornamento del database contenente le informazioni giornaliere su fatturato/# di clienti, raggiungimento o meno del target di fatturato, % di dolci buttati)
  • Parlo costantemente in inglese

Purtroppo questo ha determinato un rallentamento del lavoro sia sul mio canale YouTube, sia su lovabledata.com, perché nel poco tempo libero che mi rimane:

  • Sto cercando offerte di lavoro come Junior Data Scientist
  • Ho iniziato un progetto di analisi dati sull’accessibilità dell’istruzione e le disuguaglianze sociali con un mentor tecnico
  • Sono il City Manager di Londra dell’Associazione Alumni InnovAction Lab

 

Questo è un tipico pranzo domenicale degli  Alumni di InnovAction Lab iniziato alle 13:00 e finito alle 22:00.

29594764_10213509652807861_4066855351748202328_n

Nonostante tutte queste attività e circa 40h di lavoro settimanali, cerco di  andare a correre con una certa costanza almeno due volte a settimana e continuo a leggere cercando di sfruttare anche solo i 30 min di pausa pranzo che ho a disposizione. Attualmente ho finito un libro di poesie di Pablo Neruda , carino, e sto per finirne un altro di Alda Merini La vita facile: 1 che è ancora più bello, veramente emozionante. Devo ringraziare Ludo che me li ha regalati e fatti scoprire, visto che compro sempre saggi tecnici.

Un abbraccio

 

Lascia un commento

Archiviato in Scritti sparsi, Viaggi

Le 25 skills più richieste per un Data Scientist (tratto da una storia vera) prt 1

Non è facile essere un wannabe Data Scientist

Essere un Data Scientist è veramente difficile, essere un Data Scientist autodidatta ancora peggio.

Il tempo non è mai abbastanza, c’è bisogno di focalizzarsi e focalizzarsi verso quello che il mercato del lavoro vuole, in questo modo ci saranno più possibilità di farcela, almeno all’inizio.

Dove focalizzarsi?

Sono sempre convinto che bisogna definire una strategia di medio termine e seguirla con pazienza, altrimenti si rischierà di essere distratti da tutte le informazioni provenienti dalla rete.

Verso Settembre 2017 fino ad oggi, molto spesso dopo aver inviato il mio CV per annunci di lavoro come Data Scientist ho segnato manualmente su Google Foglio le competenze richieste per quel ruolo

Ho superato più di 430 righe ognuna contenente una informazione.

Oggi ho deciso di analizzare questo CSV in modo da capire quali fossero le competenze più richieste come Data Scientist ed esercitarmi.

In [80]:
#importing the libraries 

import pandas as pd
import matplotlib.pyplot as plt
In [40]:
csvname= "skill.csv"
df= pd.read_csv(csvname,sep= ",", header=None, index_col=False)
print(df.head(30))
                             0    1
0                       Agile   NaN
1                           AI  NaN
2                    Algorithm  NaN
3                    Algorithm  NaN
4                   Algorithms  NaN
5                    Analytics  NaN
6                      Apache   NaN
7                      Apache   NaN
8                          API  NaN
9   Artificial neural networks  NaN
10                         AWS  NaN
11                         AWS  NaN
12                         AWS  NaN
13                         AWS  NaN
14                         AWS  NaN
15                         AWS  NaN
16                         AWS  NaN
17                         AWS  NaN
18                       Azure  NaN
19                       Azure  NaN
20                       Azure  NaN
21                       Azure  NaN
22                       Azure  NaN
23              Bayesian Model  NaN
24              Bayesian Model  NaN
25              Bayesian Model  NaN
26         Bayesian Statistics  NaN
27                          BI  NaN
28                          BI  NaN
29                         BI   NaN
30                    Big Data  NaN
31                    Big Data  NaN
32                    Big Data  NaN
33                    Big Data  NaN
34                    Big Data  NaN
35                    Big Data  NaN
36                    Big Data  NaN
37                    Big Data  NaN
38                    BIgQuery  NaN
39                    BIgQuery  NaN
In [34]:
print(df.columns)
Int64Index([0, 1], dtype='int64')
In [50]:
df.columns=['skills','vuota']
In [51]:
print(df.head())
       skills vuota
0      Agile    NaN
1          AI   NaN
2   Algorithm   NaN
3   Algorithm   NaN
4  Algorithms   NaN
In [65]:
df_skill=pd.DataFrame(df.iloc[:,0], columns=['skills'])
print(df_skill.head(5))
       skills
0      Agile 
1          AI
2   Algorithm
3   Algorithm
4  Algorithms
In [71]:
print(df_skill.info())
RangeIndex: 423 entries, 0 to 422
Data columns (total 1 columns):
skills    423 non-null object
dtypes: object(1)
memory usage: 3.4+ KB
None
In [84]:
df_skill_grouped=df_skill.groupby(['skills']).size().sort_values(ascending=False)
In [85]:
print(df_skill_grouped)
skills
SQL                                        37
Python                                     36
Spark                                      16
Python                                     13
Handoop                                    12
Scala                                      10
Scikit Learn                               10
NLP                                        10
Machine Learning                           10
Statistics                                 10
AWS                                         8
Big Data                                    8
NOSQL                                       7
Kafka                                       7
TensorFlow                                  6
Tableau                                     6
Pandas                                      5
Numpy                                       5
Azure                                       5
SQL                                         5
Machine learning                            5
Financial Systems                           4
Predictive Model                            4
Neural Networks                             4
C++                                         4
Machine Learning                            4
Go                                          3
Bayesian Model                              3
MapReduce                                   3
Clustering                                  3
                                           ..
Sentiment Analysis                          1
NLP                                         1
Scraping                                    1
NOSQL                                       1
Naive Bayes classifier                      1
Natural language processing                 1
Numpy                                       1
Linear Model                                1
Latent semantic indexing                    1
Pig                                         1
Hashmaps                                    1
Flask                                       1
Flink                                       1
Gis                                         1
GitHub                                      1
Testing Software                            1
Google 360                                  1
Gradient Boosted Machine                    1
TF-IDF                                      1
Plotly                                      1
T-SQL                                       1
Html                                        1
Information Extraction                      1
Instantaneously trained neural networks     1
JQuery                                      1
JSON                                        1
Java                                        1
JavaScript                                  1
Jira                                        1
AI                                          1
Length: 150, dtype: int64
In [90]:
df_skill_grouped.head(25).plot.bar()
 25 skills
Queste analisi devono evidentemente essere migliorate:

 

1) Implementare delle Regex, in questo modo potrò correggere velocemente gli errori di battitura ed essere più preciso (ad esempio nel grafico si vede che “Python” e “Python ” (con spazio finale) sono stati trattati come elementi differenti

 

2) Web Scraping degli annunci di lavoro ai quali ho risposto per estrarre automaticamente le competenze richieste ed aggiornare automaticamente il foglio Google

 

3) Migliorare il codice del Pomodoro Workout Analyzer così da essere più consapevole dicome sto gestendo le ore di esercizio con Python.

 

Un abbraccio e grazie per aver letto il mio articolo.

 

Andrea

 

ps se noti qualche errore scrivimi pure

 

1 Commento

Archiviato in Ingegneria, riflessioni

La differenza tra Vincere ed avere Successo secondo John Wooden

Col nuovo anno Alessandro mi aveva girato questo video del TED di John Wooden

John Wooden è stato un allenatore di pallacanestro e cestista statunitense.

E’ stato il tecnico più vincente della storia del basket collegiale USA alla guida degli UCLA Bruins.

Nel video del TED definisce dei punti chiave sia sul successo che sull’insegnamento.

No written word, no spoken plea can teach our youth what they should be.
Nor all the books on all the shelves, it’s what the teachers are themselves.

Ha anche citato la sua piramide del successo, non è andato nel dettaglio, ma è molto interessante.

In cima a tutto troviamo la pazienza ed “il crederci”.

Un concetto quello della pazienza che ritorna in discorsi già visti(“La vita è fatta di centimetri” Al Pacino in Ogni Maledetta Domenica o “There is NO Overnight Success” di Gary Vay) denominatore comune per qualsiasi obiettivo che si voglia raggiungere.

Focus sull’obiettivo ed allenamento costante.

Il punto interessante del talk è stata la sua definizione di successo.

La definizione è nata dopo alcune discussioni con dei genitori mentre insegnava in Indiana:

“Il successo rappresenta la serenità acquisita esclusivamente attraverso la soddisfazione personale nel sapere che hai dato il massimo rispetto al tuo potenziale.

Se tu ti impegni al meglio in ciò che sei capace di fare cercando di migliorarti (performance, risultati ecc) allora avrai raggiunto il successo.
E’ simile alla differenza tra carattere e reputazione, la reputazione è ciò che le persone percepiscono di te, il carattere è ciò che realmente sei.

Io penso che il carattere sia molto più importante di quello che gli altri pensino di te. “

Gran bel video!

Lascia un commento

Archiviato in riflessioni