KONPUTAZIO-ZIENTZIEN METODO MATEMATIKOAK 12-13 (KZMM)
UNIVERSIDAD DEL PAIS VASCO - EUSKAL HERRIKO UNIBERTSITATEA, UPV-EHU

                                                                 


LAN PRAKTIKOAK -- ENUNTZIATUAK
Webgune hau galderekin zabaltzen joango da kurtsoa aurrera joan ahala

 
===== Joan zaitezte laborategietan nik esandago galderak egiten OpenOffice edo Word dokumentu batetan. Zein galdera entregatu behar diren moodle bidez eta noiz, aipatuko dut webgune honen edo moodle bitartez: esan bezala, epe hauek zuen inplikazioaren arabera jarriko ditut


[Galdera 16 -- Sailkapen gainbegiratua -- Klaserik gabeko kasu berrien klasea iragarri -- "Class prediction"]

Nere ustez, egitera goazen ariketa hau, sailkapenaren oinarrietako bat da: hau da, klasea ezaguna dugun kasu etiketatuekin sailkatzaile bat eraiki, eta ikasitako sailkatzaile honen bidez, klase ezezaguna duten kasu berrien klasea iragarri, predizitu, "class prediction".  Honi ere, ingelesez, "categorize" ere deitzen zaio.

Lehenik, ulertu, iragarpen hau, klasea ezezaguna den kasuen gainean, "apostu" bat dela, "bet": hau da, sailkatzaileak ez daki asmatu duen ala ez iragarritakoarekin. Hala ere, hor ditugu estimatutako asmatze tasak eta errore matrizea ausnartzeko zenbateko doitasuna izan dezaken gure sailkapenak: gogoratu asmatze tasa hori etiketatutako kasuekin estimatu dela. Noski, ezin ditugu erabili klasea ezezaguna duten kasuak asmatze tasarik estimatzeko, ez bait dakigu ondo iragarri dugun edo ez...

Goazen WEKA-n egoera hau simulatzea bi sailkatzaile desberdinekin. Hautatu lan egiteko WEKA formatoko datubase bat (zuk nahi duzuna: pasatako asteko ariketan bi datubase "fitxatu" zenituen: horietako bat), non orain arte bezala, kasu guztiak etiketatutak dituen (hau da, klase ezagunekoak diren).
"Preprocess" leihoan kargatuta izan: hauekin eraikiko da sailkatzailea. Eta etiketatutako kasu hauekin ikasten den modeloa erabiliko da, gerora datozten kasu berrien (eta klase ezezaguna duten) klasea iragartzeko.

Sortu ezazu WEKA-ren *.arff fitxategi berri bat ZUK ASMATUTAKO  5 etiketatu gabeko kasuekin, non '?' balioa jartzen duzun klasean (WEKA-k hau eskatzen du, "zerbait" jarri klase aldagaian, nahiz balio galdua izan): "unlabeled, unseen samples". Kontutan izan sortzen duzun fitxategi berriak entrenamendukoaren formato bera jarraitu behar duela: inkluso bere "WEKA cabeceran", aldagaien definizio berbera jarraituz: aprobetxatu entrenamendukoaren "cabecera", kopiatuz zuk asmatutako 5 klase gabeko instantzien fitxategian.

Bigarren fitxategi hau, etiketatu gabekoa, "Classify" leihoko "test-options"-eko bigarren aukeraren bidez ("supplied test-set") kargatu. Eta ikusi zein klase predizitzen duten naive-Bayes eta 5-NN (5 bizilagun hurbilenak) sailkatzaileek, zuk asmatutako 5 kasuko bakoitzarentzat. Baina kontutan izan sailkatzaileak ez direla eraiki zure 5 instantziekin (klase gabekoak, hauekin ezin da gainbegiratutako sailkatzailerik ikasi), baizik eta zure entrenamendu fitxategiko guztiekin (hau da, "Preprocess" leihoan kargatu dituzun, eta etiketatutak dauden kasu guztiekin...). 

Ikusteko zein klase iragartzen den etiketarik ez duen kasu bakoitzarentzat, "More options"-en, desaktibatuta dagoen "Output Predictions" aukera aktibatu.

Erakutsi zein den zure bi sailkatzaileek iragartzen duten klasea zure 5 kasuko bakoitzarentzat. Ez diozu begiratu behar "confusion matrix"-i, non ez den desberdintzen zer iragartzen den kasu indibidual bakoitzarentzat.
WEKA-ren irteeran hainbat kontzeptu agertzen dira klase gabeko 5 kasu horietako bakoitzarentzat, eta hor informazio asko dugu iragarritako klasearen inguruan 5 kasu hauetako bakoitzarentzat: "actual", "predicted", "error" (honek ez du zentzurik), "probability distribution": laburki argitu eta komentatu zer den hauetako bakoitza, bereziki "probability distribution" (zenbat zutabe ditu "probability distribution"-ek? Klase aldagaiaren balio adina, ez da?). 
Ausnartzeko: 5-NN sailkatzailearen kasuan, nola atera ditu klasearen balio bakoitzeko "probability" horiek?    

 

[Galdera 17 -- Data mining orokorrean]

Kurtsoa jadanik aurrera doa, eta hasieran sorpresa bat izan ziteken disziplina ("data analisiaren" rol-a gure gizartean), jadanik ez da.
Gustatuko litzaidake jakitea irakasgaiarekin hasi eta asteak aurrera joan ahala, zure inguran antzeman izan dituzula non dauden, non egon daitezken datu analisiaren hainbat aplikazio.

Horrela, Internet-en topatu duzun eta datu analisiarekin zerikusi hestua duen webgune bat erakutsidazu, eta komentatu eta deskribatu:

  1. Zein datu analisi aplikazioa deskribatzen du?

  2. Zehaztu: zer da sailkatu nahi den gertaera (gure klase aldagaia)? Hau iragartzeko zeintzuk dira aldagai iragarleak (laburbilduz)?

  3. "Ez jakintasuna" ("uncertainty") al dago eremu horretan, hau da, ez al dago giza aditurik zehazki, beti eta azkartasunez iragarri nahi duguna emango diguna?

  4. Zein enpresa/taldek plazaratzen du aplikazioa? Zein interesekin, zein etekin espero du?

  5. Beste zure komentarioetara irekita...


[Galdera 15 -- Galdera hau apirilak 25-ko laborategian burutu behar da -- Algoritmo genetikoak]

Laborategia hasteko, algoritmo genetikoen gaiko gardenkiak errepasatu.

Beharbada salto handia somatu dugu ikasketa automatikoko gaietatik, algoritmo genetikoen gaira pasatzerakoan. Jadanik ez gaude datu analisia egiten, baizik eta "optimizazioa": baina algoritmo genetikoak adimen artifizialeko teknikarik erabilienetakoa da gaur egun industrian eta akademian. Eta horregatik erakutsi nahi dizkizuegu.

Algoritmo genetikoak, adimen artifizialeko beste bilaketa heuristikoak bezala (adibidez, branch and bound, aurrerako edo atzerako bileketak, txingurri koloniak...), optimizazio problemak era suboptimo batetan ebazteko algoritmo efizienteak dira.
"Optimizazioa" edo "Ikerkuntza Eragilea" irakasgaiaetan erakusten den "Simplex" algoritmoak ebatzi ezin ditzakeen problemetarako, hor daude adibidez algoritmo genetikoak.

Hauetako problema bat, ikasketa automatikoko problema batean aldagai iragarleen azpimultzo optimoa aukeratzea da. Beste problema klasiko bat, bidaiariaren problema (TSP, Traveling Salesman Problem) da: "n" hiri behin bisitatzeko distantzia minimizatu.
Problema hau on-line ebazten duen aplikazio grafikoa hemen ikus dezakezu: hiriak 2-D batetan zuk kokatu ditzakezu, gurutzaketa eta mutazio eragiketa motak ere bai; printzipioz, populazioko 16 soluzio-indibiduo guztiak ikus ditzakezu nola eboluzionatzen duten, eta "Change view" klikatuz unerarteko soluziorik onena ikus dezakezu.

Bestetik, diseinu-optimizazio problema anitz algoritmo genetikoen bidez ebazten dira: goazen laborategia ondoko "hegazkin baten diseinua optimizatzeko" algoritmo genetikoak erabiltzen dituen lana ikuskatzea, gainetik ikusiz zeintzuk diren optimizatu nahi diren aldagaiak eta diseinu-problema: azkenean, string batetan errepresentatu nahi dira hegazkin baten diseinuko aldagai eta arlo guztiak. Eta string horren balio optimoa bilatu nahi dugu, gure kasuan algoritmo genetikoen bidez optimizatuz.

Era honetako diseinu problemetan, arazoa dago askotan proposatzen den diseinu-soluzio baten egokitzapen funtzioa kalkulatzen: hau da, zein ona edo txarra den proposatutako soluzio hori (hau da, bilaketan zehar topatutako soluzio hori). Bidaiariaren probleman analitikoki kalkulatu daiteke (hiri pareen arteko distantziak batutzen, hauek bait dakizkigu): baina diseinu problema askotan, "simulazioaren" bidez egiten da egokitzapen funtzioaren kalkuloa. Ikus adibidez 2 gurpil-urdin eta bi goi-borobil-gorri dituen kotxe honen diseinuaren simulazioa: algoritmo genetikoen bidez sortzen eta optimizatzen ditu soluzioak, ondo fijatu. Proposatzen duen kotxe-diseinu baten egokitzapen funtzioa: ibiltzen duen distantzia, goi-borobil-gorriak bolkatu eta zorua ikutu gabe.

Ondoko beste hiru adibideak ikusi, eta ulertu optimizatu nahi den diseinu-problema:

 

SOFTWARE BATEKIN PROBAK ETA TESTAK:
Ariketa honetan goazen bilaketarako heuristikoentzako LiO ( "Librería de Investigación Operativa") izeneko libreriara hurbiltzea. Software libreri hau Castilla - La Manchako "Sistemas Inteligentes y Minería de Datos" ikerkuntza taldean garatu da, eta askok deitzen diote "bilaketarako heuristikoen WEKA". Libreria polita da ikusteko bilaketarako heuristikoek ere "funtzionatzen dutela", eta praktikara pasatzeko teoriatik. WEKA bezala, soilik Java runtime behar da zuen ordenagailuan exekutatzeko (fakultateko C:\LiO\deploy karpetan dago, edo ondoko loturan jetsi nahi izanez gero):

PROMPT>>> java -jar LiO.jar

LiO-ren interfaz-ak lau lan-eremu (panel) nagusi ditu, eta hauetako bakoitza konfiguratu daiteke ("Configure"):

Laborategia ilustratzeko eta zuei LiO softwareari sarrera egiteko, ondoko problemarekin jolastuko dugu: OneMax problem (LiO-n: Task-->bitchain), hau da, bere balioak bitarrak (1 edo 0) izan daiteken string baten balioak batu, hau da, "tonteria bat", "Bit Counting" ere deitzen zaio: optimoa (1,1,1,...1,1) string-a (soluzioa) da, baina optimizatzen gaudenean hori algoritmoak ez daki. Funtzio hau optimizatzeko ez genuke inoiz algoritmo genetiko bat erabiliko: bere funtzio zehatza dakigunez, bere soluzio optimoa ezaguna da aldez aurretik. Ordea, erabiltzen dira era honetako funtzioak testatzeko ea zenbateko doitasuna duten algoritmo genetikoek, eta beste bilaketa heuristikoek, beraien optimora hurbiltzeko.


LiO-ri buruzko hainbat informazio:


Orain, zuretzako: bidaiariaren problemarekin arituko zara, TSP problemaren "Berlin52" (LiO-ren panelean: Task-->permutation--> SymmetricTSP) bezala ezagutzen den problema, non Berlin inguruko 52 puntu (koordenatuak ikusi hemen) ahalik eta distantzia minimoa erabilita behin bisitatu nahi diren. Beheko irudiak puntu horiek adierazten ditu.

Problema honetarako ondokoa egin, laburbildu ikusitakoa eta jasotako emaitzak: 

 


[Galdera 14 -- Galdera hau apirilak 8-ko laborategian burutu behar da -- Sailkapen ez-gainbegiratua, "clustering", "class discovery"]

Laborategia hasteko, klase teorikoetako "clustering - sailkapen ez gainbegiratu" gaiko gardenkiak errepasatu, 10 minutu erabiliz, gai interesgarria da: clustering banatzailea eta clustering hierarkikoa, bereziki.

Ondoko fitxategia ("food.arff") clustering (sailkapen ez gainbegiratua) egiteko aproposa da.
Bertan, hainbat jaki-janari ("kasuak", datu analisiaren ikuspegitik) agertzen ditu, non bakoitza karakterizatzen den hainbat aldagaiengatik: proteina kopurua, kaltzioa... Fitxategiaren testua ikusiz gero, ilara-kasu bakoitzean, lehenik janari bakoitzaren izena agertzen da ("name"), eta gero bera deskribatzen duten 5 aldagai (ulerterrazak, ez da?).
Haragia oinarritzat duten janari plater-janari batzuk daude; besteak, arraia oinarritzat dutenak.
Datubase aproposa da ingelesa praktikatzeko, jakien inguruan.

Kasuek ez dute "klase aldagairik" (ez dago WEKA-n kolorerik...), hau da:

Goazen "ariketa hau simulatzea" proposatu dizuedan "food.arff" datubasearekin, clustering banatzailearen bidez:


[Galdera 12 -- Galdera hau martxoaren 18-ko laborategian burutu behar da -- Aldagai aukeraketa]

Gai honi dagokion teorian ikusi ahal izan duzu sailkapen gainbegiratuko problema batetan aldagai iragarle guztien "garrantzia" berdina ez dela. Aldagai iragarle "redundanteak" (beraien artean oso antzekoak direnean) edo klasearekin garrantzi-gabekoak (erlaziorik ez dutenak iragarri nahi dugun klasearekin), sailkatzailearen asmatze tasa murriztu dezakete. WEKA-k, bere "Select Attributes" pestañaren bidez, aldagai aukeraketako eragiketak egiten ditu: gure azkeneko sailkatzailea aldagai gutxiagorekin eraikitzeko, jakiteko zeintzuk diren aldagai interesgarrienak problema batetan, asmatze tasak hobetzeko, eta abar.

Teorian ikusi izan duzun bezala, aldagai aukeraketaren problema hau ebazteko forma erraza bat “filter” tekniken bidezkoa da, non aldagai iragarleen ranking-ordenaketa bat egiten dute "filter" teknika hauek: ordenaketa honek isladatzen du, handienetik txikienera, aldagai iragarle bakoitzak iragarri nahi dugun klasearekin duen korrelazio maila.

"Filter" metrika desberdin asko daude ("Select Attributes" pestañan, "Attribute Evaluator"-en barruan), korrelazio maila hau kalkulatzeko. WEKA-k eskaintzen dituenen artean, hauetako 3 Informazio Teoriarekin erlazio estua dute: hau da "entropiaren" kontzeptuarekin ("H" deitzen dio ere WEKA-k) (sailkapen zuhaitzetan ere ikusi izan duguna): "Gain Ratio", "Info Gain" eta "Symmetrical Uncertainty". Aukeratu hauetako bakoitza, eta "More" botoian sakatu ikusten erabiltzen duten formula aldagai iragarle bakoitzaren korrelazioa kalkulatzeko klasearekiko: uler ezazu bakoitza, erraza dela uste dut. Chi-karratu metrika ere badago lan berbera egiteko (beharbada Estatistikatik gogoratuko duzu).

Ondokoa egin:

 

[Galdera 13 -- Galdera hau martxoaren 18-ko laborategian burutu behar da -- Data mining-en aplikazioak]

Hurrengo loturetan nere atentzioa deitu duten bi artikulu dibulgatibo batzuk daude, "Data Mining-aren" hainbat aplikazio ulerkor aipatuz:

 Gainetik eman begirada bat bi artikulu-multzoei. Gero, horietako bat aukeratu. Aukeratutakoarentzat, rakurri eta hurrengo galderei erantzun, laburki (bi artikulu-sortentzako egin ezkeroz lana, kontutan hartuko dut notan):

  1. ezinbestekoa: zein da ebatzi nahi duen problema (predizitu nahi duen gertaera-aldagaia)? zure ustez, zein balio hartu ditzake klase-aldagaiak (imaginazioa bota...)?

  2. ba al dute erabilitako aldagai prediktoreek informazio nahikoa predikzio ziurrak egiteko? uste al duzu kasu-exenplu nahiko izango al ditugula modelo ziurrak-solidoak eraikitzeko-ikasteko?

  3. nondik eta nola jasoko ziren datuak? hau da, antzematen al duzu "non dauden" datuak, hau da, "nondik ateratzen" diren datuak, non dagoen "datu matrizea"?

  4. zergatik da beharrezkoa "data mining" egitea, datu analisia? ez al dago gizaki jakitunik ("domain expert") non ziurtasun osoz klasifika ditzaken kasu berriak? edo datu "gehiegi" al dira "begiz analizatzeko"?

  5. eta abar... zuk nahi dituzun apreziazio eta detaileak jorratu... erabilgarria mundu errealean? antzeko aplikazioak ezagutzen al dituzu: imagina ezazu eta proposatu bat?

 


 

[Galdera 10 -- Galdera hau martxoaren 11-ko laborategian burutu behar da -- Sailkatzaile Bayestarrak, "naive Bayes"-etik aurrera, k-db erako estruktura Bayestarrak sortzen WEKA-rekin, eta ulertzen probabilitate kondizionatu taulak]

Goazen hastea errepasatzen naive Bayes, TAN ("Tree Augmented Network") eta "k-db" erako sailkatzaileak teorian.

WEKA-n ez dago zehatz-mehatz Sahami-ren "k-db" teknika berdin berdina inplementatuta, hau da, klase teorikoetan ikusi dugun berbera. 
Ordea, "Bayes" sailkatzaile gainbegiratuen familiaren barruan ("Classify" pestañan), "BayesNet" sailkatzaileak aukera asko ematen dizkigu. Bere parametroak ikus itzazu klikatuz negritaz dagoen bere izenaren gainean. Parametro horietako bat "search algorithm" da: honen bidez, era eta konplexutasun desberdin askotako estruktura Bayestarrak "bilatu" ("search") daitezke, TAN eta k-db egituretara hurbilduz.

"Search" parametro honen aukeratako bat "K2" teknika da (Himalaya-ko mendi tontor ezagunari omenaldia eginez, hau da, pausuz pausu sortuko bait du soluzioa, "greedy" eran, erlazioak-geziak aldagaien artean banan banan gehituz).  K2 teknika honek sare Bayestar eta sailkatzaile Bayestar mota desberdinetakoak eraiki ditzake.
Horretarako, K2-ren parametroak ikus itzazu bere izenaren gainean klikatuz. Horietako bat "maximum number of parents" da. Ikusi parametro honen explikazioa:

 

Hau da, beti dependentzi gezi bat jartzen du klasea eta aldagai iragarle guztien artean.
Hortik aurrera, "maximum number of parents" parametroari 2-ko balioa emanez, "zuhaitzera zabaldutako naive Bayes" ("tree augmented naive Bayes") estrukturak sor daitezke. Eta parametro honi 3 edo balio altuagoak emanez, k-db (k-menpekotasuneko sailkatzaile Bayesiarra) erako estrukturak.

Hurrengo lanak egiteko "Hepatitis.arff" datubasea aukeratu.

K2 algoritmoa aukeratuta, "Maximum number of parents" parametroari 2-ko balioa emanez, "TAN - zuhaitzera zabaldutako naive Bayes" ("tree augmented naive Bayes") estruktura sor ezazu.
Aukeratu eta eraiki ezazu dagokion sailkatzailea. Eraikitako estruktura grafikoa (hau da"zuhaitz" estruktura) ikus ezazu "Result list"-en propiedadetan ikusiz bere "Visualize graph". Ohartu zaitez eraikitako grafo-estrukturaz, non, klase aldagaiak kondizionatzen ditu aldagai iragarle guztien balioak: eta gero zuhaitz erako estruktura eraikitzen duen aldagai iragarleen artean (hau da, aldagai iragarle bakoitzak beste aldagai iragarle bat du gehienez guraso bezala estrukturan -- klaseaz aparte).

"Malaise" ("ezinegona") aldagaiaren (sintomaren) gainean klikatuz gero, ondoko pantalla atera beharko zaigu:

Atera zaigun taula, "Probability Distribution Table for MALAISE", ezinbestekoa da ulertzea.
Taula horretan, geroago k-db sailkatzaileak sailkapena egiteko, "p(klasea | kasu_berria)" kalkulatzeko, ezinbestekoak diren hainbat probabilitate daude: naive Bayes-ek erabiltzen zituenaren antzekoak, baina pixka bat konplexuagoak.

"Malaise" aldagai iragarlearen probabilitate banaketaren "argazkia" da, estrukturan dituen bi gurasoen kondizio-pean ("Class"-klasea eta "Fatigue": ikusi taularen ezkerreko parteko bi zutabeak).
"Malaise" aldagaiaren probabilitate banaketa agertzen da, bere gurasoen balio konbinaketa guztietarako: horregatik, lau probabilitate banaketa daude (ohartu ilara bakoitzean bi probabilitateen batura 1 dela), guraso bakoitzak bi balio posible dituelako. Horrela, adibidez:
    p(Malaise=no | Class=die , Fatigue=yes) = 0,242             p(Malaise=yes | Class=die , Fatigue=yes) = 0,758

Erantzun, laburki:

"Maximum number of parents" parametroari 3-ko balioa emanez, "3-db" (3-mendekotasuneko sailkatzaile Bayestarra) estruktura sor ezazu, non aldagai iragarle batek gehienez 3 aldagai guraso (klasea derrigorrez, eta beste bi iragarle  algoritmoak aukeratuta) izan ditzake estrukturan, bere balioak kondizionatzen dituztenak. "Result list"-en propietatetatik bere estruktura ikus ezazu ("Visualize graph").

Ohartu zaitez "Bilirubin" aldagai iragarleak 3 guraso dituela: "Class", "Anorexia" eta "Varices" (gibelean barizeak izan edo ez). Bilirubinaren balio altua izatea ez da izaten sintoma ona medikutzan... "Bilirubin" nodoan (aldagaian) klikatu eta bere "Probability Distribution Table" erakutsi. Lehenengo, taula ikusiz (zutabetako balioak), ohartu zaitez WEKA-k erabaki duela bi balio diskretotan diskretizatzea (sare Bayesiar hauek soilik aldagai diskretoekin eraikitzen ditu WEKA-k) "Bilirubin"-en balio jarraiak (-infinitotik 1'65-ra; eta 1'65-tik infinitora).
Erantzun ondorengo galderei, "Probability Distribution Table for BILIRUBIN"-en inguruan:

 

 

[Galdera 11 -- Galdera hau martxoaren 11-ko laborategian burutu behar da -- Data mining orokorrean]

Kurtsoa jadanik aurrera doa, eta hasieran sorpresa bat izan ziteken disziplina ("data analisiaren" rol-a gure gizartean), jadanik ez da.
Gustatuko litzaidake jakitea irakasgaiarekin hasi eta asteak aurrera joan ahala, zure inguran antzeman izan dituzula non dauden, non egon daitezken datu analisiaren hainbat aplikazio.

Horrela, Internet-en topatu duzun eta datu analisiarekin zerikusi hestua duen webgune bat erakutsidazu, eta komentatu eta deskribatu:

  1. Zein datu analisi aplikazioa deskribatzen du?

  2. Zehaztu: zer da sailkatu nahi den gertaera (gure klase aldagaia)? Hau iragartzeko zeintzuk dira aldagai iragarleak (laburbilduz)?

  3. "Ez jakintasuna" ("uncertainty") al dago eremu horretan, hau da, ez al dago giza aditurik zehazki, beti eta azkartasunez iragarri nahi duguna emango diguna?

  4. Zein enpresa/taldek plazaratzen du aplikazioa? Zein interesekin, zein etekin espero du?

  5. Beste zure komentarioetara irekita...

 


[Galdera 8 -- Galdera hau martxoaren 4-ko laborategian burutu behar da -- Sailkatzaile Bayestarrak, "naive Bayes"]

Errepasatu Sailkatzaile Bayestarren gaiko gardenkiak.
Bereziki ariketa egiteko: 6-tik 10-erako gardenkiak erakusten dute naive Bayes sailkatzailearen funtzionamendua, Bayes-en Teoremaren sinplifikazio gisa.

Ulertu bere teoria: ikusi bere asuntzio nagusia dela aldagai iragarleak (Xi), klasea ezagututa (C=c), beraien artean independienteak direla.
Suposa dezagun etiketatu gabeko kasu berri dugula, "kasu_berria=(X1=x1, X2=x2, ..., Xn=xn)". Zein izango da bere "C" klasearen balioa?
Gogoratu apunteetan nolakoa den p(C=c|X1=x1, X2=x2, ..., Xn=xn) kalkulatzeko formula. Hortaz erabiltzen dituen estatistikoak, p(Xi=xi|C=c) eta p(C=c): p(C=c|X1=x1, X2=x2, ..., Xn=xn) kalkulatzeko.
Hau da, asuntzio hau erabiltzen du kasu berri batentzat, (X1=x1, X2=x2, ..., Xn=xn), klasearen balio posible bakoitzarentzat kalkulatzeko bere "a-posteriori" probabilitatea,

"p(C=c|kasu_berria)=p(C=c|X1=x1, X2=x2, ..., Xn=xn)"

eta C-ren balio guztietarako aurrekoa kalkulatuz, "p(C=c|kasu_berria)" handienarekin geratuko gara, C=c*, klasea iragartzeko kasu honentzat.

Goazen ariketa bat egitea "Hepatitis.arff" datubasearekin: lehenengo hau ireki textu editorearekin eta laburki, ulertu problemaren natura (klasearen balio posibleak, aldagai iragarle batzuk...). Problemak, hepatitis-a duten gaixoen pronostikoa iragarri nahi dute ("pronostiko txarra badute"--"die" edo "pronostiko ona"--"live").
Goazen bakarrik bere ondoko aldagaiekin lan egitea (uler ezazu beraien esanahia): "fatigue" (nekea), "malaise" (ezinegona, "malestar"), "anorexia", "liver_big" (gibela haundituta); eta noski, klasea - gaixoaren pronostikoa ("die" edo "live" balioak ditu, hau da, gaixo hil edo bizirik irauteko pronostikoa egiten den). Beste aldagai guztiak ezaba itzazu (preprocess leioa WEKAn -- aukeratu eta remove). Geratu den aldagai bakoitzaren gainean klikatuz, ulertu itzazu histogramak eta bere koloreak ("Preprocess" leihoan, behe eskubi partean).

Orain, 4 aldagai iragarle horiek erabiliko ditugu "Klasea (die / live)" iragartzen saiatuko den naive Bayes sailkatzaile bat sortzeko.
Aukeratu WEKA-n: "Classifier -- Bayes -- NaiveBayesSimple". Sailkatzailea eraiki eta saiatuko gara ulertzen "Classifer output" eskubiko partean agertzen zaigun textua, hau da, naive Bayes sailkatzaileak erabiltzen dituen estatistikoak "p(C=c|kasu_berria)" kalkulatzeko.
Output horren parte bat hartuko dut eta esplikatuko dut (ikusi beheko irudiko ezkerreko partea), eta honen antzekoa izango da (eskubiko parteko irudia naive Bayes-en beste problema batentzako irudia da soilik, besterik ez, ez egin kasurik, baina problema erreal batekoa da):

 

=== Classifier model (full training set) ===

Naive Bayes (simple)

Class DIE: P(C) = 0.21019108

Attribute FATIGUE

no yes

0.08823529 0.91176471

.................................................

 

Lehenengo, klase bakoitzaren "argazki" bat ateratzen digu (lehenengo "die" klasekoentzat, gero "live" klasekoentzat) datubaseko kasu guztientzat.
Lehenengo, "Die" klasearen a-priorizko proportzioa (hau da, zenbat "die" klaseko kasuen proportzioa) datubasean (output-ean beherago dago "Live" klasearen output-a).
Gero, Xi aldagai iragarle bakoitzarentzat, "p(Xi=xi|C=c)" estatistikoen balioak erakusten dizkigu: adibidez, "Class=Die" kasuentzako (klasearen balio honen proportzioa datu basean p(Class=die)=0.2101), "nekea" ("Fatigue") somatu duten probabilitatea 0.911 da, p(Fatigue=yes | Class=Die) = 0.911; eta "nekea" somatu ez dutenen proportzioa p(Fatigue=no | Class=Die) = 0.0882 da (bien batura 1 izatea, ez da?).
Estatistiko eta proportzio guzti hauek datubasetik kalkulatuak izan dira!! Hepatitis.arff-ren 155 kasuetan!! Ez ditu asmatu!! Eta hauek erabiltzen ditu kasu berri bat sailkatzeko eta p(C=c|X1=x1, X2=x2, ..., Xn=xn) kalkulatzeko.

Zuretzako: ateratako "Classifier output"-aren gainean, markatu ezazu zein den "p(Xi=xi|C=c)" bakoitza, aldagai iragarle oro (Xi) eta klasearen balio guztietarako.

Saiatu guzti hau ulertzen, eta demagun kasu berri bat etortzen zaigula (156. kasua: zergatik diot hau??), non medikuak ez dakien zein den bere klasea (ez dago ziur pronostikoa egiterako orduan), eta erabakitzen da ikasitako "NaiveBayesSimple" sailkatzailea erabiltzen dugula kasu hau sailkatzeko (pronostikoa egiteko). Kasu berria demagun ondokoa dela:

Fatigue = yes; Malaise = yes; Anorexia = no; Liver_big = yes

Egin eskuz naive Bayes-en lana, eta kalkulatu klase bakoitzaren "p(C=c|kasu_berria)" (hau da, bai C=Die eta bai C=live- rentzako). Zein da naive Bayes-ek egiten duen apostua, iragartzen duen klasea? Gogoratu klaseko apunteak eta teoria. Ulertzen al da naive Bayes-en logika eta funtzionatzeko forma?

Egin berbera ondoko beste kasu honentzat, kalkulatuz naive Bayes-en formula erabiliz, kasu berriaren "p(C=Die|kasu_berria)" eta "p(C=Live|kasu_berria)":

Fatigue = no; Malaise = no; Anorexia = no; Liver_big = no

Zure iritziz, nolakoak izango ziren klasearen bi balioen artean indarrez desberdintzen-diskriminatzen lagunduko digun Xi aldagai baten "p(Xi=xi|C=c)" probabilitate balioak?
Hau da, Xi-ren balio zehatz batentzako (adibidez, bere lehenengoa): nolakoak izan beharko ziren beraien artean "p(Xi=lehen_balioa | C=Die)" eta "p(Xi=lehen_balioa | C=Live)" probabilitateak? Antzekoak, oso desberdinak? Sailkatzailea eraikitzeko erabili ditugun lau aldagaietatik, erakutsi aldagai bat (eta bere balio bat) non aurrekoa indarrez gertatzen den. 
Eta nolakoak izango ziren beraien artean "p(Xi=lehen_balioa | C=Die)" eta "p(Xi=lehen_balioa | C=Live)" baldin eta EZ bagaituzte laguntzen problemaren bi klaseen artean desberdintzen-diskriminatzen?

Naive Bayes sailkatzaileak, etiketatutako kasu guztiekin eraikitzen duen modeloan zentratu gara ariketa guztian zehar: ez zaigu axola ariketan zehar bere asmatze tasa altua edo baxua den (ez diogu erreparatuko galderan WEKA-ren "Test options"-en aukeratutako asmatze-tasa estimatzeko metodoan: hold-out, balidazio gurutzatua...). Erabili dugun datubasea txikia izango da (kasu gutxitakoa), baino handiagoa balitz ondokoa "kritikoa" izango zen, konputazio denborak handitzeko arriskuarekin: hau da, asmatze tasa estimatzea axola ez bazait, WEKA-ren exekuzio azkarrago izateko:

  1. zein "Test options"-eko aukera hartuko dut?

  2. zenbat modelo eraikitzen dira "cross-validation 10 geruzekin" klikatzerakoan? (Pista bat emango dizut: guztira, ez dira 10... zergatik, zeintzuk dira?)

  3. eta "hold-out" (percentage-split 66%-33% klikatzerakoan)?

 

[Galdera 9 -- Galdera hau martxoak 4-ko laborategian burutu behar da -- Irakurketak -- Ikasketa Automatikoaren aplikazio errealak] 
Hurrengo loturetan nere atentzioa deitu duten bi artikulu dibulgatibo batzuk daude, "Data Mining-aren" hainbat aplikazio ulerkor aipatuz:

 Gainetik eman begirada bat bi artikulu-multzoei. Gero, horietako bat aukeratu. Aukeratutakoarentzat, rakurri eta hurrengo galderei erantzun, laburki (bi artikulu-sortentzako egin ezkeroz lana, kontutan hartuko dut notan):

  1. ezinbestekoa: zein da ebatzi nahi duen problema (predizitu nahi duen gertaera-aldagaia)? zure ustez, zein balio hartu ditzake klase-aldagaiak (imaginazioa bota...)?

  2. ba al dute erabilitako aldagai prediktoreek informazio nahikoa predikzio ziurrak egiteko? uste al duzu kasu-exenplu nahiko izango al ditugula modelo ziurrak-solidoak eraikitzeko-ikasteko?

  3. nondik eta nola jasoko ziren datuak? hau da, antzematen al duzu "non dauden" datuak, hau da, "nondik ateratzen" diren datuak, non dagoen "datu matrizea"?

  4. zergatik da beharrezkoa "data mining" egitea, datu analisia? ez al dago gizaki jakitunik ("domain expert") non ziurtasun osoz klasifika ditzaken kasu berriak? edo datu "gehiegi" al dira "begiz analizatzeko"?

  5. eta abar... zuk nahi dituzun apreziazio eta detaileak jorratu... erabilgarria mundu errealean? antzeko aplikazioak ezagutzen al dituzu: imagina ezazu eta proposatu bat?

 


[Galdera 6 -- Galdera hau otsailak 25-ko laborategian burutu behar da -- Laugarren gaia: Sailkapen zuhaitzak, inausi ("pruning") edo ez]

Errepasatu sailkapen zuhaitzetako gaiko ondoko kontzeptuak gardenkietan:

"Breast-cancer.arff" datubasea hautatuz, lehenengo ulertu laburki tratatzen ari den problema (bereziki, iragarri beharreko klasearen balioak, eta hau iragartzeko aldagai-iragarleak).
WEKA-ren C4.5 metodoarekin (WEKA-n J48 izena du, "trees" familiaren barruan) bi sailkapen zuhaitz eraiki:

J48-ren "unpruned" parametroak inausketa aktibatu edo desaktibatzen du. Kasu guztiekin eraikitako bi arbolen bertsio grafikoak ikusiz ("Result list"-en propiedadeak, arratoiaren eskubiko botoiaz), erantzun:


 

[Galdera 7 -- Galdera hau otsailak 25-ko laborategian burutu behar da -- Ikasketa automatikoaren aplikazioak -- K-NN sailkatzailea -- Recommender systems]

Web 2.0-ren adibide onenetakoak bezala, "Collaborative filtering", "social bookmarking" edo "Recommender systems" izeneko teknikak orain dela urte gutxi agertu dira sekulako indarrez Adimen Artifiziala eta Data Analisian.
Ikus ezazu "Recommender systems"-en definizioa Wikipedian. "Recommender systems" oso ezagunak ditugu gure inguruan hainbat webgunetan: Amazon, last.fm, allposters.com, StumbleUpon, GoodReads, eta abar.
Nere gustorako, "recommender" landuenetako bat, benetan fina, last.fm-rena da.

    

        

 

"Recommender systems"-en lan egiteko forma K-NN (auzokide hurbilena) sailkatzailearen lan egiteko eratik ("algoritmkatik") oso hurbil dago, erabiltzaileen arteko "distantziak" kalkulatzeko eran.  "Recommender systems"-ak saiatzen dira gure gusto eta preferentzi antzekoak dituzten erabiltzaileak topatzen ("auzokideak"... hor dago K-NN-ren itzala), guri proposatzeko hauei gustatu zaizkien (eta guk oraindik probatu ez dugun) "aktibidade"-"adibideen" artetik, guk oraindik probatu-erosi ez ditugunak. Hau da, ingelesezko "collaborative filtering", esanez, "denon arteko jakinduriarekin egiten dugu aukeraketa"...

Orain dela urte batzuk lehen plazaratu zen "recommender" adibidea pelikulena izan zen.
Pentsa dezagun erabiltzaile talde bat gaudela, eta hauetako bakoitzak ikusi dituen pelikulei puntuazio-balorazio bat ematen dio. Noski, denek ez dituzte ikusi pelikula guztiak. Eta denak gogoz daude jakiteko ea ikusi ez dituzten pelikuletatik, zein izan daiteken gustatzea litekeena. Eta "recommender system"-ek, erabiltzaileok karteleratik ikusi ditugun pelikuleei emandako puntuazioetan oinarrituta, saiatzen dira "gure gustu antzekoak dituzten erabiltzaileak topatzen bere erabiltzaileen datu base handi horretan". Eta horrela, oraindik ikusi ez ditugun eta gure "gustoetan antzeko diren erabiltzailei" gustatu zaizkien pelikulak gomendatuko dizkigu sistemak automatikoki. Pelikulen "recommender systems" ezagunena mundu mailan netflix.com da, non urtero txapelketa bat antolatzen dute non, beraien datuetan oinarrituta, nork proposatuko dien "recommender systems"-eko algoritmorik onena: http://www.netflixprize.com/, with a $1 M award.

Ikusi ere 2011 urtean, datu analisiko KDD konferentzian ("Knowledge Discovery from Datasets") proposatutako datuen gaineko konpetizioa. KDD-Cup'2011 from Yahoo! Music.

Egin beharrekoak, laburki komentatuz:

  1. Komentatu eta laburtu itzazu galdera honetan jarri dizkizuedan loturak-linkak.

  2. Jarri ditudan loturetatik, zein da atentzioa gehien deitu dizuna? Zergatik?

  3. Zure iritzia eman: teknika hauek erabilgarriak al dira? Erabiltzen al dituzu, bai zuk, edo zure ingurukoek?

  4. Eman ezazu Internet-en dagoen beste adibiderik "recommender systems" dena. Deskribatu ezazu. Pila daude eta zihurasko noizbait erabili izan dituzu.

  5. Beste alor batetan erabilgarria izan daiteken "recommender system" baten ideia eman, laburtuz bere ezaugarri nagusiak.


[Galdera 4 -- Galdera hau otsailak 18-ko laborategian burutu behar da -- 3. gaia, sailkatzaileen ebaluazioa]

Errepasatu klase teorikoetako gardenkietan, 3. gaian, sailkatzaileen asmatze tasa estimatzeko metodoak: estimazio ez-zintzoa, Hold-out metodoaren hainbat exekuzio, k-geruzako balidazio gurutzatua.
Ondoko azpidirektorioko datubase baterako, estimatu 5-NN (5 bizilagun hurbilenen sailkatzailea, zuk nahi duzun bizilagunen boto-pisaketa erarekin) sailkatzailearen asmatze tasa:

  1. Estimazio ez-zintzoa (WEKA-ren "Use training set" aukera).

  2. Hold-out metodoaren exekuzio bakarrarekin (66% training, 33% test).

  3. Hold-out metodoaren 4 exekuzioekin (66% traing, 33% test) [ikusi beharko dugu "seed"-haziaren aldaketaren beharra...]

  4. 5-fold (geruza) balidazio gurutzatuarekin (cross-validation).

  5. 10-fold (geruza) balidazio gurutzatuarekin (cross-validation).

Zergatik ez dira emaitzak berdinak (izan beharko al ziren...?)? 5 estimazio formetatik, zeinetaz fidatzen zara gehiago (intuizioa erabili, soilik, erantzuteko)?

 

[Galdera 5 -- Galdera hau otsailak 18-ko laborategian burutu behar da -- "Data Preprocessing" -- "Discretizing attributes"]
K-NN sailkatzaileek bi motako aldagaiekin lan egin dezakete auzokideen (bi kasuen) arteko distantziak kalkulatzeko (errepasatu K-NN-ren 13. gardenkian, non aipatzen den nola egiten den bi kasuen arteko distantziaren kalkulua), aldagaiz-aldagaiko kenketa-distantzia kalkulatzerakoan:

Gure datuetako balio numerikoak-ordinalak dituzten aldagaiak diskretizatzea ezinbestekoa da ikasketa automatiko eta data mining-eko aplikazio eta egoera askotan. Sailkatzaile mota askok ere ezin dezakete balio numerikoekin lan egin, eta horrelakoak diren aldagaiak diskretizatu behar dira. Ikertzaile eta aditu batzuk ere diote aldagai bat hobeto "ulertu eta interpretatzen" dela bere balio diskretoekin. Iritziak, anitzak, koloreak bezala.
Diskretizazioko adibide bat ondokoa izan daiteke, "adina" aldagaiarentzat: bere zenbakizko balioekin lan egin beharrean (adibidez, 20 urte, 7 urte...), "adina" diskretizatu hainbat (4) tarte-eremu-"range"-"bin"-etan: adibidez [0-tik,14 artekoak]→ "umeak"; [15-tik, 30-ra]→ "gazteak"; [31-tik, 70-ra] → "helduak"; [70-tik aurrera] → "zaharrak". Eta hemendik aurrera, adina aldagaiarentzat: "umea", "gaztea", "heldua" eta "zaharra" balioekin lan egin (4 kolore izango balira bezala).
Zenbakizko aldagai bat diskretizatu eta gero, bere bi balioen arteko distantzia ezin daiteke jadanik era Euklidestarrean kalkulatu, eta "overlap" erako distantzi batera jo beharko dugu. Zenbat izango zen ("zaharra" ken "gaztea")...?!?!?

Ondoko azpidirektorioko "cars.arff" fitxategia kargatu WEKA-n. Lehenago, textu bezala ireki-irakurri fitxategia, eta irakurri zein den problemaren explikazioa, eta natura, ebatzi nahi duen problema eta dituen aldagai iragarleak: fitxategiaren textuaren goiko partean dituzu azalpen hauek (iragarri nahi den aldagaia, klasea, azkena, "origin of the car"). Fitxategi honek aldagai ordinal eta nominalak ditu, bi motatakoak.
"Discretize" preprozesuko teknikarekin lan egingo dugu: Preprocess → unsupervised  → attributes. "Unsupervised" bezala ezagutzen da, klase (sailkatu-predizitu nahi den) aldagaia erabiltzen ez duelako.

Diskretizazioa aplikatzeko: "Filter"  → "Choose" eta behin aukeratu eta gero, beltzez dagoen "Discretize" funtzioaren izenaren gainean sakatuz gero: funtzio honen parametroak ikus daitezke eta aldatu ("tune"). Informazio gehiago lor daiteke parametro bakoitzaren inguruan "More" sakatuz. Behin parametroak "tuneatu" eta gero, "Apply" sakatu funtzioa aplikatu izateko datuen gainean (pantallaren eskubiko partean). Diskretizazioa aplikatu eta gero eta bere eragina aldagaien balioen gainean ikusi eta gero, erantzun:

  1. zer dira "bins" eta "useEqualFrequency" parametroak? Sakatu "More" botoia eta ikusi "useEqualFrequency" parametroaren aukerak: zein da diskretizazio "Equal Frequency" eta "Equal Width" metodoen arteko diferentzia nagusia? Pentsatu, Internet-en ikusi, eta laburki esplikatu.

  2. zein da sortu den eragina aldagaien balioetan diskretizazioa aplikatzerakoan? Ikusi WEKA-ren "Preprocess" pestañako behe-eskubiko histograma. Zein "balio" ditu orain, diskretizatu eta gero, aldagai bakoitzak (zer esan nahi dute "(23.5-26.4]" edo "(-inf-11.9]" erako expresioek)?

  3. "cars.arff" fitxategiko zein aldagairi eragin die? Zeintzue ez eta zergatik?

  4. K-NN sailkatzaile baten asmatze tasa berdina al da diskretizazioa aplikatuta edo aplikatu gabe? Zergatik (espero al zenuen)?

 


[Galdera 2 -- Galdera hau otsailak 11-ko laborategian burutu behar da -- Bigarren Gaia: K-NN, "K-nearest neighbour", "k-bizilagun hurbilenen sailkatzailea" -- 3. gaia: Sailkatzaileen ebaluazioa]

WEKA softwarearen IB1 ("instance-based 1") sailkatzaileak bizilagun hurbilena soilik erabiltzen du sailkapenarako (1-NN): klase ezezaguneko kasu berri bat etortzerakoan sailkatua izateko, sailkatzen dugu entrenamenduko fitxategiko kasu "hurbilenaren" klasearekin. Ikusi gardenki teorikoen bostgarrena.
K-NN erako sailkatzaileen familia atzitzeko WEKA-n, begiratu "Lazy" karpetaren barruan, WEKA-ren "Classify" moduluan. (Ez erantzun orain, baina zer esan nahi du "lazy" ingelesez? Kurtsoa aurrera joan ahal ikusiko dugu sailkatzaile familia honen izenaren zergatia).
IBk sailkatzaileak ordea, etiketatu gabeko kasu berriaren klasea predizitzeko, kasu honen entrenamendu fitxategian dauden "k" bizilagun hurbilenak konputatzen-bilatzen ditu lehenago. Hori egin eta gero, klase teorikoetan ikusi duzu bariante asko daudela, IBk-ren parametroen balioen arabera eta K bizilagunekin egiten ditugun "jokoen" arabera: ikusi teoriako gardenkiak.
Probak egiteko, ondoko azpidirektorioko  eta bi klase-balio dituen zuk nahi duzun datubase batekin probak egin eta kargatuta izan WEKA-n.

IBk sailkatzailearen ondoko parametroak esplika itzazu: "KNN", "distanceWeighting".
Nahiz eta klase teorikoetan ikusi, WEKA-k ez du ematen IBk sailkatzailean aldagai iragarleak desberdinki "pixatzeko" aukera: bai ordea bozka eman behar duen bizilagun bakoitzaren pixua.
WEKA-n, sailkatzaile baten parametroak ikusteko eta esplikazio laburra ikusteko, klikatu metodoaren negritaz dagoen izenean, eta gero "More" botoia.

IBk sailkatzailearekin informalki probak egin, "KNN" eta "distanceWeighting" parametroen balioak aldatuz: bizilagun kopurua aldatuz, bizilagunen-pisaketa forma aldatuz:

  1. Esplika itzazu "distanceWeighting" parametroaren balio posible hauek: "NoDistanceWeighting", "Weight by 1/distance". Gardenki teorikoetan non agertzen da "Weight by 1/distance" aukera? Ulertu ondo zer inplikatzen duen.

  2. "Hold-out (%66 train, %33 test)" asmatze-tasa-estimazio metodoaren bidez ebaluatu eraikitzen dituzun sailkatzaileen barianteak: asmatze tasak aldatzen al dira parametro hauen ("KNN" eta "distanceWeighting") balioak aldatzerakoan? Gardenki teorikoetan non agertzen da "Hold-out" estimazio teknikaren esplikazioa?

  3. Errepasatu gardenki teorikoetan "errore matrizea", True Positive Rate (TPR)", "False Positive Rate (FPR)" kontzeptuak: zein gardenkian agertzen dira? IBk sailkatzaile baten (zuk nahi duzun parametro balioekin) eta "Hold-out" estimazio teknikaren exekuzio batentzat, agertu aurreko kontzeptuek dituzten balio zehatzak WEKA-ren exekuzio horretan.

  4. Gardenki teorikoetan, non agertzen da "use training set" estimazio teknikaren esplikazioa? Zer izena ematen diogu gardenki teorikoetan? "Hold-out" estimazio metodoak bueltatzen duen asmatze tasa, normalean, "use training set" estimazio metodoarena baina baxuagoa al da? Zergatik uste duzu hori gertatzen dela?

  5. Zein da "use training set" estimazio teknikak bueltatzen duen asmatze tasa IB1 sailkatzailearekin?

 

  [Galdera 3 -- Galdera hau otsailak 11-ko laborategian burutu behar da -- Sarrera -- Irakurketak -- Ikasketa Automatikoaren aplikazio errealak]

Artikulua irakurri eta gero, hurrengo galderei erantzun:

  1. zergatik da beharrezkoa "data mining" egitea, datu analisia? ez al dago gizaki jakitunik non ziurtasun osoz klasifika ditzaken kasu berriak? datu "gehiegi" al dira "begiz analizatzeko"?

  2. zein da ebatzi nahi duten problema (predizitu nahi duten gertaera-aldagaia)?

  3. ba al dute erabilitako aldagai prediktoreek informazio nahikoa predikzio ziurrak egiteko? uste al duzu kasu-exenplu nahiko izango al ditugu modelo ziurrak-solidoak eraikitzeko?

  4. antzematen al duzu "non dauden" datuak, hau da, "nondik ateratzen" diren datuak, non dagoen "datu matrizea"?

  5. erabilgarria mundu errealean? antzeko aplikazioak ezagutzen al dituzu?

  6. eta zuk nahi duzun edozein komentario. Gustoko eta motibagarria egin al zaizu irakurketa?

  


[Galdera 1 -- Galdera hau otsailak 4-ko laborategian burutu behar da -- Sarrera, problemen aukeraketa] 

Kurtsoa aurrera joan ahala, sakonago aztertuko dugu ikasketa automatikoan erabiltzen den "UCI Machine Learning Repository": ikasketa automatikoko teknika berriak testatzeko erabiltzen den datubase multzo zabala: "view all datasets"-en klikatu. Datu base bakoitzarentzat normalean bi fitxategi daude: bata "*.data"extensioduna non kasu matrizea dugun, eta "*.names" extensiodunean aldagaien eta deskripzioarekin.Gehienak, problema errealak, ikertzaile eta enpresetako jendeak igotakoak.

Orain, ondoko loturan, kurtsoan zehar erabiliko dugun WEKA softwarearen *.arff formatoan eta atentzioa deitu didaten hainbat datubase daude, gainbegiratutako problema errealetan oinarritutak guztiak. Fitxategiak textu editore sinple (e.g. Wordpad) batekin irekiz gero, bere goiko partean, problemaren natura isladatzen du, bere ezaugarri nagusienak. Kurtsoan zehar egingo ditugun ariketetan bai datubasea zuk aukeratu, edo nik proposatuko dizuet: normalean, azpidirektorio honetako batekin. Asko laguntzen du ulertzea tratatzen ari garen problemaren izaera.
Begirada bat eman gainetik fitxategiei: laborategian agertuko dizuedan bezala, "%" sinboloaz hasitako lerroa komentarioa da, eta hauetan problemari buruzko informazioa duzute ("relevant information", "past usage", "number of instances", "class distribution", "attribute information"...) ("attribute", edo guretzako "aldagai iragarlea"); komentarioak eta gero, lerro bakoitzean kasu bat, komen bidez aldagai iragarleak eta klasea banatuz.

Gero, bi datubase aukeratu eta beraientzat hurrengo puntuak agertu:

  1. agertzen duten problemaren natura, oinarria, zergatia agertu

  2. zein da burutu nahi den sailkapen problema?  zehaztu: zein da klasea ("problem class, class to be predicted")? Labur explikatu klaseak har ditzakeen balio desberdinak, eta klase-balio bakoitzarentzat dagoen kasu kopurua (klasearen balioen distribuzioa)

  3. ulertzen dituzun ahalik eta aldagai iragarle ("attributes" deitzen zaie fitxategietan; edo "features", "predictors", "variables") gehienak labur explika itzazu (baino gehinez 5-6). Zenbat aldagai iragarle ditu?

  4. datubasearen problemaren inguruan atentzioa deitu dizun beste edozein puntu: zergatik aukeratu dituzu hauek eta ez beste batzuk? gustokoa duzu? interesantea?... zure komentarioetara irekita.