1 / 20

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. 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.

kaylee
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Diplomová práceSystém předzpracování dat pro dobývání znalostí z databází Hana Kotinová 14.9.2011

  2. 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

  3. Struktura a cíle práce • Ú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 preprocessingtool • Závěr • Cíl práce – vytvoření programu • Osobní cíl – zdokonalení v programování řešením rozsáhlejšího projektu

  4. Metody předzpracování dat • 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

  5. Metody předzpracování dat v DPT • 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

  6. Systémy pro předzpracování dat Mining Mart – Case Editor a Koncept Editor SumatraTT

  7. Historie vývoje (1) DPT1 Zdrojové kódy psané v notepadu =>Kurz4IT251 a přechod k BlueJ

  8. Historie vývoje (2) DPT2 po spuštění DPT2 po načtení souboru

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

  10. Jak program pracuje

  11. Budoucnost – plány na vylepšení • Logování operací • Procedurydiskretizace – 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

  12. Problémy • 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

  13. Závěrečné srovnání systémů • 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šší Mining Mart a SumatraTT DPT

  14. Závěr • Vývoj aplikace Data preprocessingtool bude pokračovat • Zájem o využití aplikace v České spořitelně, a.s. • Další verze budou dostupné na www.mankala.cz

  15. Děkuji za pozornost. Prostor k dotazům …

  16. Otázky vedoucího a oponenta • 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 AnalysisServices

  17. Otázky vedoucího a oponenta • Jsou v sytému DPT implementovány nějaké operace, které nenalezneme v systémech SumatraTT nebo MiningMart? • Procedura NoiseEvaluation • Vysvětlete detailně použitý algoritmus pro funkci NoiseEvaluation.

  18. Procedura NoiseEvaluation - zadání • Účel: zjistitpočetkontradikcí v datech. Kontradikcemi se myslíobjekty, kterémajístejnéhodnotyvstupníchatributů, ale liší se v cílovématributu. Pokud se takovéobjektyvyskytnou, klasifikátor je zařadí to stejné(majoritní) třídy; objektypatří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

  19. Procedura NoiseEvaluation – řešení (1) public classNoiseEvaluation { public NoiseEvaluation() { } DataKapsadatoveStruktury; public voidnoise() { datoveStruktury = datoveStruktury.getInstance(); TreeMap<String, Double> mo = newTreeMap<String, Double>(); TreeMap<String, Double> moc = newTreeMap<String, Double>(); TreeMap<String, Double> mov = newTreeMap<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); } // endfor x

  20. Procedura NoiseEvaluation – řešení (2) • if ((mo.size() < moc.size()) ) { • moc.clear(); • Iterator<String> ukazovatko = mo.keySet().iterator(); • while(ukazovatko.hasNext()) { • Stringklic = ukazovatko.next(); • if (mo.get(klic) < 2) { • ukazovatko.remove(); • //mov.remove(klic); • } • } // whileukazovatko • 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 allclasses: " + 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.getText() + "\n" + "No sameobjects in differentclasses, maximum accuracy: 1.0, error: 0.0" ); • } • } // noise • } // class

More Related