T-61.2010 UKK - FAQ / Harjoitustyö Versio 1.0 Päivitykset: v 1.0 2005-12-01: #1, #2 ------------------------------------------------------------------ FAQ #1 Harj.työ #1 ominaiskasvot: miksi muokatut kasvokuvat/ominaiskasvot lähes pelkästään mustaa? #2 Harj.työ #2 luokitin: Mitä tarkoittaa luokitteluvirhe? ------------------------------------------------------------------ 2005-12-01 #1 Harj.työ #1 ominaiskasvot: miksi muokatut kasvokuvat/ominaiskasvot lähes pelkästään mustaa? Yksi mahdollinen syy on, ettei arvoja ole skaalattu koko harmaasävyalueelle. uint8-muodossa numeroarvo 0 vastaa mustaa ja 255 valkeaa ja muut arvot välissä vastaavia harmaasävyjä. Jos luvut ovat esimerkiksi 10:n ja 30:n välillä, niin kaikki pisteet ovat lähes yhtä tummia. Jos D on kuvamatriisi, niin min(D(:)) antaa pienimmän arvon ja max(D(:)) suurimman arvot, ja nämä voidaan skaalata (esimerkiksi) lineaarisesti 0:n ja 255:n väliin. Useat Matlabin piirtofunktiot toimivat sellaisenaan uint8-tyypin datoille. Jos taasen matriisi on tyyppiä double, niin piirtofunktiot haluavat saada kaksi arvoa, jotka kuvaavat mustaa ja valkoista. 2005-12-01 #2 Harj.työ #2 luokitin: Mitä tarkoittaa luokitteluvirhe? Tässä tapauksessa meillä on 150 datapistettä, joista 90 kuuluu opetus- ja 60 testausjoukkoon (luokiteltaviin). Testausdatalla pyritään selvittämään, mikä on luokittimen luokitteluvirhe. Luokitteluvirheen laskemiseksi pitää tietää, mikä on luokiteltavan datan oikea (alkuperäinen) luokka. Oletetaan seuraava tilanne, jossa on kolme luokkaa A, B ja C, ja kustakin luokasta on 20 testausdatavektoria. Olkoon niin, että (oikeasti) luokan A 20 vektorista luokitin luokittelee 18 kuulumaan luokkaan A, 1 kuulumaan luokkaan B, ja 1 luokkaan C. Oikein luokiteltuja on 18 ja väärin 2. Tehdään sama B:lle ja C:lle ja saadaan alla oleva taulukko. | A B C e ----------------------- A | 18 1 1 2 B | 1 19 0 1 C | 3 2 15 5 Nyt voidaan siis sanoa, että 60:sta näytteestä luokiteltiin 52 oikein ja 8 väärin. Luokitteluvirhe on (8/60)*100% = 13%. Käytännössähän luokitteluongelma on sellainen, ettei luokiteltavien luokkaa tunneta. Muutenhan jos luokat tunnettaisiin, ei olisi mitään luokiteltavaa. Tehtävän tarkoituksena on siis vain osoittaa k-lähimmän naapurin luokittimen toiminta.