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.
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:
Oracle Dataminer:
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
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
A weka segítségével klaszterezés
Ispány Márton fordítása:
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:
081.ppt 082.ppt 083.ppt 084.ppt
Sidló Csaba: Entity Resolution
Weka ingyenes adatbányász eszköz weboldala
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