# Validació encreuada

La validació encreuada —cross-validation en anglès— é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 és de precís un model que es durà a terme a la pràctica. És una tècnica molt utilitzada en projectes d'intel·ligència artificial per a validar models generats.

## Context

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 manera 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ó encreuada.

## Objectiu de la validació encreuada

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 sobre-ajust 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ó encreuada é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.

## Tipus de validacions creuades
### Validació encreuada de K iteracions

En la validació encreuada 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ó encreuada é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. A la pràctica, l'elecció del nombre d'iteracions depèn de la mida del conjunt de dades. El més comú és utilitzar la validació encreuada de 10 iteracions (10-fold cross-validation).

### Validació encreuada aleatòria

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.

### Validació encreuada deixant-ne un fora

La validació encreuada 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ó encreuada 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.

## Càlcul de l'error

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.

### Error de la validació encreuada de K iteracions

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ó encreuada aleatòria

En la validació encreuada 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ó encreuada deixant un fora

En la validació encreuada 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

L'objectiu de la validació encreuada 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ó

* La validació encreuada 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ó encreuada 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ó encreuada per cadascun dels mètodes plantejats.
* La validació encreuada de "k" iteracions (k-fold cross validation) 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ó encreuada 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.

## Referències

* ↑ «validació encreuada amb un». Termcat. [Consulta: 9 abril 2020].
* ↑ Devijver, P. A., and J. Kittler, Pattern Recognition: A Statistical Approach, Prentice-Hall, London, 1982
* ↑ Jean-Philippe Lang, Predictors tutorial Arxivat 2014-01-03 a Wayback Machine., Bioinformatic Department Projects
* ↑ Jeff Schneider, The holdout method, The school of computer science, 7 de Febrer de 1997
* 1 2 Payam Refaeilzadeh, Lei Tang, Huan Lui, k-fold Cross-Validation Arxivat 2011-09-05 a Wayback Machine., Arizona State University, 6 de novembre de 2008
* ↑ FH Joanneum, Cross-Validation Explained, Institute for Genomics and Bioinformatics, 2005-2006
* ↑ Andrew W. Moore, Cross-validation for detecting and preventing overfitting Arxivat 2011-08-10 a Wayback Machine., Carnegie Mellon University
* ↑ Charles Elkan, Evaluating Classifiers Arxivat 2011-12-18 a Wayback Machine. University of California, San Diego, 18 de gener de 2011
* ↑ Ricardo Gutierrez-Osuna, Leave-one-out Cross Validation Arxivat 2012-12-02 a Wayback Machine. Wright State University

## Vegeu també

* Aprenentatge automàtic.
* Aprenentatge supervisat.
* Regressió lineal.

## Enllaços externs

* Smarter-than-you machines, creat per V.V.V. (En anglès)
* Scientists worry machines may outsmart man, creat per John Markoff (En anglès)
* Inteligencia artificial. El hombre y las máquinas pensantes, creat per Edith Delgado (En castellà)
* The man-machine and artificial intelligence Arxivat 2007-06-07 a Wayback Machine., creat per Bruce Mazlish. Idees de l'any 1995. (En anglès)
* The concept of k-fold cross-validation Arxivat 2011-08-01 a Wayback Machine.. (En anglès)