«K auzokide hurbilenak»: berrikuspenen arteko aldeak

ez dago edizio laburpenik
t (Marklar2007 wikilariak «K auzokide hurbilenak (K-NN)» orria «K auzokide hurbilenak» izenera aldatu du)
No edit summary
'''K auzokide hurbilenen''' metodoa (ingelesez '''''{{lang-en|k-nearest neighbors'''''}} edo '''K-NN''') [[Datu-meatzaritza|datu-meatzaritzan]] sailkapen gainbegiraturako metodo bat da. Entrenamendurako kasuen artean, K auzokide hurbilenetan oinarritzen da kasu berrien sailkapena egiteko. Hurbileneko K auzokideen klase-aldagaiaren balioa aztertu eta sarrien agertzen den klasea esleitzen zaio kasu berriari.
 
K-NN algoritmoak ikasketa nagia edo alferra (''lazy learning'') egiten duela esaten da, ez duelako eredu bat induzitzen ikasketa-fasean; entrenamendurako datu-basetik eredu bat sortu beharrean, datu-base berarekin egiten da kasu berriaren klase-aldagaiaren iragarpena test-fasean.
 
== Algoritmoa ==
[[Fitxategi:KnnClassification.svg|link=https://eu.wikipedia.org/wiki/Fitxategi:KnnClassification.svg|thumb|206x206px|K-NN algoritmoaren adibidea. Sailkatu nahi den elemenutuaelementua zirkunferentzia berdea da. K=3 den kasurako zirkunferentzia ''triangelu'' klase bezala sailkatzen da. Karratu bakarra eta bi triangelu daudelako zirkuluan. K=5 den kasurako zirkunferentzia ''karratu'' klase bezala sailkatzen da. Bi triangelu eta hiru karratu daudelako kanpoko zirkuluan.]]
Entrenamendu fasean, [[Datu-base|datubasean]] ukango ditugun kasu guztiak gordeko ditugu, haien aldagai iragarle eta klasearekin.
 
Sailkatze fasean, erabiltzaileak K konstantea definitzen du eta sailkatu nahi duen kasu berria aurkezten du. Helburua kasu berri hori klase bat esleitzea denez, hurbilen dauden K elementuen artean gehien agertzen den klasea esleituko diogu, ondoko adibidean ikusten den bezala.
 
Bi elementuen artean “berdinketa” dagoen kasuan, klase bat eukeratzeko aterabide ezberdinak daude, besteak beste, hurbilenaren klasea esleitzea, edo batazabestekobataz besteko distantzia txikiena duen klasea aukeratzea.
 
Gehienetan erabiltzen den distantzia, [[distantzia euklidearra]] da.
 
== Algoritmoaren aldaerak ==
Oinarrizko algoritmoari aldaera batzuk egiten ahal zaizkio. Horrela batzuetan emaitza hobeak lor daitezke, datubasedatu-base batzuetan kasu batzuek ez daukatelako berme asko, edo distantzia kalkulatzeko modu ezberdinak erabiltzen ahal direlako, adibidez.
 
=== K-NN bermegabeak baztertuz ===
Aurretik hautatutako atalase baten bidez sailkatu nahi diren kasuek berme nahiko duten aukeratzen da, eta haien artean gehiengo absolutuaren bidez kasu berria sailkatzen da.
 
Adibidez, entrenamendu datubaseandatu-basean 2 klase ezberdinetan banatutako 10 kasu baldin badaude, atalasea 6koa jartzen da. Hori dela eta, kasu berri batek gutxienez sei bozka izan beharko ditu sailkatu ahal izateko.
 
=== K-NN aukeratutako auzokideen pisaketarekin ===
 
=== K-NN batazbesteko distantziarekin ===
Kasu berritik K elementu hurbilenak kontutan hartuz, klase berdineko elementuen eta kasu berriaren arteko distantzien arteko batazbestekoakbataz bestekoak kalkulatzen dira, klase bakoitzeko. Ondoren, batazbestekobataz besteko distantzia euklidear txikiena duen klasea esleituko zaio kasu berriari.
 
=== K-NN distantzia minimoarekin ===
Klase bakoitzari ordezkari bat esleitzen zaio eta kasu berrien sailkapena klaseen ordezkariekin 1-NN egitea izango litzateke, hau da, kasu berriari hurbilen duen ordezkariaren klasea esleituko zaio. Ordezkaria aukeratzeko, gehienetan barizentrutik[[barizentro]]tik (klase berdineko elementu guztien "zentroa") hurbilen dagoen kasua hautatzen da.
 
=== NN aldagaien pisaketarekin ===
</math>
 
== Hasierako datubasekodatu-baseko datu kopuruaren murriztea ==
Hasierako datubasekodatu-baseko datu kopurua murrizteko bi metodo nagusi daude: Edizioa eta kondentsazioa. Edizio bat egitean, hasierako kasu guztietatik abiatuz batzuk kentzen zaizkio eta kondentsazio bat egitean aldiz, datubasedatu-base huts batetik abiatuz beharrezkoak diren kasuak sartzen zaizkio.
 
=== Harten kondentsazioa ===
X entrenamenduko datubaseadatu-basea izanik eta U sortuko den datubasedatu-base berria (hasieran entrenamenduko datubasekodatu-baseko lehen elementua sartuko da, hutsa egon ez dadin),  iterazio bakoitzean, Xko elementuak korritu eta x elementu bat bilatu, non bere U-ko elementu hurbilenak klase ezberdin bat duen. x Xtik kendu eta U-ra gehitu eta errepikatu U ez aldatu arte.
 
Azpiko irudietan Harten kondentsazioaren emaitzak ikus daitezke. 1.irudian, hasierako datubaseadatu-basea ikus daiteke, non elementu bakoitzaren koloreak bere klasea adierazten duen. Bigarren irudian, 1.irudiko kasuek 1-NN sailkatzeilearekinsailkatzailearekin daukaten predikzioak agertzen dira. 3.irudian, sailkapen berdina egiten da, 1-NN ordez 5-NN erabilita eta zonalde txuriekzuriek sailkatu gabeko kasuak erakusten dituzte (bi klaseen arteko berdinketa egon delako, adibidez). 4.irudian, Harten kondentsazioa egin ondorengo datubase berria agertzen da eta 5.ean, datubasedatu-base berri horri aplikatutako 1-NNren emaitzak.
<br /><gallery>
Fitxategi:Data3classes.png|1.Irudia: Entrenamenduko datubaseadatu-basea
Fitxategi:Map1NN.png|2.Irudia: Entrenamenduko datubaseadatu-basea 1NN aplikatuta
Fitxategi:Map5NN.png|3.Irudia: Entrenamenduko datubaseadatu-basea 5NN aplikatuta
Fitxategi:ReducedDataSet.png|4.Irudia: DatubaseDatu-base murriztua
Fitxategi:Map1NNReducedDataSet.png|5.Irudia: DatubaseDatu-base murriztua 1NN aplikatuta
</gallery>
 
 
=== Wilsonen edizioa ===
Datubaseko elementu bakoitzari K-NN algoritmoa aplikatzen zaio (nahi dugun K hartuta), K elementu hurbilenetatihurbilenetari sarrien agertzen den klasea esleitzen diogu. Hortik, esleitutako klasea eta klase erreala ezberdinak badira, kasua datubasetikdatu-basetik ezabatzen da eta bestela gordetzen dugu.
 
== Erreferentziak ==
 
== Ikus, gainera ==
* [[Datu-meatzaritza|Datu meatzaritza]]
* [[Erabaki-zuhaitzen bidezko ikaskuntza|Erabakitze Zuhaitzak]]
* [[Algoritmo genetiko]]ak
199.780

edits