Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Optimale Histogramme Daniel Aigner

Ähnliche Präsentationen


Präsentation zum Thema: "Optimale Histogramme Daniel Aigner"—  Präsentation transkript:

1 Optimale Histogramme Daniel Aigner

2 1 Inhalt 1.Einführung 2.Problemstellung / Ziele 3.Definitionen 4.Bisherige Lösungen 5.Optimale Algorithmen a.Optimaler Algorithmus b.Verbesserungen c.Approximationsalgorithmus 6.Vergleich 7.Error-Bounded Histogram 8.Qualitätsgarantien 9.Arbeitslast 10.Resümee

3 2 1. Was sind Histogramme? Daten von 1500 Befragten in 6 Balken. Großen Datensatz zusammenfassen. Dabei entstehen Ungenauigkeiten/Fehler.

4 3 1. Wofür braucht man Histogramme? In der Informatik hauptsächlich im Bereich der Datenbanken bzw. Anfragenverarbeitung. Abschätzen der Selektivität von Anfragen – #Matches / #Datenbestände –Bsp.: Gebe diejenigen Produkte aus, die mehr als 10 kosten Weniger als 10%: Zugriff über Indexstruktur Mehr als 10%: Zugriff direkt auf die Datenbank

5 4 2. Problemstellung Histogramm ist Approximation von Daten. Aufteilung der Daten in wenige Container. Dabei entstehen Fehler. Aufteilung so wählen, dass Fehler minimal. => Histogramm optimal.

6 5 2. Weitere Ziele Gute Fehlerschranke angeben. Qualitäts-Garantien die für das gesamte Histogramm. Das Histogramm auf Einsatzzweck hin optimieren. (V-Optimale Histogramme für Datenbanksysteme) Informationen über die Arbeitslast einfließen lassen.

7 6 3. Definierung des Problems Vektor V = {0.39, 0.59, 0.99, 1.59, 1.99, 2.99, 5.99, 9.99, 15.99, 19.99} Frequenzvektor F = {7, 5, 5, 3, 6, 3, 4, 2, 1, 1} |F| = N = 10 verschiedene Werte Ziel: Reduktion von N = 10 auf B = 4 Container B << N Beispiel: Produktliste eines Geschäftes

8 7 3. Definierung des Problems Vektor V = {0.39, 0.59, 0.99, 1.59, 1.99, 2.99, 5.99, 9.99, 15.99, 19.99} Frequenzvektor F = {7, 5, 5, 3, 6, 3, 4, 2, 1, 1} Partitionierung des Frequenzvektors in B disjunkte Intervalle. Histogramm H = {(7, 5), (5, 3), (6, 3, 4), (2, 1, 1)} Wert eines Intervalls ist Durchschnitt der enthaltenen Werte: –h 1 = AVG(7, 5) = 6 –h 2 = 4, h 3 = 4,333, h 4 = 1,333

9 8 3. Fehlerberechnung Der Fehler wird berechnet über eine Fehlermetrik. Hier: SSE = Sum Squared Error summierter quadratischer SSE kommt auch bei V-Optimalen Histogrammen zum Einsatz. Für ein Intervall [a, b] wird der SSE wie folgt berechnet:

10 9 4. Bisherige Lösungen MHIST : Greedy Heuristik, immer den Container mit dem größten Fehler aufteilen. MaxDiff : Grenzen immer zwischen die zwei Werte setzen, die die größte Differenz aufweisen. EquiDepth : So aufteilen, dass die summierten Werte innerhalb eines Containers für jeden Container möglichst gleich sind. EquiWidth : Triviale Methode, alle Container gleich viele Elemente.

11 10 5. Optimale Algorithmen Grundsätzlich zwei verschiedene Herangehensweisen, um ein optimales Histogramm zu berechnen: – Space Bounded Histogram Bei einer festen Größe (Anzahl der Container) den Fehler minimieren: – Error Bounded Histogram Bei gegebener Fehlerschranke die Anzahl der Container minimieren: Der zweite Ansatz wird auch als Duales Problem bezeichnet.

12 11 5. Lösungsmethode: dynamische Programmierung Dynamische Programmierung ist das Lösen eines Problems durch herunterbrechen auf und lösen von Teilproblemen. Insbesondere ohne die kostenintensive Rekursion. Es wird Iterativ vorgegangen. Lösungen der Teilprobleme für die spätere Berechnung zwischenspeichern. Beispiel: Fibonacci-Zahlen rekursiv fib(0) = 0 fib(1) = 1 fib(n) = fib(n-1) + fib(n-2)

13 12 5. Lösungsmethode: dynamische Programmierung Fibonacci-Zahlen iterativ via dynamischer Programmierung: f_vorletzte = 0 f_letzte = 1 for i = 2 to n do f_aktuell = f_letzte + f_vorletzte f_vorletzte = f_letzte f_letzte = f_aktuelle end for return f_aktuell f_letzte und f_vorletzte müssen als Zwischenergebnisse gespeichert werden. Diese Lösung ist wesentlich effizienter.

14 13 5.a Grundalgorithmus Ziel: Frequenz-Vektor F = F[1, N] in B Intervalle aufteilen, so dass Fehler des Histogramms minimal. Rekursiver Ansatz, dann via dynamischer Programmierung die Rekursion auflösen. SSE([a, b]) berechnet Fehler für Intervall [a, b] Definiere SSE*(i, k) als den minimalen Fehler für den Präfix- Vektor F[1, i] bei k Containern.

15 14 5.a Grundalgorithmus Beispiel: Berechnung des SSE*(20, 5) –Also das Minimum des Präfix-Vektors F[1, 20], –aufgeteilt in 5 Container. 16 verschiedene Möglichkeiten die Grenze (j) zwischen den letzten zwei Containern zu setzen. Der linke Bereich SSE*(j, k-1) berechnet sich rekursiv.

16 15 5.a Auflösen der Rekursion Den SSE*(i, k) iterativ berechnen über 1k

17 16 5.b Verbesserung des Grundalgorithmus Beobachtung: SSE([j, i]) fällt monoton über j. Damit ist es nicht nötig, die Schleife über j komplett zu durchlaufen: –j von oben nach unten durchlaufen. –Das bisher gefundene Minimum S 0 von SSE*(j, k-1) + SSE([j+1, i]) wird gespeichert. –Wird ein Wert von SSE([j+1, i]) > S 0 berechnet kann abgebrochen werden.

18 17 5.b Verbesserung des Grundalgorithmus Weitere Beobachtung: SSE*(j, k) wächst monoton über j. Finden einer untere Grenze für j über binäre Suche. Näheres siehe Skript. Aufwand des verbesserten Algorithmus: –Im Worst-Case auch O(B 2 ·N). –Im allgemeinen Fall ist die Laufzeit deutlich besser.

19 18 5.c Approximationsverfahren Vorheriges Aufteilen des Frequenzvektors F in L gleich große Bereiche. Berechnung des optimalen Histogramms mit B/L Containern für jeden Bereich. Insgesamt wieder B Container. Laufzeit: O((N 2 ·B)/L 2 ) Beispiel F F aufgeteilt H H zusammen

20 19 6. Vergleichsdaten Vergleichsdaten sind Zipf-verteilt. B = 100 Container. Bei Approximationsverfahren L=20 Bereiche. Bsp. für Zipf-Verteilung

21 20 6. Vergleich der Laufzeiten Laufzeiten der verschiedenen Algorithmen * weniger als 0,01 Sekunden

22 21 6. Vergleich der Laufzeiten Laufzeiten der neuen Algorithmen

23 22 6. Vergleichsdaten Eine Funktion über das dritte Attribut des SGI adult data set mit 732 unterschiedlichen Werten. Datensatz D1 Das Gehalt von Mitarbeitern von Census mit insgesamt unterschiedlichen Werten. Datensatz D2

24 23 6. Vergleich des Fehlers Auswirkung der Containergröße auf den Fehler Datensatz D1Datensatz D2

25 24 6. Vergleich des Fehlers Auswirkung der Datengröße auf den Fehler Datensatz D1

26 25 7. Error-Bounded Histogram Zu einer gegebenen Fehlerschranke den Platzbedarf (Anzahl der Container) minimieren. Der Primäre Ansatz –Iterativ über die Anzahl der Container das optimale Histogramm berechnen. –Abbrechen sobald man ein Histogramm berechnet hat, das die Fehlerschranke erfüllt. Approximationsverfahren –Siehe Skript.

27 26 8. Qualitätsgarantien Generelle Fehlerschranke für das gesamte Histogramm ist ungenau. Besser: Fehlerschranke eines jeden Containers einzeln zu dem Container abspeichern. Nachteil: Speicherbedarf. Evtl. auch nur Speichern eines binären Bitwertes gut oder schlecht zu jedem Container.

28 27 9. Arbeitslast-Informationen Informationen über den Einsatzzweck des Histogramms nutzen. Den Fehler im praktischen Einsatz weiter verbessern. Beispiel: –Daten: Umsätze eines Geschäfts mit Zeitangabe. –Anfragen beziehen sich häufig auf ganze Monate. –Fehlermetrik so wählen, dass sie einen großen Fehler erzeugt, wenn Daten aus verschiedenen Monaten in einem Container liegen. Beispiel für den Einfluss von Arbeitslast-Informationen

29 Resümee Effektive Berechnung eines optimalen Histogramms durch dynamische Programmierung. Aufwand durch Verbesserungen weiter reduziert. Approximationsverfahren verbessert Laufzeit weiter um zwei Größenordnungen. Trotzdem wesentlich bessere Genauigkeit als bisher bekannte Methoden. Mit zusätzlichen Speicherbedarf gute Fehlerabschätzungen

30 Resümee Arbeitslast-Informationen können in die Berechnung des Histogramms einfließen. Dadurch gute Anpassung an den praktischen Einsatz.

31 30 Quellen H. V. Jagadish, Nick Koudas, S. Muthukrishnan, Viswanath Poosala, Ken Sevcik, Torsten Suel, Optimal Histograms with Quality Gurantees, Grafik zur Sonntagsfrage, Grafik zu Zipf,


Herunterladen ppt "Optimale Histogramme Daniel Aigner"

Ähnliche Präsentationen


Google-Anzeigen