Was sind Histogramme? (1)

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Algorithmen für das Erfüllbarkeitsproblem SAT
Partitionierungstechniken in Datenbanksystemen
Christian Scheideler SS 2009
Definition [1]: Sei S eine endliche Menge und sei p eine Abbildung von S in die positiven reellen Zahlen Für einen Teilmenge ES von S sei p definiert.
Polynomial Root Isolation
Algebraische Zahlen: Exaktes Rechnen mit Wurzeln
WR + WS ZEIGEN Neues aus der Mathematik.
Klassen (Zweck) Wozu legt man Klassen an? Überblick
Lineare Suche Divide-and-Conquer-Suche Kombinationssuche
Suche in Texten (Stringsuche )
Finale Semantik und beobachtbares Verhalten
Genetische Algorithmen für die Variogrammanpassung
The Dynamic Single File Allocation Problem
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg1/7 Information Retrieval auf Texten An ihre Grenzen stoßen relationale Datenbanken bei der.
Algorithmentheorie 04 –Hashing
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 – Sortieren vorsortierter Daten) Prof. Th. Ottmann.
Sortieren vorsortierter Daten
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Kapitel 5 Stetigkeit.
Kapitel 1 Das Schubfachprinzip
Kapitel 2 Die rationalen und die irrationalen Zahlen.
Hypothesen testen: Grundidee
Inhalt Einführung Problemstellung / Ziele Definitionen
Minimum Spanning Tree: MST
Vortrag: Ingo Gensch, Mathias Reich am:
Beispielrelation Buchbestellungen H = Menge der bedeutenden Ziele = {a, d} Schwelle T = 4 Stichprobe S = {a, b, a, a, a, a} mit s = |S| = 6 N = Anzahl.
Tutorium
Kontrollfragen zu Kapitel 1
Eigenschaften der OLS-Schätzer
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
1.3. Kombinatorische Zählprobleme Zählstrategien
Hyperlinks und Anker Links notieren
Effiziente Algorithmen
Einführung in die Programmierung
Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft zu kennen?] Kurt Mehlhorn Konstantinos Panagiotou.
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
GIS - Seminar Wintersemester 2000/2001
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/ /23.1.
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Polynome und schnelle Fourier-Transformation
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #8 Anfragebearbeitung.
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #9 Anfragebearbeitung.
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #9 Anfragebearbeitung (Teil 1)
Wahrscheinlichkeitsrechnung
Zusammengestellt von Mag. Raimund Hermann
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 Anfragebearbeitung.
Integritätserhaltung und -Überprüfung in deduktiven Datenbanken
Algorithmen für das Erfüllbarkeitsproblem SAT
WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Vorlesung #3 Anfragebearbeitung (Teil 1)
Von Unternehmen und Unternehmern
Anfang Präsentation 3. November, 2004 Tarjan’s Schleifenaufbrechalgorithmus In dieser Vorlesung wird ein Verfahren vorgestellt, welches in der Lage ist,
Unscharfe Anfragen in Multimedia- Datenbanksystemen Seminar Multimedia-Datenbanken WS 2001/2002 Silvana Runow.
K. Desch - Statistik und Datenanalyse SS05 Statistik und Datenanalyse 1.Wahrscheinlichkeit 2.Wahrscheinlichkeitsverteilungen 3.Monte-Carlo-Methoden 4.Statistische.
Anwendung der Ellipsoidmethode in der Kombinatorischen Optimierung
Institut für Informationssysteme Technische Universität Braunschweig Institut für Informationssysteme Technische Universität Braunschweig Verdrängung von.
Geoinformationssysteme
1 StatiX: Making XML Count J.Freire, J.R.Haritsa, M.Ramanath, P.Roy, J.Siméon: StatiX: Making XML Count ACM SIGMOD, June 2002 Ann Früchtl
Herzlich Willkommen zum Bürgerinformationsabend des SPD Ortsvereins Erlensee zur Kommunalwahl 2016.
 Präsentation transkript:

Daniel Aigner aigner@mathematik.uni-marburg.de Optimale Histogramme Daniel Aigner aigner@mathematik.uni-marburg.de

Was sind Histogramme? (1) Daten von 1500 Befragten in 6 Balken Was, wenn man das Alter der Befragten in 6 Balken erfassen will? Grenzen einfach bei 15, 30, 45, 60, 75 ziehen?

Was sind Histogramme? (2) Ein Histogramm fasst einen großen Datensatz zusammen und approximiert diesen. Dabei entstehen Ungenauigkeiten/Fehler. Die Anzahl der Container und die Wahl der Grenzen zwischen den Containern entscheiden über die Größe des Fehlers. Optimale Histogramme berechnen bedeutet also, die Grenzen zwischen den Containern so aufzuteilen, dass der Fehler minimiert wird.

Praktische Verwendung von Histogrammen (1) In der Informatik hauptsächlich im Bereich der Datenbanken bzw. Anfragenverarbeitung. Kommt eine Anfrage wie “Gebe diejenigen Produkte aus, die mehr als 10€ kosten“, kann mit Hilfe der Histogramme abgeschätzt werden, wie viele Datensätze die Anfrage erfüllen. Betrifft eine Anfrage weniger als 10% der gesamten Daten ist es am sinnvollsten, über eine Indexstruktur auf die Daten zuzugreifen. Werden mehr als 10% abgefragt ist es günstiger, direkt auf die Datenbank zuzugreifen. 011010110

Praktische Verwendung von Histogrammen (2) Dieses Verhältnis von den betroffenen Datensätzen zu den gesamten Daten heißt die Selektivität. Selektivität = #Matches / #Datenbestände Bei der Anfragenverarbeitung kommt der Typ der V-Optimalen Histogramme zum Einsatz. Erfahrungswerte haben gezeigt, dass für den Einsatz in Datenbanksystemen besonders gute Abschätzungen liefern. In anderen Einsatzgebieten könnten andere Histogramme bessere Abschätzungen liefern.

Weitere Eigenschaften von Histogrammen Schön wäre es, zu einer Anfrage an ein Histogramm auch eine gute Fehlerschranke angeben zu können. Qualitäts-Garantien die für das gesamte Histogramm gelten sind evtl. wichtige Anhaltspunkte für den Benutzer. Das Histogramm soll möglichst auf den späteren Einsatzzweck hin optimiert werden. (So wie V-Optimale Histogramme für Datenbanksysteme) Dazu müssen die Informationen über die spätere Arbeitslast in die Berechnung des Histogramms einfließen können.

Bisherige Algorithmen (1) Es existieren bereits mehrere Algorithmen um Histogramme zu berechnen. Diese sind meistens sehr schnell, dafür aber nicht besonders genau, geschweige denn optimal, liefern also große Fehler.

Bisherige Algorithmen (2) MHIST: Eine Greedy Heuristik, die immer den Container mit dem höchsten Fehler aufteilt. MaxDiff: Hierbei werden neue Grenzen immer zwischen die zwei Werte gesetzt, die die größte Differenz aufweisen. EquiDepth: Bei dieser Heuristik wird die Zuteilung so gewählt, dass die summierten Werte innerhalb eines Containers für jeden Container möglichst gleich sind. EquiWidth: Die triviale Methode, bei der einfach immer gleich viele Elemente in einen Container kommen.

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

Wichtige Definitionen (1) Ausgehend von einer Relation R mit einem Attribut X: Vektor V = die Menge aller Werte von X die in R auftreten, aufsteigend sortiert. Frequenz f(v) = Anzahl der Elemente t є R mit t.X = v Frequenz-Vektor F = {f(v1), f(v2), f(v3), … , f(vN)} mit N = |V| = Anzahl der verschiedenen Werte von X Histogramm H: Stellt die Verteilung der Werte von X da. Durch Partitionierung des Frequenz-Vektors F in B disjunkte Intervalle, wobei B << N. Das ist die Reduktion von N auf B Container.

Wichtige Definitionen (2) Beispiel: Frequenz-Vektor mit 13 Elementen F = {5, 4, 7, 10, 13, 17, 16, 17, 14, 9, 9, 2} soll aufgeteilt werden in ein Histogramm mit 5 Containern: H = {(5, 4, 7), (10, 13), (17, 16, 17), (14, 9, 9), (4, 2)} h1 = AVG(5, 4, 7) = 16/3 h2 = 23/2, h3 = 50/3, h4 = 32/3, h5 = 6/2 Der Wert hi jedes Intervalls ist der Durchschnitt der Werte in dem Intervall. Andere Unterteilung von F auch möglich: H‘ = {(5), (4), (7), (10), (13, 17, 16, 17, 14, 9, 9, 4, 2)} Wert des 6. Elements (=17): Nach H: 16,667. Nach H‘: 11,222

Wichtige Definitionen (3) Durch Unterteilung des Frequenzvektors in Intervalle definiert sich also das Histogramm. Grenzen so wählen, dass der Fehler minimal ist. Der Fehler wird berechnet über eine Fehlermetrik. Hier: summierter quadratischer Fehler, Sum Squared Error = SSE. SSE kommt auch bei V-Optimalen Histogrammen zum Einsatz. Für ein Intervall [a, b] wird der SSE wie folgt berechnet:

Lösungsmethode: dynamische Programmierung (1) 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. Dabei werden die Lösungen der Teilprobleme für die spätere Berechnung zwischengespeichert. Beispiel: Fibonacci-Zahlen rekursiv fib(0) = 0 fib(1) = 1 fib(n) = fib(n-1) + fib(n-2)

Lösungsmethode: dynamische Programmierung (2) 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.

Space-Bounded Histogram Zur Berechnung des optimalen Histogramms bei gegebener Anzahl an Containern werden im folgenden drei verschiedene Algorithmen vorgestellt: Grundalgorithmus für das optimale Histogramm Verbesserung des Grundalgorithmus Approximationsverfahren

Grundalgorithmus (1) Ziel ist es, den gesamten Frequenz-Vektor F = F[1, N] so in B Intervalle zu unterteilen, dass der gesamte Fehler des Histogramms minimal ist. Rekursiver Ansatz, dann via dynamischer Programmierung die Rekursion auflösen. SSE([a, b]) hat den Fehler für das Intervall [a, b] berechnet. Definiere SSE*(i, k) als den minimalen Fehler für den Präfix-Vektor F[1, i] bei k Containern. Grundüberlegung hinter dem Algorithmus:

Grundalgorithmus (2) 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.

Grundalgorithmus (3) Die Unterteilung des Histogramms bekommt man dadurch, dass man für jeden Rekursionsschritt den Wert von j speichert. Damit hat man alle Grenzen zwischen den Containern abgespeichert. Als nächstes: Auflösen der Rekursion.

Grundalgorithmus (4) Den SSE*(i, k) iterativ berechnen über 1≤k<B und für jedes feste k über 1≤i<N. Mit SSE*(N, B) hat man den minimalen Fehler des gesamten Histograms (und damit auch die optimale Unterteilung in B Container) berechnet. Aufwand für die Berechnung: Zwei Schleifen über k und j: O(B·N) SSE*(i, k) für jedes feste i und k: O(B) Insgesamt: O(B2·N)

Verbesserung des Grundalgorithmus (1) 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 S0 von SSE*(j, k-1) + SSE([j+1, i]) wird gespeichert. Wird ein Wert von SSE([j+1, i]) > S0 berechnet kann abgebrochen werden.

Verbesserung des Grundalgorithmus (2) Weitere Beobachtung: SSE*(j, k) wächst monoton über j. Über binäre Suche kann damit eine untere Grenze für j gefunden werden, bei der die Schleife abgebrochen werden kann. Näheres siehe Skript. Aufwand des verbesserten Algorithmus: Im Worst-Case hat auch der verbesserte Algorithmus eine Laufzeit von O(B2·N). Im allgemeinen Fall ist die Laufzeit deutlich besser.

Approximationsverfahren (1) 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((N2·B)/L2)

Approximationsverfahren (2) Beispiel: Aus Frequenzvektor F mit 100 Elementen ein Histogramm mit B=20 Containern berechnen. Vorheriges Aufteilen von F in L=4 Bereiche zu je 25 Elementen. Berechnung des opt. Histogramms für jeden Bereich mit 5 Containern.

Vergleich der Algorithmen (1) Laufzeit Vergleichsdaten sind Zipf-verteilt. B = 100 Container. Bei Approximationsverfahren L=20 Bereiche. Bsp. für Zipf-Verteilung

Vergleich der Algorithmen (2) Laufzeiten der neuen Algorithmen

Vergleich der Algorithmen (3) Datensatz D1 Datensatz D2 Eine Funktion über das dritte Attribut des „SGI adult data set“ mit 732 unterschiedlichen Werten. Das Gehalt von Mitarbeitern von Census mit insgesamt 302000 unterschiedlichen Werten.

Vergleich der Algorithmen (4) Datensatz D1 Datensatz D2 Auswirkung der Containergröße auf den Fehler

Vergleich der Algorithmen (5) Datensatz D1 Auswirkung der Datengröße auf den Fehler

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.

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.

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

Resümee (1) Effektive Berechnung eines optimalen Histogramms durch rekursive Herangehensweise und Auflösung durch dynamische Programmierung. Aufwand kann durch Verbesserungen weiter reduziert werden. Approximationsverfahren verbessert die Laufzeit noch einmal um zwei Größenordnungen. Trotzdem noch eine wesentlich bessere Genauigkeit als die bisher bekannten Methoden. Mit etwas zusätzlichen Speicherbedarf können gute Fehlerabschätzungen zu einer Anfrage gemacht werden.

Resümee (2) & Quellen Arbeitslast-Informationen können in die Berechnung des Histogramms einfließen. Dadurch lässt sich das Histogramm noch besser an den späteren praktischen Einsatz anpassen. Quellen H. V. Jagadish, Nick Koudas, S. Muthukrishnan, Viswanath Poosala, Ken Sevcik, Torsten Suel, Optimal Histograms with Quality Gurantees, 1998. Grafik zur Sonntagsfrage, www.tagesschau.de Grafik zu Zipf, www.ucl.ac.uk/~ucbplrd/language_middle.htm