2008/2009. tanév II.(tavaszi) félév
ELTE, 5PTM, IKP-4IK4G (GYAK  SAS része)
Az információ-kezelés elmélete és gyakorlata/4.
Kedd 14:14-től 15:45-ig 00.807 Adatbázis-labor
Kedd 16:00-tól 17:30-ig 00.807 Adatbázis-labor

1. Követelmények, infók
> 1.1. A gyak.célja/előfelt.
> 1.2. Követelmények
> 1.3. ZH eredmények
> 1.4. Indexbeíratás
2. Tematikák, segédanyagok
> 2.1. Előzetes heti tematika
> 2.2. Gyak. anyaga (jelszóval)
> 2.3. Tudnivalók a SAS zh-ról
> 2.4. SAS mintazh és útmutató
3. Adatbányászat/SAS linkek
> 3.1. Ajánlott irodalom
> 3.2. magyar nyelvű linkek
> 3.3. angol nyelvű linkek
> 3.4. SAS /SAS OnlineDoc
     
    
Budapest, 2006. február 6.
Utolsó módosítás: 2009. márc.10.   
dr. Hajas Csilla, ELTE IK   
E-mail: sila@inf.elte.hu        
 
Vissza a Kezdőlapra 
 

1. KÖVETELMÉNYEK, INFÓK

1.1. A gyakorlat célja és előfeltétele

Az információ-kezelés elmélete és gyakorlata/4. tantárgy gyakorlatai két csoportban
vannak az 00-807 Adatbázis-laborban az 5.éves programtervező matematikusok részére.
A tantárgy felvétele: Az ETR-en keresztül lehet jelentkezni. Előfeltétele: Inf.kez./3.

Ezeken a gyakorlatokon két fő témakört dolgozunk fel, különböző gyakorlat-vezetőkkel:
I.Témakör: SAS  (Hajas Csilla) – 1-6.héten (2009. febr.9- márc.22-ig, ZH: 6.héten),
II.Témakör: XML (Hernáth Zsolt) – 7-12.héten (2009. márc.23-tól május 10-ig), 
és a 13.héten (május 11-17 héten közös gyakorlat: a jegyek lezárása, javító/pótZH írás).

A SAS gyakorlatok célkitűzése:
SAS programozási alapok elsajátítása, a SAS eszközeire épülő magas szintű adatfeldolgozás,
és az adatbányászati algoritmusok kipróbálása a SAS/Enterprise Miner szoftverrel.

1.2. Követelmények (a gyakorlati jegy szerzése)

Gyakorlati jegyet az szerezhet, aki
részt vesz a gyakorlatokon (min. 60%-os jelenlét, kivéve
  ha előre jelezte, hogy nem tud járni, pl. Erasmus hallgató),
- megírja a géptermi Zh-t SAS-ból (Hajas Tanárnőnél), 
- bemutatja az XML beadandót (Hernáth Tanárúrnál). 
A gyakorlati jegyet a két jegy átlaga alapján számoljuk (felfelé kerekítve).

1.3. ZH eredménye (Név nélkül, 3 karakteres kóddal)

Katalógus/adatlap (mint pl. gyakorlatok alóli mentesség és a jelenléti ívek), 
valamint a félév során a SAS zh ereménye (feladatonkénti részpontokkal).
SAS zh jegy és az XML beadandó jegy (felfelé kerekített) átlaga adja
gyakorlati jegyet: >> lásd Infkez4.pdf (jelszóval elérhető) táblázatban
(itt név nélkül illetve az ETR azonosító nélkül -> csak 3 karakteres kóddal).
 
SAS zh pontozása:
3 pont/ feladat, ha jó a megoldás és az eredmény is, és jól válaszolt a feladatlapon. 
2 pont/feladat, ha jó a megoldás, de hibás vagy hiányzik a feladatlapon a válasz.
1 pont/feladat, ha hiányos a megoldás és nem válaszolt a feladatlap kérdésére.
0 pont/feladat, ha nincs vagy rossz a megoldás.
--------------
össz.15 pontot lehetett szerezni (az 5 feladatra)
 
Ponthatárok:
Pont: 0-6 7 8 9 10 11 12 13-15
Jegy: 1   2   2/3   3   3/4   4   4/5 5

1.4. Gyakorlati jegyek indexbeíratása

Az utolsó gyakorlaton illetve vizsgaidőszakban a fogadóórákban.

2. TEMATIKÁK, SEGÉDANYAGOK

2.1. Előzetes heti tematika

SAS 1.hét
febr.10-12.
SAS Programok/1
PROC step
SAS rendszer SAS fejlesztő környezet:
SAS terminológia: SAS data set (tábla)
változó(oszlop), obs/megfigyelés (sor).
SAS programok: DATA step, PROC step.
PROC steps (részletesen): proc contents,
proc print, proc sort, proc freq, proc means,
proc report, proc tabulate, proc gchart, stb.
SAS 2.hét
febr.17.
SAS Programok /2
 DATA step
DATA steps: infile, input (SAS data sets
létrehozása, nyersadatok beolvasása)
file, put (kiíratás SAS data sets-ből, stb).
Változók használata: drop, keep.
Összefűzés/fésülés: append, merge.
Az if elágazás és a ciklusutasítások.
SAS 3.hét
febr.24.
Enterprise Miner /1


SEMMA:
1. Sample (minta)


2. Explore (feltárás)
 
SAS EM használata (library létrehozása,
       adatfájl importálása ->SAS data sets,
       EM project és diagram létrehozása)
Adatbányászati eszközök csoportosítása:
Input Data Source (input adathalmaz)
Sample (mintavételezés)
Data Partition (training, validation, test)
Cluster (klaszterezés)
MultiPlot (grafikus bar chart, scatter plot)
StatExplorer (eloszlások, statisztikák) 
SAS 4.hét
márc.3.
Enterprise Miner /2
2. Explore (feltárás)

3. Modify (adatm.)


Az új Enterprise Miner 5.2 környezet.
Association (asszociációs szabályok,
gyakori hz keresése, szekvencia elemzés)
Filter Outliers (kiugró értékek szűrése)
Impute (hiányzó értékek pótlása)
Transform Variables  (változó transzf.)
SAS 5.hét
márc.10.
Enterprise Miner /3
4. Model (modell)


5. Assess (kiérték.)
Utility (segédeszköz)
Osztályozás és előrejelzés:
Regression (lineráris és logisztikus)
Decision Tree (döntési fa)
Neural Network (neurális hálózat)
Score, Model Comparison, Assess
Metadata, SAS Code
SAS 6.hét
márc.17.
Gépes számonkérés Részleteket lásd az alábbi menüpontban:
2.3. Tudnivalók a SAS zárthelyiről
2.4. SAS mintaZH és javítási útmutató 
XML 7-12.hét   XML (Hernáth Zsolt gyakorlat vezetésével)
utolsó 13.hét
május 12.
Javító dolgozat Gyakorlati jegyek lezárása és indexbe
való beíratása. + SAS javító dolgozat
+ XML beadandó (akinek még kell)

2.2. A SAS gyakorlatok anyaga (jelszóval)

>> SAS programozás 
>> SAS Enterprise Miner
 
SAS programozás

Előkészítés: a SAS adathalmazokat innen: SASdataProgr/  másold be az 
'S:\My Documents\sasgyak\'  könyvtárba, és a SAS programban állítsd be:
libname sasgyak 'S:\My Documents\sasgyak\';

Az 1-2. gyakorlatok SAS programozás mintaprogramjai (magyarázó szöveggel),
      Mintaprogramok  illetve pdf-ben is
1.) febr.10. ProcStep09f.sas ProcStep.pdf
2.) febr.17. DataStep09f.sas DataStep.pdf

További alapSAS dokumentáció: SAS 9.1.3 Documentation oldalról például:  
> SAS alapok > SAS 9.1.3 Language Reference: Concepts (651 oldal)                        
> SAS proc step > Base SAS 9.1.3 Procedures Guide (1906 oldal)
> SAS data step > Step-by-Step Programming with Base SAS (788 oldal)

SAS Enterprise Miner

Előkészítés: a SAS adathalmazokat innen: SASdataEMiner/  másold be a
'T:\sasgyak\' könyvtárba (a SAS Miner konfig nem látja az S: meghajtót, csak T:-t).

Továbbá sok SAS minta adathalmaz elérhető, ezekhez is beállítjuk a könyvtárat.
Indítsuk el a SAS Enterprise Miner 5.2 programot, hozzunk létre egy új projectet
Path: T:\sasgyak\ könyvtárban és az új project Start-Up Code-jába írjuk be:
libname sasgyak 'T:\sasgyak\';
libname dmadatok 'C:\Program Files\SAS\SAS 9.1\dmine\sample';
libname egadatok 'C:\Program Files\SAS\Enterprise Guide 4\Sample\Data';
Hozzunk létre egy új diagramot, további technikai információ és 3-5. gyakorlatok
feladatai az  E1Miner09f.pdfE2Miner09f.pdf és E3Miner09f.pdf bemutatókban.

Az Enterprise Miner bemutatók a SAS EM Help alapján készültek, amelyet
lásd az Adatbázis labor gépein: Start >> Minden program >> SAS >>
                                               >>SAS Enterprise Miner 5.2 >> EM Help
Jól használható: Getting Started with SAS Enterprise Miner 5.2  (.pdf, 152 oldal)
SAS dokumentáció, amit bárhonnan el tudnak érni (nemcsak az Adatbázis laborból).

Adatbányászat és adattárházak alapjait az előző tanévben IKP-4IK1E kurzuson
dr. Kiss Attila előadásain
már tanulták lásd 2007.őszi félév: Inf.kez.I. (IKP-4IK1E)
ennek jelszavas bemutatói: 074ik1e02.ppt. Erre épül ez az adatbányászati technikák
gyakorlatunk. Ajánlom továbbá Han-Kamber Slide-jait és Ullman Slide-jait.

       SAS EM bemutató  Han-Kamber Slides Ullman Slides     
3.) febr.24. E1Miner09f.pdf Klaszterezés 07.ppt   
4.) márc.3. E2Miner09f.pdf GyakoriHalmaz 05.ppt   
5.) márc.10. E3Miner09f.pdf Osztályozás 06.ppt   

6.) márc.17. géptermi SAS Zh 
13.) máj.12. SAS javító Zh + indexbeíratás
Gyak.UV.: kb.május 20-a körül, később lesz pontosan meghirdetve.
>> 2.3. Tudnivalók a SAS zárthelyiről és
>> 2.4. SAS mintaZH és javítási útmutató (2007-es mintaZH)

2.3. Tudnivalók a SAS zárthelyiről

Gyakorlati jegyet csak az szerezhet, aki az XML és SAS részt is teljesíti,
vagyis bemutatja az XML beadandó feladatot, és megírja a SAS ZH-t.
 
SAS géptermi zárthelyi dolgozatot a 6.gyakorlaton két csoportban íratom:
2009. márc. 17-én Kedden 14:15-15:45-ig és 16:15-17:45-ig lesz a SAS ZH.
 
A zárthelyi dolgozat zártkörű, vagyis a dolgozatírás alatt csak a gyakorlaton résztvevő
dolgozatot író hallgatók tartózkodhatnak a laborban (hozzatok személyi azonositó iratot).
A zh-n segédeszköz használható, SAS Help, SAS OnlineDoc dokumentáció, könyvek,
az internetről a SAS honlapjáról vagy egyetemi honlapokról letölthető SAS oktatási anyagok,
az órai példák is felhasználhatók, de egymás segítsége nem, csak önálló munkát értékelek!
A zh alatt tilos mobiltelefont használni, e-mailezni vagy egyéb módon üzengetni!

A feladatokat az alapSAS 9.1 és az Enterprise Miner 4.3 vagy 5.2 szoftverrel oldjuk meg.
 
A kiosztott feladatlapot be kell adni, írja rá a nevét és az ETR_azonosítóját (EHA-kód).
A feladatlapon konkrét kérdések is találhatók az eredményekkel kapcsolatban, amelyekre
a választ a feladatlap kitöltésével kell megadni. Kérem, hogy a feladatlapon jegyezze fel a
legfontosabb lépéseket és beállításokat, és ha van idő értékelje a módszert és az eredményt.
A feladatokban szereplő SAS adattáblák a ZH alatt letölthetők lesznek a feladatlapon
feltüntetett helyről. Sokféle feladatlap lesz, így mindenki különböző táblákból dolgozhat.
 
Az 1-2. feladatok megoldásait a SAS progr.nyelvén (DATA és PROC steps) adjuk meg,
a programokat lefuttatva a SAS forráskódot és az  „Output” ablak tartalmát összefűzve
egyetlen fájlban helyezzük el. A feladatlapon szereplő kérdésekre (csak ezekre) válaszoljunk!
 
A 3-5. feladatokat
a SAS Enterprise Minerrel végezzük el, itt (ha nem nagy) küldjük be
a SAS EM által generált SAS forráskódot valamint ahol van „Output”ablak (és nem nagy),
ennek a tartalmát vagyis ennek inkább a legmeghatározóbb részét is fűzzük hozzá a szövegfájlhoz.
A feladatlap kérdéseire a „Results” eredmény alapján válaszoljunk valamint azt is jegyezzük fel,
hogy mik voltak a legfontosabb lépések és milyen beállításaink voltak! Ha az időnk engedi, akkor
indokoljuk meg a választ, értékeljük ki az eredményt vagy írjuk le a használt módszerek lényegét!
 
Kérem, hogy az 1-2 feladatok SAS forráskódját és a 3-5 feladatok „SAS Code” illetve
„Output” tartalmát egyetlen szövegfájlba másolja össze. A szövegfájlban a feladatlapon
megadott kérdések sorrendjét kövesse valamint megjegyzésekkel világosan különítse el,
hogy melyik rész melyik feladathoz illetve melyik részfeladathoz tartozik. A szövegfájl neve
ehakod.txt legyen, ahol az ehakod helyére írja be a saját EHA-kódját, vagyis az ETR
azonosítóját (.ELTE nélkül). Ha kész van, akkor ezt az ehakod.txt fájlt anonymous FTP-vel
töltse fel az ablinux.inf.elte.hu gépre pub/sila alkönyvtárába. Részletek, lásd zh beküldése.
Azonban a fájlt csak egyszer küldheti át, az nem írható felül és nem is nyitható meg!

Az SAS zh eredménye (név nélkül, csak 3karakteres kóddal, feladatonkénti részpontokkal)
1.3. ZH eredmények-nél lesz és amikor kiírom arról egy kurzusmailben küldök értesítést.

2.4. SAS mintaZH és javítási útmutató pontozással

EGY MINTA SAS zárthelyi dolgozat és a PONTOZÁSA:
Pontozás: minden feladat 3 pontos, összesen 5 feladat van, vagyis 15 pont érhető el.

Előkészítés: a SAS adathalmazokat a feladatlapon szereplő könyvtárból másoljuk át
a T: meghajtón létrehozott Zh nevű könyvtárba.
A feladatlapon szereplő adathalmazok eléréséhez állítsuk be az alábbiakat:
libname Zh 'T:\Zh\';
libname Dm 'C:\Program Files\SAS\SAS 9.1\dmine\sample';
libname Eg 'C:\Program Files\SAS\Enterprise Guide 4\Sample\Data';

1. feladat: Készítsünk statisztikát a Eg FITNESS adathalmazról a „Maximum heart rate”
cimkéjű változó (maximális pulzus) alapján: mennyi az átlag, a szórás és a medián?

1. feladat pontozása:
A programra 2 pont, 1 pont: proc means data = libname.fitness mean std median;
így pl. aki std (stddev) szórás helyett range-t használt, ezt az 1 pontot elveszítette,
1 pont: var maxpulse; vagyis itt a változó neve kell, nem pedig a címke (Label),
és a lapon a kérdésére a válasz is 1 pont (de a std hiba miatt nem vontam le újból).

2. feladat: Készítsünk gyakorisági statisztikát a Eg CARS_1993 adathalmazról, a „drága”
autóknak (ahol Price alapján 15 alatt olcsó, 15 és 25 között átlagos és 25 felett „drága”)
hány százaléka „erős” (ahol Horsepower alapján 150 alatt gyenge, 150 felett erős).

2. feladat pontozása:
A proc format-ra 1 pont, proc freq-re 1 pont, és 1 pont a lapon a kérdésére adott válasz,
de csak a jó válasz (például itt 85% a megfelelő érték, de ha nem jó értéket írt ki, vagy
a teljes kereszttáblát kiírogatta, az nem ér pontot, csak a kérdésre adott pontos válasz).

3. feladat: Készítsünk klaszter-elemzést Eg LIPID adathalmazra, melynek során soroltassuk
3 csoportba a vérzsirszinteket. Előtte tanulmányozzuk át az adatokat, milyen változókat
vennél figyelembe, az adatok hány százaléka hiányzó érték? Mennyi a koleszterin szint
(Cholesterol) átlaga az előállt klaszterekben?

3. feladat pontozása:
1 pont: a megfelelő változók kiválogatása, például interval változók (ne binary, ne ordinal),
itt a példában a változók egy részére 55% a hiányzó érték, ezeket ne vegyük figyelembe,
hiszen a változók zöménél 0% vagyis nincs hiányzó érték, így inkább ezekre készítsük el.
1 pont: a standardizálásra, a beküldött outputból tudom ellenőrizni, hogy melyik opciót
(None, Range vagy Std Dev.) választotta (a None az nem jó, hogy nem standardizált),
de a legjobb, ha a feladatlapon is feljegyzi a változók szerepkörét és a StdDev-et is.
1 pont: a lapon a kérdésére adott választ a Statistics fülből kell kiírnunk a klaszterátlagot.
A standardizálás miatt az Output fülnél másképp néznek ki az eredmények, mégis innen
az Outputból vágjuk ki a megfelelő eredménytáblát a beadandó a szövegfájlba.

4. feladat: Végezzünk asszociációs elemzést a Dm ASSOCS táblán arra vonatkozóan,
hogy mely termék vásárlása mely más termék vásárlását vonja gyakran maga után. 
(Costumer a kosár, a Product a termék azonosítója). Állapítsuk meg az asszociációs
szabályok közül a két legerősebbet.

4. feladat pontozása:
A programra 2 pont, az Input Data Source-ban állítsuk be Costumer id és Product target.
Itt a beadandó szövegfájlhoz nincs mit csatolnunk, a feladatlapon válaszoljunk a kérdésre,
és a választ indokoljuk meg, 1 pont. 

5. feladat:
Készítsünk regressziós elemzést a Eg AUCTION adathalmazra, melynek során
vizsgáljuk meg, hogyan hat a piac működési költségére (Cost) az, hogy melyik állatból
mennyit adtak el a piacon (a táblában ezresekben vannak az adatok megadva).
Előtte tanulmányozzuk át az adatokat, milyen változókat ne vegyük figyelembe?
A regressziós elemzés alapján melyik a legmeghatározóbb paraméter és mi a t-értéke?

5. feladat pontozása:
A programra 2 pont, nincs különösebb teendőnk, mint az Input Data Source-ban beállítani
a fenti példában Cost target és Volume rejected (a többi marad input, illetve a Marketid id).
Ne feledkezzünk el az adathalmaz partícionálásáról, állítsuk be hány százaléka legyen a tanítási,
az érvényesítési és a teszt adathalmaz, jegyezzük fel a feladatlapra ezeket a beállításokat.
Az output ablakból csak a legjellemzőbb elemzési táblát csatoljuk a beadandó szövegfájlba.
A feladatlap kérdésére a helyes válasz 1 pont (legmeghatározóbb a cattle és t-érték: 7.62).

Ponthatárok:
Pont: 0-6 7 8 9 10 11 12 13-15
Jegy: 1   2   2/3   3   3/4   4   4/5 5

3. ADATBÁNYÁSZAT/SAS LINKEK

3.1. Ajánlott irodalom
3.2. magyar nyelvű linkek
3.3. angol nyelvű linkek
3.4. SAS / SAS OnlineDoc

3.1. Ajánlott irodalom

[AbJ]
[Han]
[AdZ]
[IA2]

Abonyi János (szerk): Adatbányászat a hatékonyság eszköze, Comp.Books, 2006.
J.Han-M.Kamber: Adatbányászat – Koncepciók és technikák, Panem, 2004.
P.Adriaans-D.Zatinge: IT - Adatbányászat, Panem, 2004.
Iványi Antal (szerk): Informatikai algoritmusok II., ELTE Eötvös Kiadó, 2005.
                                28. fejezet Gyakori elemhalmazok keresése (Bodon Ferenc)
                                29. fejezet Klaszterezés (Fogaras Dániel és Lukács András)
 

3.2. magyar nyelvű linkek

Bodon Ferenc (BME) Adatbányászati algoritmusok (PDF kiváló könyv a weben)
Kiss Attila (ELTE) Az információkezelés elmélete és gyakorlata (IKP-4IK1E) itt:
                   Adattárházak/adatbányászat 074ik1e02.ppt (jelszavas bemutató)
Lukács András (SZTAKI) Adatbányászat előadás 2005-ös diái
Lukács András (SZTAKI) Adatbányászat szeminárium
Sidló Csaba (SZTAKI) ELTE SAS gyak.(2004/2005. tanév)
Sidló Csaba (SZTAKI) Data Warehouse - Adattárház
SZTAKI Data Mining and Web Search Group
Adatbanyaszat.lap.hu
Magyar Adatbányászok Honlapja

3.3. angol nyelvű linkek

J.Han - M. Kamber: Data Mining: Concepts and Techniques (SLIDES)
Jeffrey D. Ullman honlapján Data Mining Lecture Notes oktatási anyag
UCLA > Stat.Comp. > SAS Resources to help you learn and use SAS

-- Kérlek, küldj be linkeket, ha az interneten  nézelődve látsz jó adathalmazokat!
-- lásd  Public Datasets links  (publikus adatok - az adatbányászati elemzésekhez)

3.4. SAS/SAS OnlineDoc (SAS Product Documentation)

Angol nyelven:
SAS honlapja: SAS
SAS Technikai támogatás             
 
SAS Product Documentation    
SAS Technical Papers 
 
Magyarul:
SAS Magyarország 
Egyetemi Program
   

SAS diákklubja: SAS Masters' Club
SAS Egyetemi Program az ELTE-n                  



Fel a Lap tetejére                                      Vissza a Kezdőlapra