Adattárházak, adatbányászati technológiák

 

(Utolsó módosítás: 2018. február 13. )

 

 

Tematika:

Az adatfeltárás folyamata, adatbányászat feladata. Adattárház építése, architektúrák, jellemző sémák, adatkockák szerepe, műveletei. Adatelemzések, statisztikai jellemzők, adat-transzformációk, távolságok. Asszociációs szabályok, paraméterek, algoritmusok, példák. Osztályozási feladatok, algoritmusok, döntési fák, példák. Klaszterezési feladatok, algoritmusok, példák. Adattárház építése Oracle-ben. Adatbányászat Oracle-ben, illetve RapidMiner http://rapid-i.com/content/view/181/190/  programmal.

 

Megajánlott jegy: Két hetente megírt kis dolgozatok pontszáma alapján.

A kis dolgozat kérdései: Ellenorzokerdesek.docx

RapidMiner kérdések: RapidMiner_KerdesekValaszok.xlsx

 

 

 

Egy közösségi gráfhoz kapcsolódó komplex feladat kidolgozása, kiértékelése, leírása:

egy közösségi háló (gráf) adatainak letöltése (például twitter http://nm.vo.elte.hu/casjobs ) – nem kell túl nagy adathalmaz, hogy ne legyen gond a memóriával, de legyen olyan, amin az alábbi feladatok értelmesen kitűzhetők.

Ezek a minták is használhatók:

tweetelők közti follower kapcsolat: follow_sample_10000.csv

A gráfban résztvevők tweetjei:  tweet_sample_25334.csv

Az előzőektől független tweetek, ahol van hely koordináta, ami szerint lehet például klaszterezni, megjósolni a nyelvet, asszociációs szabályt képezni.

tweet_sample_lonlat_50000.csv

 

a) az előadáson vett leíró és egyszerűbb statisztikák, függetlenségvizsgálat, eloszlások hipotézisvizsgálata, regresszió, stb. alkalmazása Excelben vagy RapidMiner segítségével (minél többféle elemzést adtok be, annál jobb)

b) legalább 3 dimenziós adatkocka készítése (például twitter esetén idő, hely, nyelv), adatkocka műveletek bemutatása egy ingyenes vagy demo program segítségével, például az előadáson vett OLAPstatistics segítségével

c) egy osztályozási feladat kitűzése, megoldása RapidMiner segítségével, az eredmények értelmezése

d) egy klaszterezési feladat kitűzése, megoldása RapidMiner segítségével, az eredmények értelmezése

e) egy gyakori halmazkeresési, asszociációs szabály keresési feladat kitűzése, megoldása RapidMiner segítségével, az eredmények értelmezése

 

Határidők:

a) és b) április 9. (szerda).

c), d) és e) május 7. (szerda)

 

A két határidőre a 2014adatbanya@gmail.com címre egy tömörített fájlban küldjétek el az alábbiakat

i) egy 5-10 oldalas tanulmány formájában a feladat leírását, a megoldási módszer leírását, grafikonokat, táblázatokat, képernyőképeket, eredmények értelmezését

ii) és a megoldáshoz használt adathalmazt, progamkódot, excel táblát, access adatbázist, rapidminer kódot, ami alapján rekonstruálni lehet a megoldásotokat.

 

Aki az alábbi adatbányászversenyek valamelyikén olyan megoldást küld be, hogy egy adott pillanatban az első 50 között szerepel a neve és ezt a képernyőt lementi és elküldi nekem, annak a második beadandót  azaz a c) d) e) feladatokat nem kell beadnia, erre kap egy jelest.

Adatbányász versenyek:  http://www.kaggle.com/competitions

 

 

Vizsgakérdések:

1. Az adatbányászat, tudásfeltárás feladata, a tudásfeltárása folyamata, példákkal magyarázva..

2. Az adattárházak építése, architektúrák, példákkal magyarázva.

3. Az adatkockák szerepe, műveletei, példákkal magyarázva.

4. Az asszociációs szabályok előállítása, példákkal magyarázva

5. Az osztályozás feladata, a döntési fák előállítása, példákkal magyarázva.

6. A klaszterezés feladata, két klaszterező algoritmus, példákkal magyarázva.

7. Szövegbányászati módszerek.

8. Entity resolution.

9. Nagy gráfok, közösségi hálók elemzése

 

 

 

 

A tankönyv:

ADATBÁNYÁSZAT

KONCEPCIÓK ÉS TECHNIKÁK

Jiawei Han - Micheline Kamber

 

 

Oracle Warehouse Builder:

OWB gyorstalpaló

 

Oracle Dataminer:

fogalmak

adminisztrálás 

alkalmazás

tutorial

cikkek az alkalmazásokról például telefonos ügyfelek lemorzsolódási valószínűségének becslése

 

 

Kapható: http://www.libri.hu/konyv/adatbanyaszat-1.html

 

Az előadások anyagai:

 

1. előadás Bevezetés

 

2 - 4. előadás Adatok előfeldolgozása (statisztikai ismétlés)

 

0. Feladat:

Töltsük le az alábbi két gráfot:

 

közös publikációk: ca-GrQc.txt.gz

 

emailek: email_network.txt

 

Excel használatával a publikációs gráf fokszámeloszlását vizsgáljuk meg:

 

a) Hány csúcs (n), hány irányított él szerepel a gráfban, mennyi a maximális kifok?

b) Határozzuk meg a kifokszám-eloszlást (outdegree-t), azaz k fokú hányszor szerepel!

c) Grafikonon ábrázoljuk a kifokszám-eloszlást

d) Mennyi az eloszlás várható értéke, szórása, mediánja? Segítség, az excel beállításai között az elemző csomagokat érdemes bekapcsolni, ha még nem voltak bejelölve, egyébként statisztikai függvényeket is lehet használni vagy a képletet is meg lehet adni.)

e) Milyen trend illeszkedik a legjobban hozzá? Ábrázoljuk is a trendet grafikonon! Segítség, a tengelyeken beosztása nem csak lineáris lehet, néhány lehetséges trendet az excel rögtön megad. Milyen paraméterek tartoznak a trendhez?

f) Generáljunk n db binomiális eloszlású véletlen fokszámot (n,p) paraméterekkel, hogy a várhatóértékük, azaz np legyen egyenlő az előbb kiszámolt kifokszám várható értékével.

g) Ábrázoljuk a kapott fokszámeloszlást az előző grafikonon.

 

h) Két eloszlás megegyezőségi hipotézését a Kolmogorov-Smirnov teszttel lehet vizsgálni. Töltsük le az Excel fájlt a KSteszthez: KSTest.xls

 

i) A fentiekhez hasonlóan határozzuk meg az email gráf outdegree fokszámeloszlását és ábrázoljuk az előző grafikonon a trenddel együtt.

 

j) Kolmogorov-Smirnov teszttel döntsük el, hogy alfa=0.10 szinten megegyezik-e a két eloszlás.

 

Információ terjedése közösségi hálózatokban: 2013december11seminar.pptx

 

Rákos Rudolf megoldása:feladat0.xlsx feladat0 - KSTest.xlsx

 

1. Feladat (Excel-ben): Adatok2014.xls 

(kor, nem, balkezes, cipőméret, magasság, utazás az egyetemig percben, valszám jegy, statisztika jegy, adatbázis1 jegy)

- adjuk hozzá a statisztikai elemző csomagokat, ha még nincsenek aktiválva

- Készítsünk leíró statisztikákat:

            - mi a valszám jegyek átlaga, módusza, mediánja, szórása

- Standardizáljuk a magasságot

- Készítsünk hisztogramot az utazás attribútumra

- Készítsünk pontdigaramot a (balkezes, magasság) illetve a (cipőméret, magasság)-ra

- Mennyi a (nem, balkezes) Jaccard-együtthatója

- Van-e kapcsolat a valszám jegy és az adatbázis1 jegy között a diagramok alapján         

- Készítsük el a párhuzamos koordinátákat

- további feladatokat az órán adok

 

2. feladat (Excel-ben)

- illesszünk egyenest a magasság, cipőméret pontokra, mi az egyenes két paramétere, ábrázoljuk is az egyenest a pontokkal együtt

- ábrázoljuk a magasság eloszlásfüggvényét

- transzformáljuk a -1,1 intervallumba a magasság, utazás, cipőméret attribútumokat

- adjuk meg az utazás, adatbázis-jegy, magasság (3x3-as) kovarianciamátrixát

- mennyi a valszámjegy és az adatbázis jegy korrelációs együtthatója, mire következtethetünk ebből?

- készítsünk egyenletes hosszú, majd egyenletes gyakoriságú hisztogramot az utazás attribútumra

- a cipő, magasság, utazás attribútumokra hajtsunk végre főkomponens analízist (az első főkomponens milyen lineáris kombinációként áll elő?)

 

3. feladat (Excel-ben)

- számoljuk ki a cipőméret entrópiáját

- ha két részre akarjuk vágni a cipőméret értékeit, mi legyen a vágási pont

 

A feladatok megoldás egy kisebb adathalmazra (mintául): Adatok.xls

1. feladat

2. feladat

3. feladat

 

Siklósi Benjámin megoldása: ph8uji_feladatok_1_2_3.xls

 

4-5. előadás Adattárházak

 

4. feladat (OLAP)

Próbáljuk ki a https://olap-statistics-and-reporting-for-access.software.informer.com/download/ 30 napos verzióját.

Készítsünk egy adatkockát az indexbe bevitt jegyekre építve, értelmes dimenziókkal, mértékekkel, tetszőleges adatokkal

Demonstráljuk a program funkcionalitását, az OLAP műveleteket elmentett képernyőkkel.

 

6. előadás: Adatbányászat (gyakori halmazok, apriori algoritmus, asszociációs szabályok)

A weka segítségével előfeldolgozás és asszociációs szabályok, gyakori halmazok keresése

 

5. feladat Az apriori algoritmus megvalósítása JAVA-ban (apriori.jar)

Input: (TDB, min_supp, k) Output:  Lk  azaz a k elemű gyakori halmazok a TDB tranzakciós adatbázisban

Tesztelés: A dián szereplő mintafeladatra adja meg az L1, L2, L3 gyakori egyelemű, kételemű, háromelemű halmazokat 50% min_supp-ra.

 

 

Feladat:

transaction id, items

1 A;B;E

2 A;B;D;E

3 B;C;D;E

4 B;D;E

5 A;B;D

6 B;E

7 A;E 1.

Mennyi a BD->E szabály support és confidence értéke? 2. Legyen gyakori egy halmaz, ha legalább 3-szor fordul elő. Hajtsuk végre az apriori algoritmust, írjuk fel az összes jelölt és gyakori halmazt! 3. Írjuk fel az összes szabályt, amelyre (s,c) érték legalább (3/7,3/4)! 4. RapidMiner-rel is oldjuk meg a feladatokat!

 

További feladatok és megoldások: solution2.pdf

 

 

7. előadás

Adatbányászat (osztályozás, döntési fák)

A weka segítségével osztályozási feladat megoldása

 

Feladat: a slide-kon szereplő buys_computer táblának az utolsó 4 sora legyen a teszthalmaz, a maradék a tanuló halmaz.

1. Készítsünk 2 magasságú döntési fát a tanuló halmazra a gain alapján. (Először 1 attribútumot választ ki az algoritmus, aztán minden esethez még egy attribútum szerint osztályozunk.)

2. Ismételjük meg az 1. feladatot gain_ratio alapján.

3. Mindkét osztályozásnál számoljuk ki a teszten az osztályozás különböző mértékeit (accuracy, error rate, sensitivity, specificity, precision).

4. Készítsük el a Naiv Bayes osztályozót.

5. A tesztadatok alapján rajzoljuk fel a ROC görbét a naiv Bayes osztályozóra.

 

8. előadás

Adatbányászat (klaszterezés)

A weka segítségével klaszterezés

 

Ispány Márton fordítása:

8fej_klaszterezes_alapok.pdf

9fej_klaszterezes_halado.pdf

 

Feladat:

Generáljunk a (0,0) (1,1) és az (1,1) (2,2) két egységnégyzetben véletlenszerűen 100-100 pontot (például Excel segítségével).

Legyen a séma (id, x,y, label) label =1 vagy 2, attól függően, hogy melyik négyzetből származik a pont.

 

1. RapidMiner-ben k-mean segítségével klaszterezzük k=2. Mennyi a hiba (hány pont kerül rossz klaszterbe)?

2. k=3 –ra is klaszterezzünk. Hasonlítsuk össze a két klaszterezést.

3. A http://cs.joensuu.fi/sipu/datasets/ oldalon található mintahalmazok közül válasszuk ki a http://cs.joensuu.fi/sipu/datasets/jain.txt -t.

Egészítsük ki a sémát id-vel: id, x,y, label

Klaszterezzük k-mean és dbscan-nel. Melyiknél lesz kisebb a hiba?

 

 

 

A fóliák angolul:

01(1).ppt

02(1).ppt

03(1).ppt

04(1).ppt

05(1).ppt

06(1).ppt

07(1).ppt

081.ppt 082.ppt 083.ppt 084.ppt

091.ppt 092.ppt 093.ppt

101.ppt 102.ppt

11.ppt

Sidló Csaba: Entity Resolution

 

 

 

Weka ingyenes adatbányász eszköz weboldala

Weka dokumentáció weka guide

Bemutató a weka használatáról

Letöltött telepíthető verzió (windowsra)

Bodon jegyzet Weka kiegészítésekkel magyarul (2010. januári váltoizat)

Mintaadatok weka feldolgozáshoz

Alkalmazott adatbányászat tárgy (Wekára és Oracle Dataminer használatára épül)

Wekán alapuló adatbányászati kurzus

 

 

Oracle tábla elérése wekából oracle jdbc-n keresztül (hasonlóan lehetne postgresql-t is elérhetővé tenni):

-          Töltsük le az oracle jdbc-t például a c:\Program Files\Weka-3-6 könyvtárba.

-          A weka.jar\experiment-ben a DatabaseUtils.props.oracle -t nevezzük át DatabaseUtils.props -ra.

o   Az adattípusok konverzióját (vagyis melyik oracle típusnak, melyik weka típus feleljen meg) is a DatabaseUtils.props -ban kell megadni.

Például ha szerepel a táblában ilyen adattípus, akkor be kell szúrni az int8=5 és  numeric=2 sorokat.

o   A weka.jar-t winrar-ral vagy NC-rel is meg lehet nyitni. Ha az átnevezés, editálás nem megy közvetlenül, akkor másoljuk előbb ki egy könyvtárba, editáljuk, nevezzük át, és másoljuk vissza.

-          Aki nem akarja maga átnevezni, az átnevezés utáni weka.jar -t innen letöltheti és ezzel cserélje le az eredetit.

-          A RunWeka.ini fájlban a cp útvonalak közé vegyük fel az oracle jdbc jar fájl útvonalát (/ az elválasztó jel!) és állítsuk nagyobbra mondjuk 1 gigásra a java memóriát. Ezzel a módosított RunWeka.ini -vel cseréljük le az eredetit.

-          A RunWeka.bat -tal indítsuk a wekát.

-          Az Open DB lapon lehet elérni az adatbázist. Előbb User, majd Connect műveletek után tetszőleges SQL lekérdezés kiadható. (Figyelem, ha adatkezelést csinálunk, COMMIT is kell majd a végén.)

-          A lekérdezés után az OK-ra kattintva beolvassa a memóriába az adattáblát és a weka számára átkonvertálja, és innen kezdve ugyanúgy használható, mint egy sima arff weka adatfájl.

 

 

ROC görbe: roc.pdf

Egy osztályozási esettanulmány: Paper25.pdf