Validació creuada

De Viquipèdia
Dreceres ràpides: navegació, cerca

La validació creuada o cross-validation és una tècnica utilitzada per avaluar els resultats d'una anàlisi estadística i garantir que són independents de la partició entre dades d'entrenament i prova. Consisteix a repetir i calcular la mitjana aritmètica obtinguda de les mesures d'avaluació sobre diferents particions. S'utilitza en entorns on l'objectiu principal és la predicció i es vol estimar com de precís és un model que es durà a terme a la pràctica.[1] És una tècnica molt utilitzada en projectes d'intel·ligència artificial per a validar models generats.

Esquema k-fold cross validation, amb k=4 i amb un sol classificador.[2]

Context[modifica | modifica el codi]

La validació creuada prové de la millora del mètode de retenció o holdout method. Aquest consisteix a dividir en dos conjunts complementaris les dades de mostra, realitzar l'anàlisi d'un subconjunt (anomenat dades d'entrenament o training set), i validar l'anàlisi en l'altre subconjunt (anomenat dades de prova o test set), de manera que la funció d'aproximació només s'ajusta amb el conjunt de dades d'entrenament i a partir d'aquí calcula els valors de sortida per al conjunt de dades de prova (valors que no ha analitzat abans). L'avantatge d'aquest mètode és que és molt ràpid a l'hora de computar. No obstant això, aquest mètode no és massa precís degut a la variació del resultats obtinguts per a diferents dades d'entrenament. L'avaluació pot dependre en gran mesura de quina és la divisió entre dades d'entrenament i de prova, i per tant pot ser significativament diferent en funció de com es realitzi aquesta divisió.Degut a aquestes mancances apareix el concepte de validació creuada.[3]

Mètode de retenció

Objectiu de la validació creuada[modifica | modifica el codi]

Suposem que tenim un model amb un o més paràmetres d'ajust desconeguts i unes dades d'entrenament que volem analitzar. El procés d'ajust optimitza els paràmetres del model perquè aquest s'ajusti a les dades d'entrenament tan bé com pugui. Si agafem una mostra independent com a dada de prova (validació), del mateix grup que les dades d'entrenament, normalment el model no s'ajustarà a les dades de prova tan bé com a les dades d'entrenament. Això s'anomena sobreajust i acostuma a passar quan la mida de les dades d'entrenament és petita o quan el nombre de paràmetres del model és gran. La validació creuada és una manera de predir l'ajust d'un model a un hipotètic conjunt de dades de prova quan no disposem del conjunt explícit de dades de prova.[4]

Tipus de validacions creuades[modifica | modifica el codi]

Validació creuada de K iteracions[modifica | modifica el codi]

En la validació creuada de K iteracions o K-fold cross-validation les dades de mostra es divideixen en K subconjunts. Un dels subconjunts s'utilitza com a dades de prova i la resta (K-1) com a dades d'entrenament. El procés de validació creuada és repetit durant k iteracions, amb cada un dels possibles subconjunts de dades de prova. Finalment es realitza la mitjana aritmètica dels resultats de cada iteració per a obtenir un únic resultat. Aquests mètode és molt precís, ja que avaluem a partir de K combinacions de dades d'entrenament i de prova, però tot i així té un desavantatge, i és que, a diferència del mètode de retenció, és lent des del punt de vista computacional.[4] A la pràctica, l'elecció del nombre d'iteracions depèn de la mida del conjunt de dades. El més comú és utlitzar la validació creuada de 10 iteracions (10-fold cross-validation).[5]

Validació creuada de K iteracions amb K=4.

Validació creuada aleatòria[modifica | modifica el codi]

Aquest mètode consisteix a dividir aleatòriament el conjunt de dades d'entrenament i el conjunt de dades de prova. Per a cada divisió la funció d'aproximació s'ajusta a partir de les dades d'entrenament i calcula els valors de sortida per al conjunt de dades de prova. El resultat final es correspon a la mitjana aritmètica dels valors obtinguts per a les diferents divisions. L'avantatge d'aquest mètode és que la divisió de dades entrenament-prova no depèn del nombre d'iteracions. Però en canvi amb aquest mètode hi ha algunes mostres que queden sense avaluar i d'altres que s'avaluen més d'una vegada, és a dir, els subconjunts de prova i entrenament es poden solapar.[6]

Validació creuada aleatòria amb k iteracions

Validació creuada deixant-ne un fora[modifica | modifica el codi]

La validació creuada deixant-ne un fora o Leave-one-out cross-validation (LOOCV) implica separar les dades de manera que per a cada iteració tinguem una sola mostra per a les dades de prova i tota la resta conformant les dades d'entrenament. L'avaluació ve donada per l'error, i en aquest tipus de validació creuada l'error és molt baix, però en canvi, a nivell computacional és molt costós, ja que s'han de realitzar un elevat nombre d'iteracions, tantes com N mostres tinguem i per a cada una analitzar les dades tant d'entrenament com de prova. [7]


Validació creuada deixant un fora (LOOCV)

Càlcul de l'error[modifica | modifica el codi]

L'avaluació de les diferents validacions creuades normalment ve donada per l'error obtingut en cada iteració, ara bé, per cada un dels mètodes pot variar el nombre d'iteracions, segons l'elecció del dissenyador en funció del nombre de dades total.[8]

Error de la validació creuada de K iteracions[modifica | modifica el codi]

En cadascuna de les k iteracions d'aquest tipus de validació es realitza un càlcul d'error. El resultat final l'obtenim a partir de realitzar la mitjana aritmètica dels K valors d'errors obtinguts, segons la fórmula:

{E} = \frac{1}{K} \sum_{i=1}^K E_i.

És a dir, es realitza el sumatori dels K valors d'error i es divideix entre el valor de K.

Error de la validació creuada aleatòria[modifica | modifica el codi]

En la validació creuada aleatòria a diferència del mètode anterior, agafem mostres a l'atzar durant k iteracions, tot i que d'igual manera, es realitza un càlcul d'error per a cada iteració. El resultat final també l'obtenim a partir de realitzar la mitjana aritmètica dels K valors d'errors obtinguts, segons la mateixa fórmula:

{E} = \frac{1}{K} \sum_{i=1}^K E_i.

Error de la validació creuada deixant un fora[modifica | modifica el codi]

En la validació creuada deixant un fora es realitzen tantes iteracions com mostres (N) tingui el conjunt de dades. De manera que per a cada una de les N iteracions es realitza un càlcul d'error. El resultat final l'obtenim realitzant la mitjana aritmètica dels N valors d'errors obtinguts, segons la fórmula:

{E} = \frac{1}{N} \sum_{i=1}^N E_i.

On es realitza el sumatori dels N valors d'error i es divideix entre el valor de N.

Mesures d'ajust[modifica | modifica el codi]

L'objectiu de la validació creuada consisteix a estimar el nivell d'ajust d'un model a un cert conjunt de dades de prova independents de les utilitzades per entrenar el model. Aquestes mesures obtingudes poden ser utilitzades per estimar qualsevol mesura quantitativa d'ajust apropiada per a les dades i el model. Per exemple, en un model basat en classificació binària, cada mostra es preveu com a correcta o incorrecta (si pertany a la temàtica o no), de manera que en aquest cas, la taxa d'error de classificació pot ser utilitzada per resumir l'ajust del model.

Exemples d'aplicació[modifica | modifica el codi]

  • La validació creuada es pot utilitzar per comparar els resultats de diferents procediments de classificació predictiva. Per exemple, suposem que tenim un detector que ens determina si una cara pertany a una dona o a un home i considerem que han estat utilitzats dos mètodes diferents, per exemple, màquina de vector de suport (support vector machines, SVM) i k veïns més propers (k nearest neighbors, KNN) que ens permeten classificar les imatges. Doncs amb la validació creuada podem comparar els dos procediments i determinar quin dels dos mètodes és més precís. Aquesta informació ens la proporciona la taxa d'error que obtenim en aplicar la validació creuada per cadascun dels mètodes plantejats.
  • La validació creuada de "k" iteracions (k-fold cross validation) ens permet avaluar també models en els que s'utilitzen diversos classificadors, per exemple, continuant amb el cas anterior, si tenim un detector que ens determina si en una imatge hi apareix un home o una dona, i aquest utilitza 4 classificadors binaris per detectar-ho, també podem utilitzar la validació creuada per avaluar la seva precisió. Si tenim un total de 20 dades (imatges), i utilitzem un 4-fold cross validation, es duran a terme 4 iteracions, i en cada una s'utilitzaran unes dades d'entrenament diferents, que seran analitzades per 4 classificadors, que posteriorment avaluaran les dades de prova, d'aquesta manera per cada mostra obtindrem 4 resultats, i si fem la mitjana entre els resultats de cada classificador i entre les 4 iteracions realitzades obtindrem el valor resultant final.
k-fold cross validation, amb k=4 i amb 4 classificadors.

Vegeu també[modifica | modifica el codi]

Enllaços externs[modifica | modifica el codi]

Referències[modifica | modifica el codi]

  1. Devijver, P. A., and J. Kittler, Pattern Recognition: A Statistical Approach, Prentice-Hall, London, 1982
  2. Jean-Philippe Lang, Predictors tutorial, Bioinformatic Department Projects
  3. Jeff Schneider, The holdout method, The school of computer science, 7 de Febrer de 1997
  4. 4,0 4,1 Payam Refaeilzadeh, Lei Tang, Huan Lui, k-fold Cross-Validation, Arizona State University, 6 de novembre de 2008
  5. FH Joanneum, Cross-Validation Explained, Institute for Genomics and Bioinformatics, 2005-2006
  6. Andrew W. Moore, Cross-validation for detecting and preventing overfitting, Carnegie Mellon University
  7. Charles Elkan, Evaluating Classifiers University of California, San Diego, 18 de gener de 2011
  8. Ricardo Gutierrez-Osuna, Leave-one-out Cross Validation Wright State University