Maa-57.251 Kaukokartoitus I, harjoitukset
Eli neljä harjoitusta, kolme ensimmäistä kannattaa tehdä tietokoneella
(=ohjelmointia), neljänteen riittää kynä ja paperi. Välineet saatte valita
itse, Matlab tai vastaava on hyödyllinen. Joitain Matlab-linkkejä:
Ilmaisia Matlab:in tyylisiä ohjelmistoja Linuxille ovat
Scilab
ja Octave.
Vinkkejä muihin Linux-ohjelmistoihin löytyy Linuxbergistä
I Harjoitus: Bayesin päätösteoria - Bayes decision Theory
Valitse joku näistä aiheista ja lähettäkää
mulle mailia.
Choose some subject and send me email.
Ohjeita suomeksi:
- Tehtävä toteutetaan ohjelmoimalla. Työkalut saatte valita itse.
- Testiaineistona sekä normaalijakautunut data
normal.dat
että ei-normaalijakautunut data
nnormal.dat
. Kummassakin
on viisi luokkaa, kussakin 100 vektoria, dimensio 2 (helppo
visualisoida). Tiedostojen ensimmäinen rivi on varattu
parametreille (voi vaikka poistaa), data alkaa toiselta
riviltä. Datavektorin ensimmäinen sarake ilmoittaa
oikean luokan, toinen sarake ensimmäisen piirteen ja kolmas
sarake toisen piirteen.
- MatLab-käyttäjiä varten on vastaavat tiedostot
normal.mat
ja
nnormal.mat
. Kummassakin varsinainen data on
matriisissa data; ensimmäinen sarake ilmoittaa oikean
luokan, toinen sarake ensimmäisen piirteen ja kolmas sarake
toisen piirteen. Matriisi lm sisältää luokkien
ensimmäisten ja viimeisten vektorien numerot.
- Datan ja tulosten plottausta varten on tehty seuraavat
MatLab-funktiot (HUOM! funktiot on kirjoitettu unix-myllyssä, joten ne
jotka käyttävät näitä M$-pohjaisissa systeemeissä täytyy (ehkä) lisätä
rivivaihdot):
- Plotdata: Plottaa datan ruudulle ja sen syötteenä
on matriisit data ja lm. Luokkien
symbolit ovat: 1. luokka '.', 2. luokka 'o', 3. luokka 'x', 4.
luokka '+' ja 5. luokka '*'.
- Plotresu: Plottaa luokittelutuloksen
eli luokkien alueet ja hylkäysalueen ja sen
syötteenä on matriisit data (luokittelutulos matriisin
neljännessä sarakkeessa) ja lm. Luokkien symbolit ovat:
1. luokka '.', 2. luokka 'o', 3. luokka 'x', 4. luokka '+', 5.
luokka '*' ja hylkäysluokka eli 0 '-'.
- Ploterro: Plottaa
oikein luokitellut alueet, väärinluokitellut alueet
sekä hylkäysalueet. Sen syötteenä on
matriisit data (luokittelutulos matriisin neljännessä
sarakkeessa) ja lm. Alueiden symbolit ovat: luokiteltu oikein
'o', luokiteltu väärin 'x' ja hylätty '*'.
- Virhe- eli confusion-matriisin + tarkkuusluvut voi laskea MatLab-funktiolla
cmatrix.
Syötteenä on vektorit ref (oikeat luokat eli data
matriisin ensimmäinen sarake) ja cla (luokittelutulos). Katso
tarkemmat tiedot funktiosta.
- Luokituksesta tulostetaan confusion-matriisi + tarkkuusluvut sekä plotattu
luokitustulos. Lisäksi verbaalinen selvitys
tehtävän käsittelemästä asiasta. Ei
koodia!
In English:
- You can choose tools by yourselves.
- Testdata is normally distributed data
normal.dat
and nonnormally distributed data
nnormal.dat
. Both have five classes, each class
100 pattern vectors. Dimension is 2 (easy to visualize). First
line is for parameters, data begins from second line. First
column is correct class, second column first feature and third
column second feature.
- MatLab-users have corresponding files
normal.mat
and
nnormal.mat
. Matrix data has testdata; first column is correct class, second
column first feature and third column second feature. Matrix lm
has pointers to first and last datavectors for each class.
- There are also MatLab-functions for dataplotting (NOTE! functions
are written in unix-machine, so people who use M$-based systems must
(maybe) add carriage returns):
- Plotdata: Plots data to screen. Inputs are
matrices data and lm. Symbols for classes are: 1. class '.', 2.
class 'o', 3. class 'x', 4. class '+' and 5. class '*'.
- Plotresu: Plots classification result to screen. Inputs are in matrix data
(classification result in fourth column) and lm. Symbols for
classes are: 1. class '.', 2. class 'o', 3. class 'x', 4. class
'+', 5. class '*' and rejected 0 '-'.
- Ploterro: Plots correctly
classified areas, errorneously classified areas and rejection
areas. Inputs are in matrix data (classification result in fourth
column) and lm. Symbols for areas are: correctly classified 'o',
errorneously classified 'x' and rejected '*'.
- Confusion-matrix + accuracy values can be computed using function cmatrix.
Inputs are vectors ref (correct classes -> first column from
matrix data) and cla (classification result. Details can
be found from file.
- In the end you write paper describing what you did, what were
your results (confusion-matrix etc. and plots) and conclusions. No
code!
II harjoitus: K-lähimmän naapurin päätössääntö - k-nearest neighbor decision
rule
Valitkaa joku aiheista ja lähettäkää mulle mailia. Choose some subject and send me email.
Datajoukot - Datasets:
III harjoitus: Diskriminanttifunktiot - discriminant functions
Valitkaa joku aiheista ja lähettäkää mulle mailia. Choose some subject and send me email.
Datajoukot - datasets:
Tulosteet - Outputs:
- Plotti virheen käyttäytymisestä eri tapauksissa - Plot behaviour of error in different cases
- Lopullinen päätösraja - Final decision surface
Kommentteja - Comments:
- Alkuperäiset hahmovektorit kannattaa augmentoida ([ x1 , x2
] => [ x1 , x2 , 1].
- It is good to augment original pattern vectors ([ x1 , x2 ] => [ x1 , x2 , 1].
- Tämän jälkeen muuta toisen luokan etumerkit, ts. kerro hahmovektorit -1:llä (myö se augmentoinnissa syntynyt kolmas piirre) - Multiply the pattern vectors of another class by -1 (also that third dimension generated by augmentation)
- Ed. kohdan ansiosta hahmovektori on luokiteltu oikein kun w^T*x > 0 - So, pattern vector is classified correctly, if x^T*x > 0
- Korjaa painovektoria väärinluokiteltujen hahmovektorien avulla kun olet tutkinut kaikki luokiteltavat hahmovektorit (talleta samalla väärinluokiteltujen hahmovektorien etäisyydet päätösrajaan) - Correct weight vector using errorneously classified pattern vectors when you have tested all pattern vectors (save the distance between decision boundary and errorneously classifed pattern vector)
- Paras tapa hahmottaa systeemin käyttäytymistä on plotata väärinluokiteltujen hahmovektorien etäisyyksien summa iterointikierrosten funktiona - Maybe the best way to visualize the performance of system is to plot the sum of distances between decision boundary and errorneously classified pattern vetrors as function of iteration rounds
- Datan plottaus tapahtuu funktiolla h3plot.m. Syötteenä
funktioon on matriisi data (100 by 3). - You can plot data using
Matlab-function h3plot.m. Input for function is matrix data (100 by 3).
- Päätösrajan plottaus käytettäessä
alkuperäistä dataa tapahtuu funktiolla h3wlin.m. Syötteenä funktioon on painovektori w (dimensio=3). - Plotting of decision surface can be made using MatLab-function h3wlin.m. Input for function is weight vector w (dimension=3).
- Kvadraattisessa tapauksessa päätösrajan plottaus
tapahtuu funktiolla h3wquadp.m tai h3wquadm.m (kumpi sopii paremmin). Syötteenä funktioon on painovektori w (dimensio=6). - In quadratic case plotting of decision surface can be made using MatLab-function h3wquadp.m or h3wquadm.m (which one is more suitable). Input for function is weight vector w (dimension=6).
IV harjoitus: Ryhmittelyanalyysi - clustering analysis
Harjoitus annetaan vastaavan luennon jälkeen - Exercise will be given after
corresponding lecture
Palaa laboratorion pääsivulle
- Main page of laboratory
URL: http://foto.hut.fi/~markus/Mrs/
Tehnyt: Markus Törmä (Markus.Torma@hut.fi)