accesskey_mod_content

Com preparar un conjunt de dades per machine learning i anàlisis

  • Escoltar
  • Copiar
  • Imprimir PDF
  • Compartir

"Notícia disponible únicament amb finalitats històriques i d'hemeroteca. La informació i enllaços mostrats es corresponen amb els quals estaven operatius a la data de la seva publicació. No es garanteix que continuïn actius actualment".

03 maig 2023

En el procés d'anàlisi de dades i entrenament de models d'aprenentatge automàtic, és fonamental comptar amb un conjunt de dades adequat.

El primer que cal tenir en compte en preparar les dades és saber el tipus de problema que s'intenta resoldre. Per exemple, si la teva intenció és crear un model d'aprenentatge automàtic capaç de reconèixer l'estat emocional d'algú a partir de les seves expressions facials, necessitaràs un conjunt de dades amb imatges o vídeos de cares de persones. O, tal vegada, l'objectiu és crear un model que identifiqui els correus electrònics no desitjats. Per a això, es necessitaran dades en format text de correus electrònics.

A més, les dades que es precisen també depenen del tipus d'algorisme que vulguis utilitzar. Els algorismes de  aprenentatge supervisat(Obre en nova finestra) , com la regressió lineal o els arbres de decisió, requereixen un camp que contingui el valor veritable d'un resultat perquè el model aprengui d'ell. A més d'aquest valor veritable, denominat objectiu, requereixen camps que continguin informació sobre les observacions, alguna cosa que es coneix com a característiques. En canvi, els algorismes de  aprenentatge no supervisat(Obre en nova finestra) , com la agrupació k-means o els sistemes de recomanació basats en el filtrat col·laboratiu, en general només necessiten característiques.

No obstant això, trobar les dades és només la meitat del treball. Els conjunts de dades del món real poden contenir tot tipus d'errors que poden fer que tot el treball resulti inútil si no es detecten i corregeixen abans de començar. En aquest post, anem a presentar alguns dels principals obstacles que pot haver-hi en els conjunts de dades per a l'aprenentatge automàtic i l'anàlisi, així com conèixer algunes maneres en què la plataforma de ciència de dades col·laborativa,  Datalore(Obre en nova finestra) , pot ajudar a detectar-los ràpidament i posar-los remei.

Les dades són representatives d'allò que es vol mesurar?

La majoria dels conjunts de dades per a projectes o anàlisis d'aprenentatge automàtic no estan dissenyats específicament per a aquesta fi. Mancant un diccionari de metadades o d'una explicació sobre el què signifiquen els camps del conjunt de dades, és possible que l'usuari hagi de resoldre la incògnita basant-se en la informació de la qual disposa.

Una forma de determinar el que mesuren les característiques d'un conjunt de dades és comprovar les seves relacions amb altres característiques. Si se suposa que dos camps mesuren coses similars, és d'esperar que estiguin molt relacionats. Per contra, si dos camps mesuren coses molt diferents, és d'esperar que no estiguin relacionats. Aquestes idees es coneixen com a  validesaconvergent i discriminant, respectivament.

Otra cosa important que cal comprovar és si algun dels trets està massa relacionat amb el públic objectiu. Si això ocorre, pot indicar que aquest tret està accedint a la mateixa informació que l'objectiu a predir. Aquest fenomen es coneix com “feature leakage” (fugida de característiques). Si s'empren aquestes dades, existeix el risc d'inflar artificialment el rendiment del model.

En aquest sentit, Datalore permet escanejar ràpidament la relació entre variables continues mediate el gràfic de correlació en la pestanya Visualitzar per un DataFrame. Una altra manera de comprovar aquestes relacions és utilitzant gràfics de barres o tabulacions creuades, o mesures de la grandària de l'efecte com el coeficient de determinació o la V de Cramér .

El conjunt de dades està correctament filtrat i net?

Els conjunts de dades poden contenir tot tipus d'inconsistències que poden afectar negativament als nostres models o anàlisis. Alguns dels indicadors més importants de dades brutes són:

  • Valors inversemblants: Això inclou valors que estan fora de rang, com els negatius en una variable de recompte o freqüències que són molt més altes o més baixes de l'esperat per a un camp en particular.
  • Valors atípics: Es tracta de  valors extrems(Obre en nova finestra) , que poden representar qualsevol cosa, des d'errors de codificació que es van produir al moment en què es van escriure les dades, fins a valors rars però reals que se situen fora del gruix de les altres observacions.
  • Valors perduts: El patró i la quantitat de dades que falten determinen l'impacte que tindran, sent els més greus els que estan relacionats amb l'objectiu o les característiques.

Les dades brutes poden minvar la qualitat de les seves anàlisis i models, en gran manera perquè distorsionen les conclusions o perquè condueixen a un rendiment deficient del model. La pestanya Estadístiques de Datalore permet comprovar fàcilment aquests problemes, ja que mostra d'un cop d'ull la distribució, el nombre de valors perduts i la presència de valors atípics per a cada camp. Datalore també facilita l'exploració de les dades en brut i permet realitzar operacions bàsiques de filtrat, ordenació i selecció de columnes directament en un DataFrame, exportant el codi Python corresponent a cada acció a una nova cel·la.

Les variables estan equilibrades?

Les  dades desequilibrades(Obre en nova finestra)  es produeixen quan els camps categòrics tenen una distribució desigual d'observacions entre totes les classes. Aquesta situació pot causar problemes importants per als models i les anàlisis. Quan es té un objectiu molt desequilibrat, es poden crear models mandrosos que encara poden aconseguir un bon rendiment simplement predient per defecte la classe majoritària. Posem un exemple extrem: tenim un conjunt de dades en el qual el 90% de les observacions corresponen a una de les classes objectiu i el 10% a l'altra. Si sempre prediguéssim la classe majoritària per a aquest conjunt de dades, seguiríem obtenint una precisió del 90%, la qual cosa demostra que, en aquests casos, un model que no aprèn gens de les característiques pot tenir un rendiment excel·lent.

Les característiques també es veuen afectades pel desequilibri de classes. Els models funcionen aprenent patrons, i quan les classes són massa petites, és difícil per als models fer prediccions per a aquests grups. Aquests efectes poden agreujar-se quan es tenen diverses característiques desequilibrades, la qual cosa porta a situacions en les quals una combinació concreta de classes poc comunes només pot donar-se en un grapat d'observacions.

Les dades desequilibrades poden rectificar-se mitjançant diverses tècniques de mostreig. El submuestreo (undersampling, en anglès) consisteix a reduir el nombre d'observacions a les classes més grans per igualar la distribució de les dades, i el sobremuestreo (oversampling) consisteix a crear més dades a les classes més petites. Hi ha moltes formes de fer-ho. Alguns exemples inclouen l'ús de paquets Python com  imbalanced-learn(Obre en nova finestra)  o serveis com  Gretel(Obre en nova finestra) . Les característiques desequilibrades també poden corregir-se mitjançant l'enginyeria de característiques, que el seu objectiu és combinar classes dins d'un camp sense perdre informació.

En definitiva, és representatiu el conjunt de dades?

A l'hora de crear un conjunt de dades, es té en ment un grup objectiu o target pel qual desitges que el teu model o anàlisi funcioni. Per exemple, un model per predir la probabilitat que els homes nord-americans interessats en la moda comprin una determinada marca. Aquest  grup objectiu(Obre en nova finestra)  és la població sobre la qual es vol poder fer generalitzacions. No obstant això, com no sol ser pràctic recopilar informació sobre tots els individus que constitueixen aquesta part de la població, en el seu lloc s'empra un subconjunt denominat  mostra(Obre en nova finestra) .

De vegades sorgeixen problemes que fan que les dades de la mostra per al model de  aprenentatge automàtic(Obre en nova finestra)  i l'anàlisi no representin correctament el comportament de la població. Això es denomina biaix de les dades. Per exemple, és possible que la mostra no capti tots els subgrups de la població, un tipus de biaix denominat biaix de selecció.

Una forma de comprovar el biaix és inspeccionar la distribució dels camps de les seves dades i comprovar que tenen sentit basant-se en el que un sap sobre aquest grup de la població. L'ús de la pestanya Estadístiques de Datalore permet escanejar la distribució de les variables contínues i categòriques d'un DataFrame .

S'està mesurant el rendiment real dels models?

Una última qüestió que pot posar-li en un destret és el mesurament del rendiment dels seus models. Molts models són propensos a un problema  anomenat sobreajuste(Obre en nova finestra)  que és quan el model s'ajusta tan bé a les dades d'entrenament que no es generalitza bé a les noves dades. El signe revelador del sobreajuste és un model que funciona extremadament bé amb les dades d'entrenament i el seu rendiment és inferior amb noves dades. La forma de tenir això en compte és dividir el conjunt de dades en diversos conjunts: un conjunt d'entrenament per entrenar el model, un conjunt de validació per comparar el rendiment de diferents models i un conjunt de prova final per comprovar com funcionarà el model al món real.

No obstant això, crear una divisió neta d'entrenament-validació-prova pot ser complicat. Un problema important és la fugida de dades, per la qual la informació dels altres dos conjunts de dades es filtra en el conjunt d'entrenament. Això pot donar lloc a problemes que van des dels obvis, com les observacions duplicades que acaben en els tres conjunts de dades, a uns altres més subtils, com l'ús d'informació de tot el conjunt de dades per realitzar el preprocesamiento de característiques abans de dividir les dades. A més, és important que els tres conjunts de dades tinguin la mateixa distribució d'objectius i característiques, perquè cadascun sigui una mostra representativa de la població.

Per evitar qualsevol problema, s'ha de dividir el conjunt de dades en conjunts d'entrenament, validació i prova al principi del seu treball, abans de realitzar qualsevol exploració o processament. Per assegurar-se que cada conjunt de dades té la mateixa distribució de cada camp, es pot utilitzar un mètode com train_test_split de  scikit-learn(Obre en nova finestra) , dissenyat específicament per crear divisions representatives de les dades. Finalment, és recomanable comparar les estadístiques descriptives de cada conjunt de dades per comprovar si hi ha signes de fugida de dades o divisions desiguals, la qual cosa es fa fàcilment utilitzant la pestanya Estadístiques de Datalore.

En definitiva, existeixen diversos problemes que poden ocórrer quan es preparen les dades per a l'aprenentatge automàtic i l'anàlisi i és important saber com mitigar-los. Si ben això pot ser una part que consumeix molt temps del procés de treball, existeixen eines que poden fer que sigui més ràpid i fàcil detectar problemes en una etapa primerenca.

Font original de la notícia(Obre en nova finestra)

  • Informació i dades del sector públic