DBS5 Kap. 4

Werbung
DBS5 Kap. 4
Data Mining
•
Klassifikationen und Cluster-Bildung:
•
•
•
Auffinden von Regeln zur Partitionierung von Daten in disjunkte
Teilmengen (Anwendungsbeispiel: Risikoabschätzung)
bzw. Herstellen von Gruppierungen von Daten (sätzen) mit ähnlichen
Eigenschaften
Assoziationen:
Identifikation von Assoziationen zwischen (Mengen von)
Dingen aufgrund von (hinreichend vielen) Beobachtungen
(Anwendungsbeispiel: Warenkorbanalysen)
•
Sequenzen:
Analyse von Daten bzw. Ereignissen, die z.B. zeitlich geordnet
sind (Anwendungsbeispiel: Aktienmarkt)
4.1 Ziele, Motivationen und Anwendungen des Data Mining
Ziele:
1. Auswertung von Daten, zum Entdecken von:
- (neuen) Zusammenhängen
- Trends
- Statistiken
- Verhaltensmustern, „Patterns"
wobei häufig nicht genau klar ist, wonach man sucht
2. Herausfinden nützlicher Information, und zwar möglichst automatisiert und mit
minimalem Input von außen,
3. Klassifikation von Daten zum Zwecke der Risikoabschätzung oder der
Entscheidungsfindung.
Motivation:
"There's gold in your data, but you can't see it".
Teil des Prozesses von Knowledge Discovery in Databases (kurz KDD)
=>Wissensentdeckung in Datenbanken
Schritten des KDD:
1. Verstehen des Anwendungsbereichs, der bereits in einem Datenwarenhaus abgebildet
sein kann
2. Bilden der zu analysierenden Datenmengen, gegebenenfalls mittels einem Data
Cleansing, Daten-Inkonsistenzen zu bereinigen
3. Extrahieren von Klassifikationen, Mustern, Regeln; in genau diesem Schritt erfolgt
das eigentliche Data Mining
4. Nachbearbeitung des entdeckten Wissens, insbesondere geeignete Interpretation,
gegebenenfalls erneutes Auswerten, also Iteration der Schritte 3 und 4
5. Verwertung der Ergebnisse.
Man kann Data Mining unabhängig von einem Datenwarenhaus betreiben.
4.2 Klassifikationen
Beispiel: Vorgehen bei Risikoabschätzung
1. Einfache Bedingungen für ein erstes Attribut finden, die dessen Wertemenge disjunkt
zerlegen;
2. falls sich die Datenbank damit tatsächlich in Übereinstimmung bringen lässt, reicht
diese Zerlegung bereits zur Klassifikation;
3. ansonsten finde man Bedingungen für ein weiteres Attribut und
4. iteriere, bis eine „verlässliche" Klassifikation gefunden ist.
Cluster-Bildung
Gruppieren gegebener Datensätze anhand ähnlicher Eigenschaften.
4.3 Assoziationsregeln
Warenkorbanalyse (Beispiel für das Auffinden von Assoziationsregeln):
Unter einem Warenkorb versteht man dabei eine Sammlung von Dingen, die ein Kunde etwa
in einem Supermarkt in einer Transaktion erworben hat.
Lieferanten oder Ladeninhaber sowie Supermarktbetreiber möchten nun herausfinden, welche
Dinge zusammen gekauft werden, etwa um deren Platzierung im Regal oder in der Werbung
zu verbessern.
(Warenkorb-) Tabelle
TID
134
134
134
134
107
107
107
110
KundenID
201
201
201
201
83
83
83
135
Datum
02.12.97
02.12.97
02.12.97
02.12.97
13.11.97
13.11.97
13.11.97
13.11.97
Teil
Füller
Tinte
Heft
Seife
Füller
Tinte
Heft
Füller
Preis
35
2
5
1
35
2
5
35
Qty
2
1
3
6
1
1
1
1
110
103
103
103
135
201
201
201
13.11.97
26.08.97
26.08.97
26.08.97
Heft
Füller
Tinte
Seife
5
35
2
1
1
2
2
4
Idee der Assoziationsregel:
•
•
informal erkennen des Zusammenhangs zwischen verschiedenen Teilen:
=> z.B. gemeinsam in Kundentransaktionen erscheinende Teil: "Füller => Tinte"
Ziel:
einen gewissen Rahmen zu schaffen, in welchem sich derartige Aussagen (oder
Vermutungen) einerseits erhärten und andererseits sogar systematisch ermitteln lassen.
Assoziationsregel:
LS => RS
wobei LS (linke Seite) und RS (rechte Seite) disjunkte Mengen von Dingen („Itemsets11)
sind und die Bedeutung analog zum Beispiel lautet: Wird jedes Teil in der linken Seite LS
gekauft, so wird (wahrscheinlich) auch jedes Teil in der rechten Seite RS gekauft.
Wir gehen damit also aus von einer Menge I = {ii ... im} von Dingen oder Items und
bezeichnen Mengen von Dingen, also Teilmengen T ⊆ I, als Transaktionen. Der Gegenstand
der Analyse ist eine "Datenbank" D = {Ti ... Tk} von Transaktionen.
formale Beschreibung von Warenkorb:
Die betrachtete Menge D umfasst vier Transaktionen, die jeweils durch einen
Identifikator eindeutig gekennzeichnet sind.
Die Transaktionen sind über einer Menge
I = {Füller, Tinte, Heft, Seife, ...}
von Teilen gebildet.
Assoziationsregeln schreiben wir dann auch in der Form R:
LS => RS
und gilt dann
LS, RS ⊆ I sowie LS ∩ RS = Ø
Mass für Assoziation:
1. Support einer Menge von Dingen
Die „Wichtigkeit" oder Bedeutung einer Menge von Dingen. Je höher der durch das
Maß zugeordnete Wert, desto wichtiger die betreffende Menge.
Zu gegebener Menge I von Dingen und gegebener Datenbank D von k
Transaktionen sei J ⊆ I eine Auswahl von Dingen. Der Support von J ist
dann definiert als
oder in Worten: Der Support von J gibt an, wie viel Prozent der Transaktionen
die Menge J enthalten. Dieses Maß lässt sich unmittelbar auf
Assoziationsregeln übertragen: Der Support einer Regel der Form R: LS =>
RS ist definiert als
supp(R) := supp(LS ∪ RS).
Symmetrieeigenschaft
Man erkennt an dieser Definition unmittelbar eine Eigenschaft des Support:
Hat eine Regel R die Form LS => RS und eine Regel R' die Form RS =>
LS, so gilt stets
supp(R) = supp(R')
2. Confidence
Die „Stärke" einer Regel.
Die Confidence einer Regel R: LS => RS: bezeichnet man der Prozentsatz der
Transaktionen, die RS umfassen, falls sie auch alle Elemente von LS enthalten:
Die Confidence einer Regel deutet damit den Grad der Korrelation zwischen
Verkäufen von Mengen von Dingen (in der Datenbank) an. Diese Definition
von Confidence benutzt den Support , d.h. sie sind aus mathematischer Sicht
nicht unabhängig voneinander.
Man kann dies durchaus als eine gewisse Kritik an diesen beiden Maßen
ansehen
Betrachten wir hierzu einige Beispiele:
Die oben bereits betrachtete Regel R : „Füller => Tinte" lässt sich wie folgt bewerten:
1. Da die Teile Füller und Tinte in drei der vier in Transaktionen gemeinsam
vorkommen, gilt
supp(R) = 3/4 = 0,75
Weiter gilt supp(Füller) = 4/4 = 1, also erhält man
conf(R) = 0,75/1 = 0,75
Es enthalten also 3/4 der Transaktionen Tinte, sofern sie bereits Füller enthalten.
2. Die Regel laute „Bier =>Chips":
Ein Support von 0,8 bedeutet dann, dass in 80 % der Transaktionen Bier und Chips
gemeinsam vorkommen; unabhängig davon bedeutet eine Confidence von 0,5, dass
die Hälfte der Leute, die Bier gekauft haben, auch Chips (dazu) gekauft haben.
•
•
Ist der Support gering, kann es sich um einen zufälligen Zusammenhang handeln (z.B.
"Heft => Seife")
Iist die Confidence einer Regel gering , so ist die linke Seite nicht stark mit der rechten
korreliert (z.B. bei "Heft => Seife").
In realen Anwendungen wird man meistens so vorgehen, dass man einen Mindest-Support
sowie eine Minimal-Confidence vorgibt und sich dann nur für Regeln interessiert, welche
beides enthalten.
Vorgabe von Support und Confidence
Für einen (vorgegebenen) Mindest-Support von 0,5 und eine geforderte Minimal-Confidence
von 0,5 erhält man hier die folgenden beiden Regeln:
•
•
l => 3 mit Support 2/4 = 0,5 und Confidence 2/3 = 0,67;
3 => l mit Support 2/4 = 0,5 und Confidence 2/2=1.
An dieser Stelle können wir die oben erwähnte „Symmetrie-Eigenschaft" des Support
benutzen, welche jetzt besagt, dass der Support der Regel 3 => l mit dem der Regel l => 3
übereinstimmen muss.
4.4 Berechnung von Assoziationsregeln
Apriori-Algorithmus:
benötigte Eingabe:
1. eine Warenkorbtabelle, gebildet über einer festen Menge I von Dingen
2. einen geforderten Mindest-Support σ
3. eine geforderte Mindest-Confidence γ
Verfahren
1. Man finde so genannte "häufige Mengen", d.h. Mengen J ⊆ I von
Dingen mit Support supp(R) > σ
2. man erzeuge potenzielle Assoziationsregeln R durch Aufteilen einer
jeden häufigen Menge J in zwei Mengen LS und RS, so dass J =
LS ∪ RS gilt,
ferner LS ∩ RS = Ø und R: LS => RS;
3. man berechne die Confidence einer jeden in Schritt (2) erzeugten Regel
R und gebe diejenigen aus mit Confidence conf(R) > γ
Bestimmung häufiger Mengen,
Bestimmen zunächst die häufigen Einermengen (Mengen mit einem Element)
zu und aus diesen sukzessive größere häufige Mengen zusammenzusetzen so
lange, bis sich keine weiteren häufigen Mengen mehr bilden lassen. Sodann
kann mit den gerade bereits beschriebenen Schritten 2 und 3, also der Bildung
von Assoziationsregeln aus den häufigen Mengen, fortgefahren werden.
Pseudo-Code
Die Ausgabe einer Sammlung häufiger Mengen:
Gegeben sei eine Menge J von Dingen sowie
eine Datenbank D = {Ti ... Tk} von Transaktionen:
1. Initialisiere M := Ø ;
2. foreach A ∈ J do
teste, ob supp({A}) > σ
falls ja: nimm {A} in die Menge häufiger Mengen auf:
M := M ∪ {A};
3. i := l ;
4. repeat (* schrittweises Vergrößern häufiger Mengen *)
foreach Menge J ∈ M mit i Elementen
begin
erzeuge alle Obermengen J' mit i+1 Elementen
durch Hinzufügen häufiger Einermengen aus M;
teste die erzeugten Mengen J' auf die Eigenschaft „häufig",
falls ein J' häufig ist:
M := M ∪ J'
end;
i := i + l;
until keine neuen häufigen Mengen mehr gefunden werden
or i = |I| + 1;
Beispiel Warenkorbtabelle mit σ = 0.7 und γ = 0.8:
I = {Füller, Tinte, Heft, Seife}
•
•
•
•
häufige Einermenge:
{{Füller}, {Tinte}, {Heft}}
häufige Zweiermenge:
{{Füller, Tinte}, {{Füller, Heft}}
potenziellen Regeln:
Füller => Tinte
Tinte => Füller
Füller => Heft
Heft => Füller
Überprüfen mit Confidence:
conf(1) = 0.75
conf(2) = 1
conf(1) = 0.75
conf(4) = 1
Ergebis: Regel 2 und 4 werden als Assoziationsregeln ausgegeben.
4.5 Analyse von Ereignissequenzen
Es geht um Ereignisse, die in einer bestimmten zeitlichen Abfolge auftreten:
•
•
•
•
Zusammenhang zwischen den Ereignissen und ihrem Auftreten feststellen
"Ereignismuster" identifizieren, die dann z.B. für die Prognosen und Vorhersagen
Regeln aus zeitlichen Verläufen ableiten.
"häufigen" Ereignissen bzw. Ereignissequenzen fragen und diese z.B. mit einer
vorgegebenen Klasse von Ereignismustern korrelieren.
Eine Folge von Produktmengen bezeichnet die Folge der Produktmengen in aufeinander
folgenden Transaktionen eines Kunden. In der Warenkorb-Tabelle erkennt man z.B. bei
Kunde 201 die Folge
{Füller, Tinte, Seife},
{Füller, Tinte, Heft, Seife}.
Eine Teilfolge entsteht einfach durch Weglassen von Mengen aus einer gegebenen Folge.
Eine Folge A1...Am ist dann in einer anderen Folge S enthalten,
falls S eine Teilfolge Bi...Bm enthält
mit Ai ⊆ Bi, l< i < m.
Als Beispiel ist in unserem Warenkorb die Folge
{Füller},
{Tinte, Heft},
{Füller, Seife}
enthalten in der Folge
{Füller, Tinte},
{Hemd},
{Milch, Tinte, Heft},
{Heft, Füller, Seife}.
•
•
•
•
Der Support einer Folge S ist der Anteil der (Kunden-) Folgen, in denen S als
Teilfolge vorkommt.
Die Identifikation sequenzieller Muster ist dann die Aufgabe des Bestimmens aller
Folgen mit einem vorgegebenen Mindest-Support.
Informal besagt eine solche Folge A1...Am, dass ein Kunde, der die Produkte in A1
kauft, wahrscheinlich danach die in A2, danach die in A3 usw. kauft.
Ist dann eine Datenbank von zeitlich geordneten Folgen gegeben, so sucht man alle
Folgen, die zu einer vorgegebenen „ähnlich" sind, oder alle Paare von "ähnlichen"
Folgen.
Hierfür gibt es eine Reihe von Anwendungen, z.B. die Identifikation von Firmen mit
ähnlichem Wachstumsverhalten, die Bestimmung von Produkten mit ähnlichen
Verkaufsmustern, die Identifikation von Aktien mit ähnlichen Preisbewegungen oder auch das
Auffinden von nicht ähnlichen seismischen Wellen zur Lokalisierung geologischer
Unregelmäßigkeiten.
An einem anderen Anwendungsbeispiel wollen wir als Nächstes das Mining in
Ereignissequenzen noch etwas genauer erläutern und Ihnen aufzeigen, in welcher Weise man
in diesem Bereich auch zu formal präzisen Begriffen kommen kann. Wir betrachten
exemplarisch ein Telekommunikations-Netzwerk (TK-Netzwerk), in welchem abnormale
Situationen durch Alarmsignale angezeigt werden. Man kann in einem typischen Netz z.B.
davon ausgehen, dass bis zu 200 verschiedene Signale unterschieden werden und zwischen
1.000 und 10.000 Signale pro Tag ausgelöst werden. Traditionell legt die
Überwachungszentrale des Netzes eingehende Signale in einer Datenbank ab, und ein
Operateur entscheidet jeweils über zu ergreifende Maßnahmen.
Durch geeignete Data-Mining-Maßnahmen und -Werkzeuge kann man es dem Operateur
ermöglichen, einerseits Regelmäßigkeiten in Alarm-Folgen zu lokalisieren und diese
andererseits zu nutzen für Vorhersagen des Netzwerkverhaltens. Beispiele möglicherweise
automatisch, also durch ein geeignetes Data-Mining-Werkzeug erkennbarer Regeln sind die
folgenden:
1. Falls eine bestimmte Signal-Kombination innerhalb eines Zeitintervalls auftritt, so
wird ein bestimmter Alarm (ebenfalls) innerhalb einer gegebenen Zeit auftreten.
2. Falls ein Alarm vom Typ A auftritt, so folgt ein Alarm vom Typ B innerhalb von 30
Sekunden mit Wahrscheinlichkeit 0,8.
3. Falls Signale der Form A und B innerhalb von 5 Sekunden vorkommen, so erscheint
innerhalb von 60 Sekunden ein Alarm vom Typ C mit Wahrscheinlichkeit 0,7.
4. Falls A einem Alarm vom Typ B vorangeht und C einem Alarm vom Typ D
vorangeht, alles innerhalb von 15 Sekunden, so folgt E innerhalb von 4 Minuten mit
Wahrscheinlichkeit 0,6.
Episoden
•
•
Mengen von Ereignissen, die nahe beieinander in einer gegebenen Ordnung auftreten;
diese Ordnung muss nicht notwendigerweise total, sondern kann im allgemeinen Fall
partiell sein.
Episoden werden entweder vorgegeben oder im Laufe von Beobachtungen ermittelt.
Der Zweck besteht darin, Episoden mit beobachtbaren, tatsächlich aufgetretenen und
protokollierten Ereignisfolgen abzugleichen bzw. darin zu identifizieren.
Ereignisseguenz
Es sei nun T eine Menge von Signal-Typen, und ein Alarm-Signal habe die Form (A, t),
wobei A ∈ T gilt und t eine ganze Zahl (der Zeitpunkt des Auftretens von A) ist. Eine
(Ereignis-) Sequenz S über T ist dann ein Tripel der Form
S = (s, ts, te)
mit:
1. s = <(A1, t1),(A2, t2),...,(An, tn)>
ist eine Folge von Signalen aus T
und ti < ti+1 für l < i < n- l, d.h. die in s auftretenden Alarm-Signale
seien zeitlich sortiert,
2. ts bezeichnet die Startzeit,
3. te bezeichnet die Endezeit,
4. ts < ti < te für alle i, d.h. sämtliche Zeitmarken liegen zwischen der Start- und
der Endezeit.
Eine zentrale Aufgabe besteht nun darin, aus einer Klasse vorgegebener Episoden alle
diejenigen herauszufinden, die in einer gegebenen Sequenz "häufig" auftreten, wobei nur
solche ausgewählt werden sollen, die "interessant" sind, d.h. zeitlich nahe beieinander liegen.
Man geht dazu wie folgt vor: Man unterteilt eine gegebene Sequenz S in überlappende
Windows (Fenster) W, wobei natürlich der Benutzer die Weite dieser Fenster spezifiziert und
angibt, in wie vielen Fenstern eine Episode vorkommen muss, um als "häufig" zu gelten.
Als Beispiel zeigt Abbildung 21 zwei Windows der Weite 5, von denen das eine das diskrete
Zeitintervall [35, 40), das andere das Intervall [36, 41) umfasst. Eine Episode ist ein Tripel der
Form ∈ = (V, ≤, g) mit:
•
•
•
V ist eine Menge von Knoten,
≤ ist eine partielle Ordnung auf V,S
(bis hierhin handelt es sich bei einer Episode also um einen gerichteten Graphen),
eine Abbildung g : V —> T assoziiert jeden Knoten mit einem Signal-Typ. Eine
solche Zuordnung soll nicht willkürlich erfolgen, sondern muss so beschaffen sein,
dass die Ereignisse in g(V) ⊆ T in der durch ≤ gegebenen Ordnung auftreten.
Als Beispiel zeigt Abbildung 22 drei Episoden. Episode α ist seriell, Episode β ist parallel,
und Episode γ ist weder seriell noch parallel.
Betrachten wir sodann die in den Abbildungen 20 und 21 gezeigten Ereignissequenzen, so
kommen im Window [35, 40) die Signale A, B, C, E sowie die Episoden β , γ vor (nicht aber
α); außerdem entsprechen z.B. den Knoten der Episode γ Signale in der Folge, welche die
partielle Ordnung respektieren. Es lässt sich hier auch beobachten, dass manche Episoden
Subepisoden von anderen sind (z.B. β ≤ γ).
γ
Maße für Episoden
Als die Frequenz fr(∈
∈) einer Episode ∈ bezeichnet man den Anteil von Windows, in denen
∈ vorkommt; relativ zu einer gegebenen Mindesthäufigkeit minfr ist eine Episode ∈ dann
häufig, falls fr(∈
∈) ≥ minfr gilt. Die häufigen Maße für Episoden dienen der Aufstellung
von Regeln, welche die Zusammenhänge Episoden zwischen Ereignissen in einer Sequenz
beschreiben. Ein Beispiel ist die folgende Regel:
Falls β in 4,2 % und γ in 4,0 % der Windows vorkommt, so ist mit einer Wahrscheinlichkeit
von 0,95 zu erwarten, dass ein Window mit A und B auch C enthält
(wegen β≤ γ, 0,95 = 4.0% / 4.2%).
4.6 Sprachkonstrukte für das Data Mining
Es kann in "ungünstigen" Fällen, also bei einer ungünstigen Konstellation der Transaktionen
im zu analysierenden Warenkorb sowie geringem geforderten Mindest-Support und geringer
Mindest-Confidence passieren , dass der Apriori-Algorithmus eine sehr große Ausgabe
erzeugt.
Ein Problem besteht dann darin, aus einer großen Menge algorithmisch erzeugter Regeln die
bedeutungsvollen zu extrahieren bzw. die unwichtigen zu eliminieren.
Daneben ist im Bereich des Data Mining im Unterschied zum OLAP derzeit auch die
folgende Lücke zu beobachten: Während sich für OLAP-Operatoren wie den Cube, bereits
SQL-Erweiterungen abzeichnen, die auch in kommerziellen Systemen zur Verfügung stehen,
ist dies für die Datenwarenhaus-Anwendung des Data Mining bisher nicht der Fall. Es gibt bis
heute lediglich Vorschläge für Spracherweiterung bzw. Sprachkonstrukte, mit denen DataMining-Aufgaben bewältigt werden können.
Lösungsansätze
Für das Erzeugen sowie Weiterzuverarbeiten vom Ergebnis des Apriori-Algorithmus:
LS
Füller
Tinte
Füller
Heft
RS
Tinte
Füller
Heft
Füller
supp
0.7
0.7
0.7
0.7
conf
0.75
1
0.75
1
Herunterladen