ELTE, 5PTM, IKP-4IK4G (GYAK  SAS Data Miner)
Az információ-kezelés elmélete és gyakorlata/4. gyak
2009/2010. tanév II. félév - gyak.vez: dr. Hajas Csilla
Gyak: Kedd 14:00-tól 15:30-ig D-2.520 Mest.int.labor

KÖVETELMÉNYEK és ZH INFÓ TEMATIKA és SEGÉDANYAGOK
> 1.1. A gyakorlat célja és előfeltétele
> 1.2. Gyakorlati követelmények
> 2.1. Előzetes heti tematika
> 2.2. SAS gyak. anyaga (jelszóval)
> 3.1. Tudnivalók a SAS zh-ról
> 3.2. SAS mintazh és útmutató
> 3.3. SAS zh feladatai és eredménye 
> 4.1. Irodalom és hasznos linkek
> 4.2. SAS links /SAS OnlineDoc
> 4.3. SAS álláslehetőségek
       
Budapest, 2006. február 6.                           
Utolsó módosítás: 2010. máj.5.
   
Vissza a Kezdőlapra     
dr. Hajas Csilla, ELTE IK   
http://people.inf.elte.hu/sila
    
E- mail: sila@inf.elte.hu     

1. KÖVETELMÉNYEK, INFORMÁCIÓ

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

Az 5.éves programtervező matematikusok részére ebben a félévben utoljára meghirdetett
információ-kezelés elmélete és gyakorlata/4. gyakorlata az 2-520 MI laborban van.
A tantárgy felvétele: Az ETR-en keresztül lehet jelentkezni. Előfeltétele: Inf.kez./3.

Két fő témakört dolgozunk fel a gyakorlatokon, különböző gyakorlat-vezetőkkel:
 I. XML (Hernáth Zsolt) – 1-6.héten (2010. febr.8-tól márc.21-ig) +13.héten (máj.11-én)
II. SAS  (Hajas Csilla) – 7-12.héten (2010. márc.22-től máj.10-ig) + JavZh (máj.18-án)
     SAS zh: 2010. máj.4.
(és javZh: máj.18.) Lásd még >> 3.1. Tudnivalók a SAS zh-ról
   
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.
A SAS 9.2 a statisztikai elemzések kidolgozása, jelentések készítése, vizuális megjelenítése.
A különböző adatbányászati algoritmusok kipróbálása a SAS Enterprise Miner szoftverrel,
SAS adattáblák adataiban rejtett törvényszerűségek, tendenciák, szabályok, minták feltárása,
az eredmények kiértékelése, értelmezése valamint jelentések és előrejelzések elkészítése.
SAS elérése az ELTE-n lásd >> SAS az ELTE-n

1.2. Gyakorlati követelmények

Gyakorlati jegyet az szerezhet, aki
1.) Részt vesz a gyakorlatokon (max.4 gyakorlatról való hiányzás engedélyezett).
     Aki 4-nél többször hiányzik nem szerezhet gyak.jegyet még gyak.uv-val sem!  
     Kivéve ha a félév kezdéskor (az első héten) előre jelezte, hogy nem tud járni
     (pl. Erasmus hallgató), és az oktatókkal egyeztette hogyan pótolja a hiányzást.
2.) Megírja a SAS géptermi zh-t (dr. Hajas Csilla Tanárnőnél),  és
3.) Bemutatja az XML beadandót (dr. Hernáth Zsolt Tanárúrnál). 
 
A gyakorlati jegyet
- a SAS géptermi zh-án elért  jegy és
- az XML beadandó feladatra kapott jegy (felfelé kerekített) átlaga adja.
 
Gyakorlati jegyen indexbe való beíratása:
Az utolsó gyakorlaton illetve vizsgaidőszakban a fogadóórákban.
   

2. TEMATIKÁK, SEGÉDANYAGOK

2.1. Előzetes heti tematika

SAS 7.hét
2010.03.23.
SAS programozás/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 8.hét
2010.03.30.
SAS programozás/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.
Tavaszi szünet (2010. 03.31.től 04.06-ig)
SAS 9.hét
2010.04.13.
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 10.hét
2010.04.20.
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 11.hét
2010.04.27.
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 12.hét
2010.05.04.
Gépes számonkérés
SAS zh
3.3. SAS zh eredm.
Részleteket lásd az alábbi menüpontban:
3.1. Tudnivalók a SAS zárthelyiről
3.2. SAS mintazh és javítási útmutató 
utolsó 13.hét
2010.05.11.
XML beadandók
(Hernáth Zsolt)
Gyakorlati jegyek lezárása és indexbe
való beíratása. + XML beadandók
pótgy.14.hét
2010.05.18.
SAS JavZh
(Hajas Csilla)
SAS javító dolgozat
 

2.2. A SAS gyakorlatok anyaga (jelszóval)

>> SAS bevezetés (7-8.gyak)
>> SAS programozás (7-8.gyak)
>> SAS Enterprise Miner (9-11.gyak)
>> SAS géptermi zh (12-13.gyak)
   
SAS bevezetés
 
7.gyak: SAS Miner, Adatbányászat alapjai: >> Adatbanyaszat10f.pdf
8.gyak: OLAP, Adattárházak áttekintése:   >> Adattarhaz10f.pdf   és
      >> olap_Ullman.pdf  (forrás: http://infolab.stanford.edu/~ullman/)

SAS programozás

Előkészítés: a SAS adathalmazokat innen: SASdataProgr/  másold be az 
'S:\sasgyak\'  könyvtárba valamint ezt a könyvtárat a SAS-ban is állítsd be:
libname sasgyak 'S:\sasgyak\';

Mintaprogramok: SAS programozás gyakorlatokhoz (magyarázó szöveggel)
    Mintaprogramok: PDF-ben és a kapcsolódó adatállományok:
 7.gyak ProcStep10f.sas  ProcStep.pdf        szemely.sas7bdat
 8.gyak DataStep10f.sas  DataStep.pdf        SASdataProgr/  
   
További irodalom: SAS 9.2 Product Documentation oldalról például:  
> SAS alapok >> SAS 9.1.3 Language Reference: Concepts (651 oldal)                        
> SAS proc step >> Base SAS 9.2 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
'S:\sasgyak\' könyvtárba (vagy T:\  ha a SAS miner config nem látja az S:-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 6.1 programot, hozzunk létre egy új projectet
Path: S:\sasgyak\ könyvtárban és az új project Start-Up Code-jába írjuk be:
libname sasgyak 'S:\sasgyak\';  
libname Em 'C:\Program Files\SAS\SASFoundation\9.2\dmine\sample';
libname Eg 'C:\Program Files\SAS\EnterpriseGuide\4.2\Sample\Data';
Hozzunk létre egy új diagramot, további technikai információt lásd az alábbi
jelszavas SAS_EM bemutatókban:
           SAS EM bemutató  Han-Kamber Steinbach-Kumar   
  slides slides könyv fejezet slides
 9.gyak SAS_EM1_Klaszterezés 07.ppt ch8.pdf
chap8.pdf
10.gyak SAS_EM2_Asszociáció 05.ppt ch6.pdf chap6.pdf
11.gyak SAS_EM3_Osztalyozás 06.ppt ch4.pdf   chap4.pdf
 
További irodalom: 
> Getting Started with SAS Enterprise Miner 6.1  (.pdf, 76 oldal)
> SAS Enterprise Miner 6.Extension Nodes Developer’s Guide (.pdf, 191 oldal)
> Data Mining Using SAS Enterprise Miner: A Case Study Approach (.pdf, 134 o.)
   
SAS géptermi zh

12.gyak. (máj.4.) géptermi SAS zh >> 3.1. Tudnivalók a SAS zárthelyiről és
>> 3.2. SAS mintazh és javítási útmutató (2007-es mintazh)
13.gyak. (máj.11) XML beadandók | gyakorlati jegyek beíratása az indexbe
14.pótgy (máj.18) SAS javító zh | gyakorlati jegyek beíratása az indexbe
   

3.1. 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 dolgozat: 2010. május 4-i gyakorlaton.
 
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 SAS zh-n minden segédeszközt lehet használni, például SAS Help, SAS OnlineDoc
SAS és Adatbányászati 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.
A SAS zh alatt tilos mobiltelefont használni, e-mailezni vagy egyéb módon üzengetni!
Csak önálló munkát értékelek, egymásról való másolás esetén egyik zh-t sem fogadom el!
A feladatokat az alapSAS 9.2 és az Enterprise Miner 4.3 vagy 6.1 szoftverrel oldjuk meg,
csak a papíros feladatlapot kell beadni, a gépes SAS forráskódokat nem kell beküldeni.
A feladatokat gépnél kell megoldani és az "Output" illetve "Results" eredmények alapján
válaszoljon a feladatlapon szereplő kérdésekre, valamint azt is kérem, hogy a feladatlapon
jegyezze fel, vagyis dokumentálja milyen beállításokat, lépéseket, módszereket alkalmazott,
illetve hogyan értékeli ki az eredményt. A feladatokban szereplő SAS adattáblák
a zh alatt letölthetők lesznek a feladatlapon feltüntetett helyről.  
   

3.2. 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 Em 'C:\Program Files\SAS\SASFoundation\9.2\dmine\sample';
libname Eg 'C:\Program Files\SAS\EnterpriseGuide\4.2\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).

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

3.3. SAS zh feladatai és eredménye 

2010. május 4-i SAS zh eredménye (név nélkül, 3kar kóddal, részpontokkal):
>> 10f_IK4_SAS.pdf (jelszóval)
 
Ponthatárok:
Pont:    0-5      6-11    12-15   16-19   20-24 
Jegy: 1   2   3   4   5
 
FELADATLAP (SAS zárthelyi dolgozat, 2010. május 4)
   
A SAS zh-n minden segédeszközt lehet használni, de a zh alatt tilos mobiltelefont használni,
e-mailezni vagy egyéb módon üzengetni! Csak önálló munkát értékelek, egymásról való
másolás esetén egyik zh-t sem fogadom el! Ezt a papíros feladatlapot kell csak beadni,
a gépes SAS forráskódokat nem kell beküldeni. A feladatokat a gépnél kell megoldani
és az "Output" illetve "Results" eredmények alapján válaszoljon a feladatlapon szereplő
kérdésekre, valamint kérem, hogy a feladatlapon jegyezze fel, vagyis dokumentálja milyen
beállításokat, lépéseket, módszereket alkalmazott, illetve hogyan értékeli ki az eredményt.
 
Állítsuk be az alábbi könyvtárakat:
libname Em 'C:\Program Files\SAS\SASFoundation\9.2\dmine\sample';
libname Eg 'C:\Program Files\SAS\EnterpriseGuide\4.2\Sample\Data';
 
Kérdések:
1. (2 pont) Milyen adattípusok vannak a SAS-ban. Hogyan tárolja és kezeli a dátumokat? 
2. (2 pont) Mi a különbség a binary, nominal, ordinal és interval változók között?
3. (1 pont) Sorolja fel a legfontosabb szerepköröket, amit a változóknak lehet adni (pl. target)
4. (2 pont) Mi a különbség a modus, medián és mean között?
5. (1 pont) Partícionálásnál milyen adathalmazokra lehet felbontani a SAS adathalmazt?
   
Feladatok:
1.feladat (4 pont)
   Készítsünk gyakorisági statisztikát az Eg.Products tábláról, a „drága” áruknak
   (ahol UnitPrice alapján X alatt olcsó, X és Y között átlagos, Y felett pedig drága az áru)  
   hány százaléka „elegendő” ? (ahol UnitsInStock, raktáron lévő darabszám alapján 
   M alatt „kevés”, M és N között „elegendő”, N felett pedig „sok” a mennyiség). 
   A tábla adatainak elemzése alapján válassza meg és adja meg X, Y és M, N értékeit.
 
2.feladat (4 pont)
  Készítsünk klaszter-elemzést Em. Dmabase adathalmazra, melynek során soroltassuk
  öt klaszterbe a baseball játékosokat. Előtte tanulmányozzuk át az adatokat, milyen
  változókat vennél figyelembe? Melyik a legnagyobb klaszter és hány eleme van?
 
3.feladat (4 pont)
  Végezzünk asszociációs elemzést a Eg.Candy_sales_history tábla ProdID, Customers
  változói alapjá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. Itt is előtte tanulmányozzuk az adatokat és beállításokat, utána
  elemezzük ki az eredményt. Állapítsuk meg  az asszociációs szabályok közül a legerősebbet.
 
4.feladat (4 pont)
  Készítsünk regressziós elemzést és döntési fát a Em.Hmeq táblára, melynek során
  vizsgáljuk meg, hogy a magyarázó változók (vagyis az input változók) hogyan 
  hatnak a BAD célváltozóra (1 vagy 0) vagyis rossz hitelező (1) vagy nem (0).
  A regressziós elemzés alapján melyik a legmeghatározóbb paraméter és adjuk meg,
  hogy mennyi a hozzá tartozó t-értéke (chi-négyzet értéke)?  
   

4. ADATBÁNYÁSZAT/SAS LINKEK

4.1. Ajánlott irodalom és hasznos linkek

>>  Adatbányászat oktatása és SAS linkek (külön lapon)

4.2. SAS/SAS OnlineDoc (SAS Product Documentation)

SAS  magyar nyelvű honlapja:
SAS Magyarország 
Egyetemi Program     
 
 
SAS diákklubja: SAS Masters' Club
SAS Egyetemi Program az ELTE-n    
               
SAS  angol nyelvű honlapja:
SAS
SAS Technikai támogatás  
      

SAS Product Documentation    
SAS Technical Papers
 
és lásd még SAS az ELTE-n információs oldalt

4.3. SAS álláslehetőségek

SAS   programozói állásajánlatok  lásd >> http://www.planimeter.hu

HIRDETMÉNY: SAS Nyári Egyetem július 13-14.-én egyetemi hallgatóknak.
A két napos kurzus részvételi díja: 5.000 HUF + Áfa (=6.250,-) és tartalma:
* SAS Üzleti Intelligencia megoldás bemutatása
* Adattárházak informatikai és működtetési architektúrája
* Adatbányászati technikák hatékony alkalmazása a gyakorlatban
* Elemzések a SAS Enterprise Guide és SAS Enterprise Miner szoftverekkel
Részletek: lásd http://www.sas.com/offices/europe/hungary/egyetem/masters.html



Fel a Lap tetejére       SAS az ELTE-n        Vissza a Kezdőlapra