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