Konzeptbeschreibung
Ziel: Knappe Charakterisierung einer Datenmenge im Vergleich zu einer anderen Datenmenge (Kontrastmenge)
Methode: Herausfinden charakteristischer Attribute auf angemessener Abstraktionsebene
Vorgehen:
¾ Entfernen von Attributen, die viele verschiedene Werte (> Schwellwert1) in der Datenmenge aber keinen Genera- lisierungsoperator haben oder deren Verallgemeinerungen durch andere Attribute ausgedrückt werden.
¾ Verallgemeinerung von Attributen, die viele verschiedene Werte (> Schwellwert2) in der Datenmenge und einen
Generalisierungsoperator haben, mit Tupel-Zähler.
¾ Relevanzanalyse der restlichen Attribute durch Vergleich mit Kontrastmenge, wobei Attribute mit einem Informations- gewinn > Schwellwert3 ausgewählt werden.
Wissen: Generalisierungshierarchie (z.B. Konzepthierarchie) für Verallgemeinerung, Schwellwerte, Informationsmaß
Varianten:
¾ Konzept-Charakterisierung: Charakterisierung einer Teil- Datenmenge im Vergleich zur Restmenge
¾ Konzept-Vergleich: Vergleich zweier Datenmengen
2
Informationsmaß
Die erwartete Information in Bits (Anzahl ja/nein Fragen), um eine Klasse i mit der Häufigkeit hi aus einer Menge mit n verschiedenen Klassen der Häufigkeiten (h1, h2, ... hn) zu klassifizieren, ist:
I (h1, h2, ..., hn) = – ∑(i=1 .. n) (hi/h) log2 (hi/h)
mit h = Gesamthäufigkeit; hi = Häufigkeit der i-ten Klasse
Wie hoch ist der Informationsgewinn des Attributwertes?
Wenn ein Attribut A eine Menge entsprechend seiner m Werte in m Teilmengen aufteilt, dann ist seine Entropie E(A) der gewichtete Durchschnitt der „erwarteten Information“ aller Teilmengen entsprechend obiger Formel.
Der Informationsgewinn des Attributwertes ist dann:
Gewinn (A) = I (h1, h2, ..., hn) - E(A)
Beispiel für Konzept-Charakterisierung (1)
1. Anfrage in DMQL:
use Big-University-DB
mine characteristics as "Science-Students"
in relevance to name, gender, major, birth_place, birth_date, residence, phone#, gpa
from student
where status in "graduate"
2. Transformation in SQL:
use Big-University-DB
select name, gender, major, birth_place, birth_date, residence, phone#, gpa
from student
where status in {„M.Sc“, „M.A“ „ M.B.A.", „Ph.D."}
3. Initiale Daten aller graduate-Studenten
4
Beispiel für Konzept-Charakterisierung (2)
4. Attribut-orientierte Induktion
Name: viele Werte ohne Hierarchie Æ entfällt Geschlecht: 2 Werte ohne Hierarchie Æ behalten
Studienfach: 20 Werte (Schwellwert sei 5) mit Hierarchie (arts, engineering, business) Æ generalisiert
Geburtsort: viele Werte mit Hierarchie (Stadt < Bundesstaat <
Land {Kanada, Ausland}) Æ generalisiert
Geburtstag: viele Werte mit Hierarchie (Geburtstag < Alter <
Altersgruppe) Æ generalisiert
Wohnort: viele Werte mit Hierarchie Æ generalisiert Telefon#: viele Werte ohne Hierarchie Æ entfällt
Punkte: viele Werte mit Hierarchie (Punkte < Punktinter- vall > Note) Æ generalisiert
5. Generalisierte Daten der graduate-Studenten
Beispiel für Konzept-Charakterisierung (3)
6. Berechnung der Kontrastmenge für Relevanzanalyse Kontrastmenge: nicht graduate, d.h. undergraduate
Kontrastmenge (undergraduate, ohne residence_city):
Zielmenge (graduate, ohne residence_city):
7. Berechnung des Informationsgewinn der Attribute:
I (grad, ugrad) = I (120, 130) =
- 120/250 log2 (120/250) - 130/250 log2 (130/250) = 0,9988 Informationsgehalt von Studienfach (major):
major = science Sgrad = 84 Sugrad = 42 I(Sgrad, Sugrad) = 0,92 major = engine Egrad = 36 Eugrad = 46 I(Egrad, Eugrad) = 0,99 major = business Bgrad = 0 Bugrad = 42 I(Bgrad, Bugrad) = 0
Entropie(major) = 126/250 * 0,92 + 82/250 * 0,99 + 42/250 * 0 = 0,79 Entropiegewinn (major) = 0,9988 – 0,79 = 0,21
Entropiegewinn (gender) = 0,0003 Entropiegewinn (birth_country) = 0,04 Entropiegewinn (gpa) = 0,45
Entropiegewinn (age) = 0,60
6
Beispiel für Konzept-Charakterisierung (4)
8. Auswahl von Attributen mittels Relevanz-Schwelle
Relevanzschwelle = 0,1 Æ gender und birth_country fallen raus.
Ergebnis: Graduate Studenten werden durch die Attribute:
• Studienfach (major)
• Altersgruppe (age_range)
• Noten (gpa)
am besten charakterisiert.
Konzept-Vergleich
Gleiche Vorgehensweise wie bei Konzept-Charakterisierung, wobei die Vergleichsklasse explizit festgelegt ist. Sie wird auf das gleiche Niveau abstrahiert wird und im Ergebnis
mitausgegeben.
Beispiel: Vergleich zwischen graduate und undergraduate:
Graduate:
Undergraduate:
8
Statistische Maße zur Beschreibung von Datenmengen
Gegeben sei eine Menge von (numerischen) Daten. Diese kann durch folgende Parameter beschrieben werden:
Durchschnitt (mean): Summe / Anzahl
Standardabweichung: √ 1/(n-1) ∑(i=1 .. n) (xi – xmittel )2 Median: Mittlere Wert in sortierter Liste
1. Quartil: 25% der Werte sind kleiner
2. Quartil: Median, 50% der Werte sind kleiner bzw. größer 3. Quartil: 75% der Werte sind kleiner
Minimum: kleinster Wert Maximum: größter Wert
Box-Plot: 5-Zahlen-Zusammenfassung: Min, 1Q, Median, 3Q, Max
Finden von Assoziationsregeln
Datenmaterial: Transaktionen (z.B. Warenkörbe)
Ziel: Herausfinden von Assoziationsregeln über den Elementen in Transaktionen, z.B. welche
Waren zusammen gekauft werden
Beispielregel: Wenn Computer dann auch Finanzsoftware
support = 2%, d.h. die Regel ist für 2% aller Transaktionen relevant.
confidence = 60%, d.h. die Schlussfolgerung stimmt in 60% aller relevanten Transaktionen.
Interessantheit wird meist so definiert, dass die Regeln einen minimalen support und eine minimale confidence haben müssen.
support (A Æ B) = P (A ∪ B) confidence (A Æ B) = P (B|A)
10
Vorgehensweise
Finden von Assoziationsregeln ist ein zweistufiger Prozess:
1. Finde alle häufigen Itemsets (support > Schwellwert1)
2. Generiere aus häufigen Itemsets starke Assoziationsregeln (confidence > Schwellwert2)
Der zweite Schritt ist relativ einfach. Der erste Schritt bestimmt den Gesamtaufwand.
Apriori-Algorithmus
Motivation: Wenn zu einem itemset I ein item A hinzugefügt wird, dann gilt: I ∪ A kann nicht häufiger sein als I alleine!
Daher verringert sich die Häufigkeit in jeder Ebene (oder bleibt gleich).
Vorgehensweise: Iterativer Ansatz, der ebenenweise vorgeht:
Erst alle häufigen 1-elementigen Elementmengen (1-itemsets) berechnen, dann alle häufigen 2-itemsets, wobei die häufigen k-itemsets zum Finden der häufigen (k+1)-itemsets benutzt werden (dabei werden die itemsets lexikografisch sortiert):
1. Erweiterungsschritt: Bilde aus je 2 k-itemsets, deren erste (k-1) items gleich sind, ein (k+1)-itemset (ohne Duplikate).
2. Logik-Filterschritt: Lösche aus den (k+1)Kandidaten alle heraus, die irgendeine k-Teilmenge enthalten, die nicht häufig ist. Da alle häufigen Teilmengen bereits vorher
berechnet wurden, kann man sie zur Effizienzsteigerung in einer Hash-Tabelle speichern.
3. Zähl-Filterschritt: Für die übriggebliebenen Kandidaten wird deren Häufigkeit gezählt und entsprechend gefiltert.
12
Beispiel Apriori-Algorithmus (1)
Input mit Transaktionsdaten:
Beispiel Apriori-Algorithmus (2)
Vorgehensweise:
1. Zählen der Häufigkeit aller 1-itemsets
2. Berechnung der häufigen 1-itemsets (Schwelle sei ≥ 2) 3. Erweiterung der Kandidaten für 2-itemsets
4. Logik-Filtern: liefert keine Einschränkung 5. Zählen der Häufigkeit aller 2-itemsets 6. Berechnung der häufigen 2-itemsets
7. Erweiterung der Kandidaten für 3-itemsets {(I1, I2, I3) (I1, I2, I5) (I1, I3, I5) (I2, I3, I4) (I2, I3, I5) (I2, I4, I5)}
8. Logik-Filtern: Übrig bleiben nur {(I1, I2, I3) (I1, I2, I5)}
9. Zählen der Häufigkeit beider 3-itemsets
10. Berechnung der häufigen 3-itemsets: liefert keine Einschränkung 11. Erweiterung der Kandidaten für 4-itemsets {(I1, I2, I3, I5)}
12. Logik-Filtern: Kandidat wird ausgefiltert, da Teilmenge (I2, I3, I5) nicht häufig.
14
Apriori-Algorithmus: Regelgenerierung
für jedes häufige Itemset werden alle Regeln ausprobiert und überprüft, ob der confidence > Schwellwert ist (der support ist für alle Regeln gleich).
confidence (A Æ B) = P (B|A) =
support_count (A ∪ B) / support_count (A)
Generierung der Regeln:
1. Generiere alle nichtleeren Teilmengen T des Itemset I.
2. Generiere daraus die Regel T Æ (I – T)
3. Überprüfe, ob die confidence der Regel größer als der Schwellwert ist.
Beispiel für Itemset (I1, I2, I5):
1. Teilmengen: {(I1), (I2), (I5), (I1, I2), (I1, I5), (I2, I5)}
2. + 3. Regeln mit confidence:
I1 & I2 Æ I5 confidence 2/4 = 50%
I1 & I5 Æ I2 confidence 2/2 = 100%
I2 & I5 Æ I1 confidence 2/2 = 100%
I1 Æ I2 & I5 confidence 2/6 = 33%
I2 Æ I1 & I5 confidence 2/7 = 29%
I5 Æ I1 & I2 confidence 2/2 = 100%
Angenommen der confidence-Schwellwert liegt bei 70%. Dann bleiben nur die 2., 3., und 6. Regel übrig.
Effizienzsteigerung des Apriori- Algorithmus
1. Verwendung von Hash-Tabellen für Logik-Filterschritt (s.o.) 2. Reduktion der Transaktionen, die nicht in mindestens einem
häufigen Itemset vorkommen: verbessert den Zähl-Filterschritt.
3. Partitionierung der Transaktionen in Teildatenbanken, die jeweils in den Hauptspeicher passen.
4. Arbeiten mit repräsentativen Teilmengen der Transaktionen ...
16
Probleme des Apriori-Algorithmus
• Potentiell große Kandidatenmengen, z.B. bei 10 000
häufigen 1-itemsets müssen mehr als 10 Millionen 2-itemsets generiert und getestet werden.
• Mehrfache Überprüfung der Datenbank zum Zählen
relevanter Transaktionen, insbesondere bei n-itemsets mit großem n.
Alternativ-Algorithmus: Frequent-Pattern-Growth (FP-Growth) Erstelle aus der Menge der häufigen itemsets einen frequent-
pattern-Baum (FP-Baum), der anstelle der Transaktionsdaten- bank weiterbearbeitet wird (wesentlich effizienter).
Frequent Pattern Growth Algorthmus
1. Datenbankdurchlauf: Berechne 1-item Mengen und sortiere sie nach Häufigkeit (sortierte Liste L).
2. Datenbankdurchlauf:
2.1. Starte mit einen Null-Knoten 2.2. Für jede Transaktion tue
2.2.1. Sortiere die Items nach Häufigkeit (L)
2.2.2. Baue einen Pfad auf, der aus den Items besteht 2.2.3. Falls ein Item schon vorkommt, erhöhe Zähler
ansonsten verzweige baumartig.
Beispiel für 2. Schritt:
1. Transaktion (I1, I2, I5): Pfad: null → I2 (1) → I1 (1) → I5 (1) 2. Transaktion (I2, I4): erhöhe Zähler von I2 auf 2 und
verzweige von dort nach I4 mit Zähler 1.
3. Transaktion (I2, I3): erhöhe Zähler von I2 auf 3 und verzweige von dort nach I3 mit Zähler 1
4. Transaktion (I1, I2, I4): erhöhe Zähler von I2 auf 4, von I1 auf 2 und füge neue Verzweigung für I4 ein (mit Zähler 1), die mit altem I4 verbunden wird.
….
Fertige Struktur für alle 9 Transaktionen:
18
Generierung häufiger Itemsets aus FP- Baum
Für jedes 1-Itemset in umgekehrter Häufigkeitsreihenfolge tue:
1. Konstruiere seine „conditional pattern base” (Menge aller Prefix-Pfade)
2. Konstruiere seinen “conditional FP-tree” (Reduktion der Pfade aufgrund des minimalen Supports (hier 2), wobei bereits abgearbeitete Items (deswegen umgekehrte Reihenfolge) ignoriert werden können.
3. Generierung des Ergebnisses (frequent patterns).
Beispiel:
Frequent-Pattern-Growth Algorithmus
20
Berücksichtigen von Konzepthierarchien
Problem: Interessante Assoziationsregeln finden sich möglicher- weise auf höheren Abstraktionsebenen (z.B. Produktgruppen), da bei konkreten Items (z.B. Produkten) der support sehr klein sein kann.
Lösung: Benutzen von Konzepthierarchien mit Top-Down-Ansatz, d.h. zunächst nur Berücksichtigung des Top-Level, dann
Verfeinerung.
Wenn bei allen Ebenen die gleiche Support-Schwelle gilt, ist ein effektives Abschneiden von unteren Zweigen möglich, wenn der übergeordnete Knoten einen zu niedrigen Support hat (da der Support nach unten nur kleiner werden kann).
Wenn unterschiedliche Support-Schwellen gelten, kann man Heuristiken zum Abschneiden verwenden.
Weitere Aspekte
• Multidimensionale Assoziationsregeln, z.B. Alter (X, 20-29)
& Beruf (X, student) Æ kauft (X, Laptop) Æ Konstruktion eines entsprechenden Data Cube mit Analyse
• Finden quantitativer Assoziationsregeln (u.a. Finden von Intervallen, z.B. Binning)
• Berücksichtigung von Korrelationen, z.B. kauft (X, Computer-Spiele) Æ kauft (X, Videos) [support 40%,
confidence = 60%] kann irreführend sein, wenn z.B. kauft (X, Videos) einen support von 75% hat.
• Constraint-basiertes Finden von Assoziationsregeln (z.B.
durch Metaregeln geführt)