Balidazio gurutzatua edo cross-validation analisi estatistiko baten emaitzak ebaluatzeko, eta entrenamendu datuen eta proba datuen arteko partiketarekiko independenteak direla bermatzeko erabili ohi den teknika bat da. Ingurunearen xedea iragarpena denean eta etorkizunean praktikara eramango den modelo baten[1] zehaztasuna estimatu nahi denean erabiltzen da. Batez ere, adimen artifizialeko proiektuetan aurkitu dezakegu teknika hau, sortutako modeloak baliozkotzat jotzeko asmoz. Partiketa ezberdinen ebaluazio neurrietatik lortutako batezbesteko aritmetikoa kalkulatzean eta errepikatzean datza.

Bideo hau Ikusgela proiektuaren parte da.
Bideo hau Ikusgela proiektuaren parte da. Bideoak dituzten artikulu guztiak ikus ditzakezu hemen klik eginez gero.
Adimen artifiziala ulertzeko bideoa.

Testuingurua aldatu

Balidazio gurutzatua atxikitze metodoaren hobekuntza bat da. Azken hori lagin bat bi multzo osagarritan zatitzean, azpimultzo baten (entrenamendu datuak) analisia egitean eta analisia beste azpimultzoarekin (proba datuak) baliozkotzean datza. Hortaz, hurbilpen-funtzioa entrenamendu datuen azpimultzoarekin doitzen da soilik, eta hortik aurrera proba datuen azpimultzoarentzat irteera balioak kalkulatzen ditu (aurretik analizatu gabeko balioak). Kostu konputazional baxuko metodoa denez, oso azkar kalkula daiteke, hori izanik bere abantailarik handiena. Halere, aipatutako metodoa ez da guztiz zehatza, entrenamendu datu ezberdinentzako emaitzen aldakuntza kontuan hartu behar baita. Izan ere, entrenamendu datuen eta proba datuen arteko banaketa egiterakoan, berorren mende dago ebaluazioa. Gabezia horien ondorioz, baliozkotze gurutzatua sortzen da[2].

 
1.Irudia: Atxikitze metodoaren adierazpen grafiko bat, iterazio batean erabiltzen diren datuak sailkatuz.

Helburua aldatu

Jo dezagun modelo bat daukagula, doitze parametro ezezagun bat edo gehiagorekin, eta aldi berean analizatzeko entrenamendu datu batzuk. Doitze prozesuak modeloaren parametroak optimizatzen ditu, azken horiek entrenamendu datuetara ahalik eta hoberen egokitzeko. Lagin independente bat hartzen badugu proba datu bezala (baliozkotzea) entrenamendu datuen multzo berdinetik, normalean modeloa ez da proba datuetara entrenamendu datuetara bezain ondo egokituko. Horri overfitting deritzogu, eta entrenamendu datuen tamaina txikia denean edo modeloaren parametro kopurua handia denean gertatzen da. Baliozkotze gurutzatua modelo baten doiketa iragartzeko era bat da, hain zuzen ere proba datu multzo hipotetiko baterako doiketa, multzo hori esplizituki ez daukagunean.

Baliozkotze gurutzatu motak aldatu

K iteraziodun baliozkotze gurutzatua aldatu

K iteraziodun baliozkotze gurutzatuan edo K-fold cross-validation-en lagin datuak K azpimultzotan banatzen dira. Azpimultzoetako bat proba datu multzo bezala erabiliko da, eta beste guztiak (K-1) entrenamendu datu multzo bezala. Baliozkotzea errepikatu egingo da K aldiz, proba datu azpimultzo posible bakoitzeko. Bukatzeko, iterazio bakoitzaren batezbesteko aritmetikoa egiten da emaitza bakarra lortzeko asmoz. Metodoa oso zehatza da, proba eta entrenamendu datuen K konbinaziotatik aurrera ebaluatzen dugulako. Halere, desabantailen artean bere kostu konputazional altua dago, eta, beraz, oso motela dela kalkulatzen atxikitze metodoarekin konparatuz. Praktikan, iterazio kopurua datu multzoen tamainaren araberakoa izaten da, 10 iterazioko baliozkotzea ohikoena izanik (10-fold cross-validation).[3][4]

 
K iteraziodun baliozkotze gurutzatuaren ilustrazioa n=12 eta k=3 denean. Datuak nahasi ostean, 3 modelo entrenatu eta aztertuko dira.

Zorizko baliozkotze gurutzatua aldatu

Metodoa entrenamendu datuen multzoaren eta proba datuen multzoaren arteko banaketa ausaz egitean datza. Zatiketa bakoitzerako hurbilpen funtzioa doitu egiten da entrenamendu datuen arabera, eta proba datuen multzoentzako irteera balioak kalkulatzen ditu. Bukaerako emaitza erdietsi ahal izateko, zatiketa ezberdinetan lortutako balioen batezbesteko aritmetikoa kalkulatu behar da. Aipatutako metodoaren abantaila nagusia entrenamendu eta proba datuen banaketa iterazio kopuruen mende ez dagoela da. Bestalde, metodo horren bitartez lagin batzuk ebaluatu gabe uzten dira, eta aldi berean, beste batzuk birritan edo gehiagotan ebaluatzen dira, hau da, entrenamendu eta proba azpimultzoak gainjar daitezke.[5]

Baliozkotze gurutzatua bat kanpoan utzita aldatu

Baliozkotze gurutzatua bat kanpoan utzitako edo Leave-one-out cross-validation-ek (LOOCV) datuen bereizmen zehatz bat egiten du: iterazio bakoitzeko, proba datuen lagin bakarra dauka eta soberako beste guztiak entrenamendu datuak izango dira. Ebaluazioa lortutako erroreari begiratuta egiten da, baliozkotze mota honetan oso txikia dena. Kontrara, konputazionalki oso kostu handia dauka, iterazio zenbaki altu bat egin behar delako; N lagin kopuru bezainbeste iterazio hain zuzen ere, eta bakoitzeko entrenamendu zein proba datuak analizatu.[6]

 
Baliozkotze gurutzatua bat kanpoan utzita era grafiko baten adierazita, iterazio ezberdinetan datuen bilakaera ikusi eta ulertzeko. (LOOCV).

Errorearen kalkulua aldatu

Baliozkotze gurutzatu ezberdinen arteko ebaluazioa egiteko, iterazio bakoitzean lortutako errorea erabiliko da. Metodoaren arabera iterazio kopurua alda daitekeela kontuan izan behar da.[7]

K iteraziodun baliozkotze gurutzatuaren errorea aldatu

Metodo honen K iterazio bakoitzeko errorearen kalkulu bat egiten da. Bukaerako emaitza lortutako K erroreen arteko batezbesteko aritmetikoa kalkulatuz erdietsiko da:

 

Hau da, K errore balioen batukaria egiten da eta K balioagatik zatitzen da. E-ren balioa errorearena ordezkatzen du, eta beraz formulak egiten duena zera da: iterazio guztien (K iterazio) erroreen batuketa egiten du eta K balioarekin zatitzen du.

Zorizko baliozkotze gurutzatuaren errorea aldatu

Zorizko baliozkotze gurutzatuaren kasuan, aurreko metodoan ez bezala, laginak ausaz hartzen dira K iteraziotan. Hala ere, errorearen kalkulu bat egiten da iterazio bakoitzeko. Bukaerako emaitza, lehen bezala, lortutako balioen batezbesteko aritmetikoa eginez kalkulatuko da, formula berbera erabiliz:

 

Baliozkotze gurutzatua bat kanpoan utzitaren errorea aldatu

Baliozkotze gurutzatu mota honetan datu multzoak dituzten lagin kopuruaren (N) arabera egiten dira iterazioak. Horregatik, N iterazio bakoitzeko errorearen kalkulu bat egingo da. Aurreko kasuetan bezala, bukaerako emaitza erdiesteko erroreen arteko batezbesteko aritmetikoa kalkulatuko da, ondorengo formula erabiliz:

 

Doitze neurriak aldatu

Esan bezala, baliozkotze gurutzatuaren xedea modelo bat, modeloa entrenatzeko erabili diren datuekiko independenteak diren proba datuen multzo jakin batera doitzeko duen ahalmena estimatzea da. Erdietsitako neurri horiek, modelo eta datuentzako aproposa den edozein neurri kuantitatibo estimatzeko erabili daitezke. Esate baterako, sailkapen bitarrean oinarritutako modelo batean, lagin bakoitza zuzen ala ez-zuzen bezala aurreikusten da (gai barruan baldin badago edo ez). Beraz, kasu honetan, sailkapen errore tasa erabil dezakegu modeloaren doiketa laburbiltzeko. Era berean, beste neurri batzuk erabili daitezke, adibidez balio prediktibo positiboa. Aurresan behar den balioa era jarraian sakabanatzen denean, errorea kalkula dezakegu beste neurri hauek erabiliz: batez besteko errore koadratikoa, batez besteko karratuaren desbideratzea edo batez besteko desbideratze absolutua.

Denbora serie modeloentzako baliozkotze gurutzatua aldatu

Baliozkotze gurutzatua arazoak sor ditzake denbora serie motako modeloekin, datuen ordena duen garrantzia dela eta. Horren ondorioz, hobe litzateke rolling cross-validation[8] izeneko baliozkotzea erabiltzea hurbilpen zuzenago bat lortzeko.

Nolanahi ere, azterketa laburkin bakarrak deskribatzen badu, baliteke Politis eta Romanok deskribatutako Bootstrapping[9] laginketa metodoa funtzionatzea. Bootstrap-aren estatistikoak denbora seriearen balio tarte bat onartu behar du, eta bere laburpen estatistikoa itzuli. Bootstrap-ari deia batez besteko luzera tarte bat adierazi behar du.

Aplikazio adibideak aldatu

Iragarpen motako prozeduren emaitzak alderatzeko erabili ahal da baliozkotze gurutzatua. Esate baterako, jo dezagun aurpegiak gizonezkoenak edo emakumezkoenak diren sailkatzen duen detektagailu bat daukagula, eta bi metodo ezberdin erabili direla kontsideratzen dugu: euskarri bektoredun makina (ingelesez, Support Vector Machine, SVM) eta K auzokide hurbilenak (ingelesez, k-nearest neighbors edo K-NN) adibidez, bitzuak irudiak sailkatzea ahalbidetzen baitigute. Baliozkotze gurutzatuarekin bi prozedurak aldera daitezke eta bien arteko zehatzena zein den zehaztu. Informazio hori metodo bakoitzari baliozkotze gurutzatua aplikatzean erdietsitako erroreak ematen dizkigute.

K iteraziodun baliozkotze gurutzatuak (k-fold cross validation) zenbait sailkatzaile erabiltzen dituzten modeloak ere ebaluatzea ahalbidetzen digu. Aurreko adibidearekin jarraituz, irudi baten emakumezko bat edo gizonezko bat agertzen den detektagailu bat badaukagu, eta gailuak 4 sailkatzaile bitar erabiltzen baditu detektatzeko, baliozkotzea erabili daiteke bere zehaztasuna aztertzeko. Guztira 20 datu (irudi) baditugu, eta 4 iteraziodun baliozkotze gurutzatua aplikatzen badugu, 4 iterazio ezberdin exekutatuko dira; eta bakoitzean entrenamendu datu ezberdinak erabiliko dira, 4 sailkatzaileek aztertutakoak, jarraian proba datuak ebaluatzeko. Era honetara, lagin bakoitzeko 4 emaitza lortuko ditugu, eta sailkatzaile bakoitzaren emaitza horien arteko eta iterazio bakoitzaren emaitzen arteko batezbesteko aritmetikoa egiten badugu, amaierako emaitza lortuko dugu.

 
K iteraziodun baliozkotze gurutzatua, k=4 eta 4 sailkatzaile erabiliz.

Konputazio kontuak aldatu

Baliozkotze gurutzatu mota gehienak errazak dira inplementatzen, baldin eta aztertua izaten ari den iragarpen metodoaren inplementazio bat eskuragarri badago. Iragarpen metodoa "kutxa beltz" bezala eskuragarri egotearekin nahiko da, ez delako behar horren barruko aplikaziora ezertarako jotzea. Iragarpen metodoa entrenatzeko neketsua bada ere, baliozkotze gurutzatua nahiko motela izan daiteke, entrenamendua zenbait alditan egin beharko bailitzateke.

Kasu batzuetan, karratu txikien erregresioan edo kernel erregresioan bezala, baliozkotze gurutzatua azelera daiteke entrenamenduan maiz erabiltzen diren zenbait balioen aurre-kalkuluari esker, edo eguneratze erregelen erabilera azkarrari esker, esate baterako Sherman-Morrison-en formula. Halere, entrenamendu prozeduraren baliozkotze multzoa osorik mantendu behar da momentu oro, bestela, zeihartasun bat jazo daiteke.

Baliozkotze gurutzatuaren azelerazioaren muturreko adibide bat jazotzen da karratu txikien erregresio zuzenean, non lortutako emaitzak forma itxiko espresioak diren, hala nola iragarpen hondar-errorearen karratuen gehiketa (PRENSS).

Erabilpen desegokia eta mugak aldatu

Baliozkotze gurutzatuaren emaitzak baliagarriak izango dira baldin eta soilik baldin balidazio eta proba laginak populazio berberetik atera badira. Iragarpen modelodun aplikazio askotan, aztertuta izaten ari den sistemaren egitura denborarekin eboluzionatuz doa. Horrek aldaketa sistematikoak sor ditzake entrenamendu eta baliozkotze multzoen artean. Adibidez, akzioen balioa iragartzeko modelo batek 5 urte zehatzen datuak erabiltzen baditu entrenatzeko, ez dira emaitza errealistak lortuko hurrengo bost urteetan zehar populazio beraren iragarpen bezala erabiltzeko moduan.

Beste adibide bat, demagun norbaiti gaixotasun bat zehazki datorren urtean diagnostikatzeko arriskua iragartzen duen modelo bat garatzen dela. Modeloa entrenatzeko erabili diren datuak populazioaren lagin konkretu batetik (gazteak soilik edo gizonak soilik, esate baterako) badatoz, eta ostean, modelo hori populazio osoari aplikatzen bazaio, entrenamendu datuen baliozkotze gurutzatuaren emaitzak eta sailkapen errealarenak alde handiak izango lituzkete.

Zuzenki jokatzen bada eta baliozkotze lagina eta entrenamendu lagina populazio berekoak baldin badira, baliozkotze gurutzatua kasik inpartziala da. Haatik, era asko daude baliozkotze gurutzatua gaizki erabiltzeko:

  • Zenbait modeloen arteko ebaluazioan baliozkotze gurutzatua erabiltzea eta emaitza hobeak dituen modeloaren emaitzak soilik adierazi.
  • Hasierako analisi bat egin datu multzo osoa erabiliz, ezaugarri esanguratsuenak identifikatzeko asmoz, entrenamendu lagin bakoitzerako egin beharko litzateke. Erabiliko diren ezaugarriak aukeratzeko baliozkotze gurutzatua erabiltzen bada, baliozkotze gurutzatu barne prozesu bat egin beharko da, ezaugarrien aukeraketa egiteko entrenamendu multzo bakoitzean.
  • Entrenamendu datuetan dauden zenbait datu proba datu multzoan ere agertzen direnean, sarritan datu multzoen senidetzea dela eta.

Erreferentziak aldatu

  1. Devijver, P. A., and J. Kittler, Pattern Recognition: A Statistical Approach, Prentice-Hall, Londres, 1982.
  2. Jeff Schneider, The holdout method, The school of computer science, 1997ko otsailaren 7a.
  3. Payam Refaeilzadeh, Lei Tang, Huan Lui, k-fold Cross-Validation, Arizona State University, 2008ko azaroaren 6a.
  4. FH Joanneum, Cross-Validation Explained, Institute for Genomics and Bioinformatics, 2005-2006
  5. Andrew W. Moore, Cross-validation for detecting and preventing overfitting. 2011ko abuztuaren 10ean artxibatuta Wayback Machine-en, Carnegie Mellon University.
  6. Charles Elkan, Evaluating Classifiers University of California, San Diego, 2011ko urtarrilaren 18a.
  7. Ricardo Gutiérrez-Osuna, Leave-one-out Cross Validation Wright State University
  8. (Ingelesez) https://robjhyndman.com/hyndsight/tscv/ or..
  9. Politis, Dimitris N.; Romano, Joseph P. (1994). "The Stationary Bootstrap". Journal of the American Statistical Association. 89 (428): 1303–1313.

Ikus, gainera aldatu

Kanpo estekak aldatu