El Blog de Trespams

Blog personal sobre tecnologia, gestió de projectes i coses que se me passen pel cap

Ciència per coincidència

En programació hi ha un concepte que es coneix com a "programació per coincidència". En  resum és programar sense pensar en el que se està fent, copiant i aferrant codi fins que es té un resultat satisfactori. Fins que tot explota, clar.

En els darrers anys m'he trobat que aquest concepte és perfectament extrapolable també al món de les dades. Et trobes amb presentacions que t'expliquen com s'han obtingut un resultats però sense saber massa bé el perquè. Quan algú pregunta per què s'ha aplicat un algorisme o un altre la resposta sol ser "perquè aquest funciona i l'altra no", així, sense més, com si tot és reduís a anar provant coses fins trobar-ne una que es sembli al que volem, però deixant el perquè ho està fent de banda. Si després alguna cosa canvia, i la vida real és així de dura,  l'algorisme deixa de funcionar  i es torna a començar el cicle, això sí amb les corredisses i conseqüències lligades.

Parlam de Machine Learning, Big Data, Business Inteligence, que ara és el que toca i tothom en fa, però realment a mi el que m'agrada es poder parlar de ciència de dades. I aquí tenim el punt, quan t'ho planteges com a una ciència apliques el mètode científic. Això va en contra de la metodologia de prova i error tant comú actualment. Partim de les dades i a partir d'aquí anam elaborant una hipòtesi, s'avalua i comprova amb la finalitat de guanyar coneixement o reavaluar els coneixements que ja teníem.

Això fa que les conclusions a les que arribam aplicant aquesta metodologia siguin molt més robustes, que la gent que ha fet feina en el problema plantejat es pugui adaptar als canvis i que sap el perquè una cosa funciona bé i altra no; quan adaptar l'algorisme, quan una millora ens servirà. En definitiva, passam de solucions basades en la coincidència a solucions conscients, basades en el coneixement.

Això però té un emperò. A una conferència on l'equip de dades d'APLS presentà uns resultats, una de les persones de la sala va demanar pel temps necessari per obtenir aquests resultats. La resposta van ser "mesos", ho va trobar molt. Potser aquí hi ha una part del problema, volem ciència però la volem ja, sense esperar, sense que ens importi saber què estem fent. Volem resultats amb estimacions de temps acurades sense adonar-nos que realment estam en un camp de coneixement que està evolucionant dia a dia.

No m'agrada la programació per coincidència i tampoc m'agrada la ciència de dades per coincidència. Saber què estàs fent pot ser més lent però més segur. L'aproximació que m'agrada és la que estam desenvolupant a APSL, on l'equip de dades és una mescla entre ciència de dades pura, programació, sistemes i intel·ligència de negoci. No hi ha una persona que fa Machine Learning, hi ha un equip de ciència de dades, equip que s'ha anat construint amb fonaments sòlids. On la part científica ha anat aprenent de la part de negoci, que coneix les possibilitats de la tecnologia i la capacitat de l'equip. On s'ha produït traspàs de coneixements de d'alt cap a abaix (de ciència cap a implementació) i també al contrari. I això sols es pot fer amb temps i inversió, és lent sí, però crec que és la manera de fer-ho.

La ciència de dades requereix paciència i un objectiu clar. La serendipitat es dóna i surt a les notícies, però normalment és una casualitat buscada i no un remenar dades a veure si surt alguna cosa. Això també està lligat amb la idea de que s'han d'emmagatzemar dades i ja veurem què en feim, o la postura contrària, que no fa falta perquè no saps mai el que estàs cercant. Les dues postures em pareixen incompletes.

Per mi s'han d'emmagatzemar les dades que ara mateix ja tenen sentit per al negoci i que actualment no s'estan guardant i fer-ho de manera que es puguin recuperar i tractar amb facilitat. Sols així serà possible tenir prou informació per començar un projecte de ciència de dades sense trobar-nos que no hi ha dades i s'ha d'esperar a recollir-les, o que pel contrari, n'hi ha tantes i en un format tan intractable que no té sentit considerar-les.

La clau de tot és ser conscients del perquè fem les coses. Sempre hi ha el risc d'estar equivocat, però no concebo ni la programació ni la ciència de dades com un joc de loteria.



blog comments powered by Disqus