Adatbányászati technikák 2. labor
Március 3., csütörtök 8:15-9:45, R4M labor
Órai feladatok: ismerkedés a WEKA-val, adatfileok előfeldolgozása,
osztályozás
Pár dolog, ami múlkor nem ment, reméljük most fog:
- Indítsuk el az xservert: XWin
Server (az asztalon).
- A megjelenő terminál ablakban beállíthatunk különféle dolgokat.
Például a VT
Options-ban
bállíthatjuk: Enable Scrollbar.
- Adjuk ki a cd
/cygdrive/c/user/
utasítást!
- Töltsük le az arlista-tab.txt,
bank-data.csv,
uniq.txt,
atlag.awk
fileokat a C:/USER könyvtárba.
- Nyissuk meg a uniq.txt
filet az nedit
uniq.txt
&
paranccsal!
- Nyissunk meg a következő AWK filet az editorban: nedit atlag.awk
&
Adjuk ki a következő parancsot: awk
-f atlag.awk bank-data.txt
Ismerkedés a WEKA-val:
- Indítsuk el a WEKA-t
(D:/Program Files/weka ...) (WEKA manual,
tutorial)
- Indítsuk el az Explorer-t
- Nyissuk meg a bank-data.csv
filet (Open file, File type-> CSV)
- Lehetőségek a Preprocess
menüben:
- Nézzünk bele az adatba (Edit ...)
- Nézzük végig az attribútumokat, adattípusokat
- Mit jelent a hisztogram? Mit lehet állítani?
- Visualize All
- Lehetőségek a Filter menüben (Pl. RemoveUseless)
- Van Undo!
- A Visualize menü
- A Select attibutes menü
- A Classify menü:
- Choose: a klasszifikáló
algorimus kiválasztása:
- lazy / IBk: k-nearest
neighbour, azaz k-legközelebbi szomszéd
- function/SimpleLogistic:
logisztikus regresszió
- function/Logistic:
többváltozós logisztikus regresszió
- rules/ZeroR: többségi
szavazás
- trees/J48: C4 döntési fa
- Test options: Use
training set, Supplied test set, Cross-validation, Percentage split
- Próbáljuk ki az IBk algoritmust különböző beállításokkal! Hogyan
mérjük az eredményt?
- Hozzuk az arlista-tab.txt
CSV formátumra és próbáljuk betölteni a WEKA-ba. (Figyelni kell az
elválasztó karakterre, egyéb speciális karakterekre).
- Szükség esetén változtassuk meg az adattípusokat! Ezt lehet a Preprocess menü algoritmusaival is,
vagy a CSV fileból egyy editor (nedit)
segítségével közvetlenül a WEKA saját formátumába alakíthatjuk: arff file
Az ARFF formátumról itt találhatunk bővebb leírást: http://www.cs.waikato.ac.nz/~ml/weka/arff.html
Egy példa pedig: labor.arff
- Az előállított arlista.arff
fileon kísérletezzünk! Legyen az osztályváltozó az Akciós
attribútum, osztályozzunk az IBk és logisztikus regresszióval,
különféle beállításokkal. Próbáljunk minél jobb eredményt elérni!
- Mi a hatása az IBk
osztályozónál a nearestNeighbourSearchAlgorithm
opciónál a KDTree
választásának?
- Hogyan változnak az eredmények, ha a Test options-nál a Cross-validation helyett a Percentage split-et választjuk? (A More optionsnál változtathatjuk a Random seedet.)
Aki kész van:
- Helyettesítsük az Akciós
attribútumot egy hasonoló eloszlású véletlennel. Hogyan
működnek ezen az osztályozók?
- A Supplied training set
használatához osszuk fel az adatokat 75%, 25% arányban training ill. test adatokra. A kapott adatokkal
futtassuk az osztályozókat!
- Lehet kísérletezni a labor.arff
adatokkal is.
Kiegészítő feladat: képek osztályozása hisztogram alapján
- Írjunk egy programot (tetszőleges programozási nyelven), mely
képekhez hisztogramot
készít. Egy szürke árnyalatos kép hisztogramja egy grafikon, mely
megmutatja, hogy az egyes szürke árnyalatokból hány pixel található a
képen. Hasonlóan kaphatjuk egy kép piros, zöld és kék árnyalathoz
tartozó hisztogramját. Osztályozás szempontjából nincs szükségünk
nagyon részletes leírásra, elég ha a színtartományt néhány (mondjuk 8)
részre osztjuk, és így vizsgáljuk az egyes részekbe eső pixelek számát.
Így mind a három alapszínre kiszámolva a hisztogramot, egy képhez három
darab 8 hosszú vektort kapunk, melyek együttesen egy 24 dimenziós
vektornak tekinthetők.
- A választott programozási nyelven
implementáljuk a K-legközelebbi szomszéd (K-Nearest Neighbour, KNN)
algoritmust az előbbi 24 dimenziós vektorokkal, mint leírókkal. A K
értéke legyen például 5. Először az algoritmus egy adott vektorhoz
keresse meg a (szintén vektorokból álló) refencialista legközelebbi 5
elemét. Majd a legközelebbi szomszédok osztálya alapján többségi
szavazással jósolja meg az adott vektor osztályát.
- Teszteljük programjaink működését. Az itt
található 25 kép egy része téli témájú, a többi nem. Ez az információ
mindegyik képről ismert.
Válasszunk egy tetszőleges képet, és csak a többi kép osztályának
ismeretében osztályozzuk az adott képet. Ismételjük meg az előző
kísérletet különböző nehézségű képekkel.
- Mit módosíthatnánk
az előbbi algoritmuson, hogy jobb eredményt adjon? (Egyformán fontos-e
a kép piros, zöld és kék histogramja a leírásban? Milyen más módon
lehetne egy képhez leírókat rendelni?)