Fork me on GitHub
#clojure-italy
<
2018-05-11
>
reborg09:05:18

Io non sono un data scienziato @justalanm, ma quando ho fatto esperimenti (tipo recommendation engine o fraud detection) ho usato clj. Mi chiedo pero' cosa voglia dire fare data science con un lnguaggio... alla fine sembra piu' un lavoro di data integration dove il linguaggio e' piu' glue code che altro. O no?

alan10:05:53

La data scienza è un processo con 4 macro fasi principali: - ETL - Feature engineering - Modellazione - Deploy In ambito business molto raramente queste operazioni vengono eseguite da una sola persona (a mio avviso la data scienza è una funzione, non un ruolo)

alan10:05:01

Mettiamo che siamo in 4, ognuno fa una macro task, però parliamo tutti lingue diverse. Quello a cui toccherà lo step finale di deploy rischia il suicidio...

alan10:05:38

Clojure mi piace molto perché è fortissimo e bello da usare per la prima e l'ultima fase, in parte anche per la seconda

alan10:05:02

Però per la fase di modellazione che si può suddividere in: - sperimentazione - valutazione - finalizzazione Clojure non è molto forte nelle ultime due

alan10:05:49

Ovviamente quando dico Clojure non intendo il linguaggio nudo, ma anche e soprattutto tutta una serie di tool e librerie (ad esempio in Python c'è scikit-learn)

reborg10:05:56

mi sembra un ottimo riassunto @justalanm dovresti sottomettere un talk 😁

alan10:05:41

Oddio, non mi sento ancora così ferrato su Clojure 😅

mdallastella12:05:17

@justalanm cosa manca secondo te per la fase di modellazione?

alan12:05:38

A parte tutta una serie di modelli (XGBoost, Catboost, e altri) mancano una serie di strumenti che non sono necessari, ma che sono molto utili: http://scikit-learn.org/stable/modules/classes.html#module-sklearn.metrics

alan12:05:04

L'esempio migliore che mi viene in mente è il modulo metrics (sopra) di sklearn

alan12:05:55

Il concetto è che vedendo molti che fanno questo mestiere, la maggior parte usa Python perché hanno imparato solo quel linguaggio, e lo hanno imparato perché esiste tutta queste serie di tool che gli facilita il lavoro in maniera esponenziale

mdallastella12:05:29

Quindi dici che è "solo" una questione di librerie, non di linguaggio, giusto?

alan12:05:45

Per me assolutamente sì, come diceva @reborg alla fine stiamo facendo un po' di ETL condita da un bel po' di matematica, quindi si può anche essere abbastanza agnostici riguardo il linguaggio

alan12:05:26

Tralasciando il fatto che se devo far imparare Clojure a qualcuno che già ha difficoltà ad uscire dalla propria comfort zone, e poi quando mi chiede "E come faccio la matrice di confusione?" e io gli rispondo "Eh, ti devi fare una funzione tu che faccia così e cosà..." mi mandano rapidamente a quel paese...

mdallastella12:05:12

Lazy programming nel vero senso del termine 😅 Comunque posso capire

mdallastella12:05:19

non so se ci siano librerie sviluppate sopra Neanderthal: https://neanderthal.uncomplicate.org/

alan12:05:44

Conosco Neanderthal, sono arrivato al punto di valutare l'opzione di iniziare a lavorarci io su una cosa simile

alan12:05:56

:rolling_on_the_floor_laughing:

mdallastella12:05:24

Cmq concordo, manca un framework per questo tipo di task

alan12:05:36

E a mio avviso è un peccato data la naturalezza di Clojure nel manipolare strutture dati anche grandi e complesse

manuel16:05:07

sembra l'occasione giusta per scrivere il pezzo mancante per il resto della community, no? 🙂

alan16:05:15

@manuel ho una mezza idea, ma non è né facile né una roba breve 😅

manuel16:05:34

no pressure 😉