20
Diplomová práce Systém předzpracování dat pro dobývání znalostí z databází Hana Kotinová 14.9.2011

Diplomová práce Systém předzpracování dat pro dobývání znalostí z databází

  • Upload
    kaylee

  • View
    30

  • Download
    0

Embed Size (px)

DESCRIPTION

Diplomová práce Systém předzpracování dat pro dobývání znalostí z databází. Hana Kotinová 14.9.2011. Osnova prezentace. Struktura a cíl práce Metody předzpracování dat Systémy předzpracování dat Historie vývoje DPT Jak program pracuje Budoucnost – plány na vylepšení Problémy Závěr. - PowerPoint PPT Presentation

Citation preview

Page 1: Diplomová práce Systém předzpracování dat pro dobývání znalostí z databází

Diplomová práce

Systém předzpracování dat pro dobývání znalostí z databází

Hana Kotinová14.9.2011

Page 2: Diplomová práce Systém předzpracování dat pro dobývání znalostí z databází

Struktura a cíl práceMetody předzpracování datSystémy předzpracování datHistorie vývoje DPTJak program pracujeBudoucnost – plány na vylepšeníProblémyZávěr

Osnova prezentace

Page 3: Diplomová práce Systém předzpracování dat pro dobývání znalostí z databází

Úvod Dobývání znalostí z databází Problémy fáze předzpracování Algoritmy předzpracování dat Vybrané systémy pro předzpracování dat Data preprocessing tool Závěr

Cíl práce – vytvoření programu Osobní cíl – zdokonalení v programování řešením

rozsáhlejšího projektu

Struktura a cíle práce

Page 4: Diplomová práce Systém předzpracování dat pro dobývání znalostí z databází

Transformace dat do strukturované podoby ve formě tabulky

Nastavení jednotného formátu pro data z různých zdrojů

Spojení více tabulek do jedné Ošetření chybějících hodnot Výběr atributů Výběr objektů Rozdělení dat Diskretizace a seskupování hodnot

Metody předzpracování dat

Page 5: Diplomová práce Systém předzpracování dat pro dobývání znalostí z databází

Transformace dat do strukturované podoby ve formě tabulky

Spojení více tabulek do jedné Nastavení jednotného formátu pro data z

různých zdrojů Ošetření chybějících hodnot Výběr atributů Výběr objektů Rozdělení dat Diskretizace a seskupování hodnot

Metody předzpracování dat v DPT

Page 6: Diplomová práce Systém předzpracování dat pro dobývání znalostí z databází

Systémy pro předzpracování dat

Mining Mart – Case Editor a Koncept Editor

SumatraTT

Page 7: Diplomová práce Systém předzpracování dat pro dobývání znalostí z databází

Historie vývoje (1)

DPT1Zdrojové kódy psané v notepadu

=> Kurz 4IT251 a přechod k BlueJ

Page 8: Diplomová práce Systém předzpracování dat pro dobývání znalostí z databází

Historie vývoje (2)

DPT2 po spuštěníDPT2 po načtení souboru

Page 9: Diplomová práce Systém předzpracování dat pro dobývání znalostí z databází

Historie vývoje (3)DPT3 po načtení souboru

Page 10: Diplomová práce Systém předzpracování dat pro dobývání znalostí z databází

Jak program pracuje

Page 11: Diplomová práce Systém předzpracování dat pro dobývání znalostí z databází

Logování operací Procedury diskretizace – doplnění o class

sensitive crisp a class sensitive fuzzy Standardní aplikace s více okny nebo řešení

pomocí karet Zpracování běžných databázových souborů,

nejen čistý text v podobě .csv souboru. Grafy

Budoucnost – plány na vylepšení

Page 12: Diplomová práce Systém předzpracování dat pro dobývání znalostí z databází

Programátorská zdatnost Práce na notebooku (parametry: 14“ obrazovka, 256MB RAM,

Pentium III, 750 MHz) Havárie disku na začátku práce Čas

Problémy

Page 13: Diplomová práce Systém předzpracování dat pro dobývání znalostí z databází

Závěrečné srovnání systémů

Mining Mart a SumatraTT

DPT

grafické systémy práce velkého

týmu Pracují s

databázemi Složité

Využívá jen běžné grafické rozhraní

1 člověk Pracuje pouze s

textovými soubory (.csv)

Jednodušší

Page 14: Diplomová práce Systém předzpracování dat pro dobývání znalostí z databází

Vývoj aplikace Data preprocessing tool bude pokračovat

Zájem o využití aplikace v České spořitelně, a.s.

Další verze budou dostupné na www.mankala.cz

Závěr

Page 15: Diplomová práce Systém předzpracování dat pro dobývání znalostí z databází

Děkuji za pozornost.

Prostor k dotazům …

Page 16: Diplomová práce Systém předzpracování dat pro dobývání znalostí z databází

Na straně 8 je uvedeno, že z dat pro analýzu je nutné vytvořit pouze jednu (databázovou) tabulku. Opravdu neexistují data-miningové procedury, které mohou pracovat s více než jednou tabulkou najednou? Neexistují dokonce procedury, které pracují s daty v jiné podobě než tabulkové (např. se síťovými grafy, obrázky…)? Jestli ano, tak uveďte příklady. Jestli ne, tak zdůvodněte, proč nemohou existovat.

Použití jedné tabulky je nejčastější, existují však i procedury prostorového data miningu

Podporováno např. Oracle Data Miner, MS SQL Server Analysis Services

Otázky vedoucího a oponenta

Page 17: Diplomová práce Systém předzpracování dat pro dobývání znalostí z databází

Jsou v sytému DPT implementovány nějaké operace, které nenalezneme v systémech SumatraTT nebo MiningMart?

Procedura Noise Evaluation

Vysvětlete detailně použitý algoritmus pro funkci Noise Evaluation.

Otázky vedoucího a oponenta

Page 18: Diplomová práce Systém předzpracování dat pro dobývání znalostí z databází

Účel: zjistit počet kontradikcí v datech. Kontradikcemi se myslí objekty, které mají stejné hodnoty vstupních atributů, ale liší se v cílovém atributu. Pokud se takové objekty vyskytnou, klasifikátor je zařadí to stejné(majoritní) třídy; objekty patřící do ostatních tříd jsou kontradikce.

Vstup: datová tabulka Výstup: počet kontradikcí, relativní chyba (error) a relativní správnost

(accuracy) kterou lze dosáhnout  Parametry: cílový atribut (class), informace, který atribut je váha objektů  Algoritmus: spočítat počty výskytů objektů, které se shodují v hodnotách vstupních

atributů (je-li použita váha objektů, počítá se počet objektů z těchto vah) a jejich rozdělení do tříd

Pro každý objekt spočítat max. možnou správnost (accuracy) jako počet (opět s přihlédnutím k váze) objektů v majoritní třídě

Spočítat celkovou max. možnou správnost jako (objekty správnost objektu)/počet_objektů a min. možnou chybu (error) neboli podíl šumu jako 1 – max. možná správnost

Procedura Noise Evaluation - zadání

Page 19: Diplomová práce Systém předzpracování dat pro dobývání znalostí z databází

Procedura Noise Evaluation – řešení (1)

public class NoiseEvaluation{ public NoiseEvaluation() { }

DataKapsa datoveStru ktury;

public void noise() { datoveStruktury = datoveStruktury.getInstance();

TreeMap<String, Double> mo = new TreeMap<String, Double>();

TreeMap<String, Double> moc = new TreeMap<String, Double>();

TreeMap<String, Double> mov = new TreeMap<String, Double>();

for (int x = 2; x <= datoveStruktury.pocetRadkuSouboru ; x++) {

String a = "";String b = "" + datoveStruktury.stavData[x]

[datoveStruktury.vybranyCil];;for (int y = 1; y <= datoveStruktury.pocetSloupcuSouboru; y++)

{if (y!= datoveStruktury.vybranyCil && y!=

datoveStruktury.vybranaVaha) {a = a + datoveStruktury.stavData[x][y] + ";";}}

Double freq = mo.get(a);Double freqv = mov.get(a);if (datoveStruktury.vybranaVaha == 0) {mo.put(a, (freq == null) ? 1 : freq + 1);mov.put(a, (freq == null) ? 1 : freq + 1);}else {mo.put(a, (freq == null) ? 1 : freq + 1);mov.put(a, (freqv == null) ?

Double.parseDouble(datoveStruktury.stavData[x][datoveStruktury.vybranaVaha]) : freqv + Double.parseDouble(datoveStruktury.stavData[x][datoveStruktury.vybranaVaha]));

}a = a + b;freq = moc.get(a);moc.put(a, (freq == null) ? 1 : freq + 1); } // end for x

Page 20: Diplomová práce Systém předzpracování dat pro dobývání znalostí z databází

Procedura Noise Evaluation – řešení (2)

if ((mo.size() < moc.size()) ) { moc.clear(); Iterator<String> ukazovatko = mo.keySet().iterator(); while(ukazovatko.hasNext()) { String klic = ukazovatko.next(); if (mo.get(klic) < 2) { ukazovatko.remove(); //mov.remove(klic); } } // while ukazovatko double totalAccuracy = 0; double tAErr = 0; Set<Map.Entry<String,Double>> mnozinaDvojic =

mo.entrySet(); for(Map.Entry <String, Double> dvojice : mnozinaDvojic) {

Grafika.oknoVysledku.setText(Grafika.oknoVysledku.getText() + "\n" + "Object: " + dvojice.getKey() + "\n" + " Total in all classes: " + mov.get(dvojice.getKey()).toString());

totalAccuracy = totalAccuracy + mov.get(dvojice.getKey()); }

if (datoveStruktury.sumaVah != 0) { totalAccuracy = (double)Math.round(100 -

(totalAccuracy * 100 / datoveStruktury.sumaVah )) / 100;

} else { totalAccuracy = (double)Math.round(100 -

(totalAccuracy * 100 / (datoveStruktury.pocetRadkuSouboru - 1) )) / 100;

} tAErr = (double)Math.round((1-totalAccuracy) * 100) /

100;

Grafika.oknoVysledku.setText(Grafika.oknoVysledku.getText() + "\n" + "maximum accuracy: " + totalAccuracy + ", error: " + tAErr);

} else { Grafika.oknoVysledku.setText(Grafika.oknoVysledku.get

Text() + "\n" + "No same objects in different classes, maximum accuracy: 1.0, error: 0.0" );

}

} // noise } // class