DataMining

Werbung
Steffen Thomas 96I
DATA MINING
Allgemein:
• Suche in riesigen Datenbanken
• Finden interessanter Trends oder Muster
• diese können auch unerwartet sein
• soll zukünftige Entscheidungen
vereinfachen
Inhalt:
1 Grundlagen des Data Mining
2 Finden von zusammengehörigen Daten
3 Generierung von Regeln
4 Regeln in Form von Bäumen
5 Clustering
6 Ähnlichkeitssuche über Sequenzen
7 Weitere DataMining-Aufgaben
8 Darwin
1 Grundlagen des Data Mining
• verwandt mit der Erforschenden Daten-Analyse und der KI
• Ideen dieser Gebiete auf Data Mining anwendbar
• wichtigster Unterschied: Größe der Datenmengen
• neues Kriterium:
- Algorithmen müssen skalierbar sein
- d.h. linearer Anstieg der Rechenzeit
Grundlagen
• in der Realität enthalten Daten Rauschen und Lücken
• herkömmliche Methode wie SQL-,OLAP-Queries reichen
nicht aus
• der KDD-Prozess (Knowledge Discovery Process)
data selection: identifizieren des Zieldatensatzes
data cleaning: Beseitigung unnötiger Information
Vereinheitlichung von Feldwerten
Erzeugen neuer Felder
data mining: Extrahieren der vorhandenen Muster (patterns)
evaluation: visuelle Ausgabe der Ergebnisse
2 Zusammengehörige Daten
•
Ausgangspunkt: Probleme wie Warenkorb-Analyse
•
Warenkorb ist Sammlung von Artikeln eines einzelnen
Einkaufs
•
Ziel: finde Artikel, welche zusammen gekauft werden
dadurch bessere Platzierung und Werbung möglich
Zusammengehörige Daten
2.1 Frequent Itemsets
• itemset: Satz unterschiedlicher Artikel
• support: Anteil eines itemsets (%)
– BSP:
itemset {pen,ink} mit support von 75%
{milk,juice}
25%
d.h. Milch und Saft werden nicht sehr häufig zusammen gekauft
• frequent itemsets: alle itemsets mit support über einer
bestimmten Schranke (minsup)
• relativ wenig, besonders bei steigender Datenmenge
Frequent Itemsets
Zusammengehörige Daten
Algorithmus:
• beruht auf einer Eigenschaft von frequent itemsets
• a priori Eigenschaft: jede Unterteilung eines frequent
itemsets ist ebenfalls ein frequent itemset
foreach Artikel
// Level 1
prüfe ob dieser frequent itemset ist // Artikel >minsup vorhanden
k=1
repeat
foreach frequent itemset Ik mit k Artikeln
// Level k+1
generiere alle itemsets Ik+1 mit k+1 Artikeln
scanne alle Transaktionen einmal und prüfe ob
die generierten k+1 itemsets frequent sind
k = k+1
until keine neuen frequent itemsets gefunden werden
Frequent Itemsets
Ein Beispiel:
Zusammengehörige Daten
minsup = 70%
erste Iteration(Level 1):
gefunden werden {pen},{ink},{milk}
zweite Iteration(Level 2):
neue Kandidaten sind
{pen,ink},{pen,milk},{pen,juice},{ink,milk},{ink,juice},{milk,juice}
nach dem Scannen bleiben folgende frequent itemsets übrig
{pen,ink},{pen,milk}
dritte Iteration(Level 3):
Kandidaten sind {pen,ink,milk},{pen,ink,juice},{pen,milk,juice}
keiner der Kandidaten ist frequent, sie werden verworfen
• Verbesserung der Laufzeit durch Anwendung der a priori Eigenschaft
Zusammengehörige Daten
2.2 Iceberg Queries
• wenig Resultate, auch bei goßen Datenbasen
• Anfrage in SQL (Bsp.):
SELECT
P.custid,P.item,SUM (P.qty)
FROM
Purchase P
GROUP BY P.custid,P.item
HAVING
SUM (P.qty) > 5
• iceberg queries nutzen die selbe bottom-up Strategie wie frequent
itemsets
• ebenfalls Performance-Gewinn durch a priori Eigenschaft
3 Generierung von Regeln
• wichtige Muster in Datenbasen sind Regeln
• effektive Beschreibung der Daten
• es existieren vielfältige Formen von Regeln
• ebensoviele Algorithmen
Generierung von Regeln
3.1 Association Rules
• haben die Form
LHS => RHS
; LHS,RHS sind itemsets
BSP:
{pen} => {ink}
• sprachlich: “Wenn bei einem Einkauf ein Füller gekauft wird, so ist es
wahrscheinlich, dass auch gleichzeitig Tinte gekauft wird.”
• support: ist der support für ein itemset LHS RHS
im BSP: support {pen,ink} = 75%
• confidence(Vertrauen): verdeutlicht die Stärke einer Regel
ergibt sich aus sup(LHS) / sup(LHS RHS)
im BSP: 75% der Transaktionen die {pen} enthalten
enthalten auch {ink}
Generierung von Regeln
3.2 Ein Algorithmus zum Finden
von Association Rules
• Gegeben: minsup, minconf
• Ausgangspunkt sind frequent itemsets > minsup
–
–
–
–
X ist frequent itemset mit support sX
X wird in LHS und RHS zerlegt
confidence von LHS => RHS ist sX/sLHS
alle Regeln mit confidence > minconf werden
akzeptiert
• der Aufwand zur Generierung von Regeln ist relativ gering
Generierung von Regeln
3.3 Association Rules und ISA
Hierarchien
• itemsets können oft auch in Hierarchien auftreten
• dadurch können Beziehungen von Artikeln auf unterschiedlichem
Level erkannt werden
Stationary
Pen
• BSP:
Ink
Beverage
Juice
Milk
support von {ink,juice} = 50%
jetzt juice = beverage
support von {ink,beverage} = 75%
• der support eines Artikels kann nur steigen, wenn dieser Artikel durch
einen Vorgänger in der Hierarchie ersetzt wird
Generierung von Regeln
3.4 Allgemeine Association Rules
• Association Rules meist im Zusammenhang mit Warenkorb-Analyse
• kann aber allgemeiner aufgefasst werden
• bei Sortierung nach anderen Merkmalen können Regeln gefunden
werden, die anders interpretiert werden müssen
Bsp:
Sortierung nach custid
Regel: {pen} => {milk}
support = confidence = 100%
bedeutet:”Wenn ein Käufer einen Füller kauft, so kauft er
wahrscheinlich auch Milch.”
• ebenso Sortierung nach Datum usw. möglich
Allgemeine Association Rules
Generierung von Regeln
• Sortierung nach Datum wird auch als kalendrische Warenkorb-Analyse
bezeichnet
• ein Kalender ist dabei Gruppierung von Daten:
z.B.: jeder Sonntag im Jahr 1999
jeder Erste des Monats
• durch Spezifizierung von interessanten Kalendern, können Regeln
entdeckt werden, die in der gesamten Datenbasis nicht auffallen
würden u.ä.
BSP:
Regel: pen => juice
allgemein: support = 50%
Kalender = jeder Erste des Monats
jetzt: support = confidence = 100%
• durch die Wahl verschiedener Gruppierungsmöglichkeiten, kann man
viel komplexere Regeln identifizieren
Generierung von Regeln
3.5 Sequentielle Muster
• Sequenz ist eine Gruppe von Tupeln, die nach bestimmten Merkmalen
geordnet ist
• macht, genau wie association rules, Aussagen über diese Tupel
Bsp.: Sortierung nach custid und item: Sequenz von Einkäufen eines
Kunden (custid = 201 {pen,ink,milk,juice},{pen,ink,juice})
• Teilsequenz ist ebenfalls Sequenz; eine Sequenz {a1,..,am} ist in
Sequenz S enthalten, wenn S eine Teilsequenz
{b1,..,bm} hat
BSP: Sequenz {pen},{ink,milk},{pen,juice} ist enthalten in
{pen,ink},{shirt},{juice,ink,milk},{juice,pen,milk}
• Algorithmen zur Berechnung von Sequenzen sind ähnlich denen zum
Finden von frequent itemsets
Generierung von Regeln
3.6 Association Rules und
Vorhersagen
• association rules werden häufig zur Vorhersage benutzt
• diese müssen aber durch weitere Analysen und Grundlagenwissen
gesichert sein
BSP:
Annahme: Tinte wird durch Füller, Füller mit Bleistiften verkauft
Regel {pen} => {ink}, hat confidence(Vertrauen) von 100%
(in der gegebenen Datenbasis),d.h.:
um mehr Tinte zu verkaufen, könnte man Füller billiger anbieten
aber
{pencil} => {ink}, hat ebenfalls confidence von 100%, d.h.:
billigere Bleistifte, verkaufen mehr Tinte
wäre ein falscher Schluß
Association Rules und Vorhersagen
Generierung von Regeln
• in Wirklichkeit, nicht so triviale Entscheidungen
• kausale Verbindung zwischen LHS und RHS notwendig
• gefundene Regeln sollten als Ausgangspunkt für weitere
Analysen dienen
• Expertenwissen ist nützlich
• gefundene Regeln als alleiniger Entscheidungsgrund sind
zu unsicher
Generierung von Regeln
3.7 Bayesische Netze
• sind Graphen, die kausale Beziehungen zwischen Variablen oder
Ereignissen darstellen können
• jede Kombination von kausalen Verbindungen ist ein Model der realen
Welt
BSP:
kaufe Füller
kaufe Tinte
Bedarf an
Schreibinstrumenten
kaufe Bleistifte
• Zahl der Modelle ist exponential zu Zahl der Variablen
• nur einige wichtige Verbindungen sollten ausgewertet werden
Generierung von Regeln
3.8 Classification und Regression
Rules
• Bsp:
VersicherungsInfo(Alter: integer, Autotyp: string, Risiko: boolean)
es werden Regeln gesucht, die das Versicherungsrisiko bestimmen
z.B.:
“Wenn das Alter zwischen 16 und 25 ist und das Auto ein Sportwagen
oder Truck, so ist ein Risiko gegeben.”
• gesuchtes Attribut heißt: dependent(abhängiges) Attribut Risiko
• bestimmende Attribute: predictor Attribute Alter, Autotyp
Classification und Regression
Generierung von Regeln
• Allgemeine Form:
P1(X1) ^ P2(X2)... ^ Pk(Xk) => Y
X1..Xk: predictor Attribute
P1..Pk: Prädikate
Y: dependent Attribut
• Form der Prädikate abhängig vom Typ der predictor Attribute:
– numerisch:
Pi hat die Form li R Xi R hi
– kategorisiert:
Pi hat die Form Xi i {v1,..,vj}
• die Regel heißt:
– classification rule, wenn dependent Attribut kategorisiert ist
– regression rule, wenn dependent Attribut numerisch ist
Bsp:
(16 R Alter R
25) ^ (Auto i {Sport,Truck}) => Risiko = true
Classification und Regression
Generierung von Regeln
• support:
– für eine Bedingung C ist % von Tupeln, die C wahr machen
– für Regel C1 => C2 ist support für Bedingung C1 ^ C2
• confidence:
– angenommen alle Tupeln die C1 wahrmachen
– für Regel C1 => C2, % der Tupeln, die auch C2 wahr machen
• das effiziente Finden solcher Regeln ist nichttriviales Problem
• diese Regeln werden auf vielfältigste Weise eingesetzt
4 Regeln in Form von Bäumen
• repräsentieren classification und regression rules
• der Baum ist dabei die Ausgabe der Datamining-Anfrage
• Bezeichnungen:
– Entscheidungsbäume, repräsentieren classification rules
– regression-Bäume, repräsentieren regression rules
Bsp:
Alter
Entscheidungsbaum
<= 25
>25
Auto
NEIN
Kombi
Sport, Truck
NEIN
JA
“Wenn jemand 25 oder jünger ist und einen Kombi fährt, so hat er ein
niedriges Risiko.”
Baumartige Regeln
4.1 Entscheidunsbäume
•
•
•
•
•
stellt einen Datensatz von einer Wurzel bis zu einem Blatt dar
jeder interne Knoten ist mit einem predictor Attribut bezeichnet
heißt auch splitting Attribut, d.h. teilt die Daten in Zweige auf
ausgehende Kanten werden mit Prädikaten bezeichnet
Information über splitting Attribut und Prädikat heißt splitting
criterion (Kriterium)
• jedes Blatt ist mit dem Wert des dependent Attributs bezeichnet
• eine classification Regel ergibt sich wie folgt:
der Weg von Wurzel zum Blatt über verschiedene Prädikate = LHS
der Wert des Blattes = RHS
Entscheidunsbäume
Baumartige Regeln
• Entscheidungsbäume werden in 2 Phasen konstruiert:
– growth(Wachstums) Phase:
• ein übergroßer Baum, mit sämtlichen Daten wird erzeugt
• die Regeln dieses Baumes sind überspezialisiert
– pruning(Stutzungs) Phase :
• die finale Größe wird bestimmt
• die Regeln sind allgemeiner
Berechnung eines gestutzten Baums:
• split selection Methode:
– hat als Input die Datenbasis oder einen Teil von ihr
– erzeugt daraus ein split Kriterium
Entscheidunsbäume
Baumartige Regeln
• Schema zur Erzeugung eines gestutzten Baums:
– Input: Knoten n, Partition D, split selection Methode S
– Output: Entscheidungsbaum für D, mit Wurzel in n
– BuildTree(Knoten n, Datenpartition D, split selection methode S)
• wende S auf D an, um ein splitting Kriterium zu finden
• if(gutes Kriterium gefunden)
– Erzeuge zwei Knoten n1, n2 aus n
– Teile D in D1, D2
– BuildTree(n1, D1, S)
– BuildTree(n2, D2, S)
• endif
Baumartige Regeln
4.2 Ein Algorithmus für
Entscheidungsbäume
• obiges Schema sofort anwendbar, wenn Daten in Hauptspeicher passen
• andernfalls versagt Algorithmus
• Lösung:
– die split selection Methode untersucht jeweils einzelne Attribute
– benötigt nicht unbedingt die ganze Datenbasis
– zusammengefasste(aggregierte) Daten sind ausreichend
– wird als AVC set bezeichnet (Attribut-Value,Classlabel)
Entscheidunsbäume
Baumartige Regeln
• Die split selection Methode benötigt AVC set für jedes predictor
Attribut
Bsp:
AVC set für Knoten Alter
SELECT
R.Alter,R.Risiko, COUNT (*)
FROM
VersicherungsInfo R
GROUP BY R.Alter, R.Risiko
AVC set für Knoten Auto
SELECT
FROM
WHERE
GROUP BY
• AVC group
R.Auto,R.Risiko, COUNT (*)
VersicherungsInfo R
R.Alter <= 25
R.Auto, R.Risiko
Satz aller AVCs aller Attribute am Knoten n
5 Clustering
• Ziel: Aufteilung der Daten in Gruppen, die Aussagen über Ähnlichkeit
machen
• Daten einer Gruppe sind ähnlich, unterschiedlicher Gruppen unähnlich
• dies wird durch Abstandsfunktion gemessen
• die Ausgabe eines Clustering-Algorithmus besteht aus zusammengefassten Repräsentationen für jeden Cluster
• Cluster werden zusammengefasst durch Center C und Radius R einer
Sammlung von Daten r1..rn
Bsp:
KundenInfo(Alter: int, Gehalt: real)
Clustering
Gehalt
60k
30k
20
40
60
Alter
• 2 Arten von Clustering-Algorithmen:
– partielles: unterteilt die Daten in k Gruppen (benutzerdefiniert)
– hierarchisches: generiert Sequenz von Teildaten,
verschmilzt in jeder Iteration 2 dieser Teile, bis
eine Partition übrig bleibt
Clustering
5.1 Ein Clustering Algorithmus
• der BIRCH Algorithmus
• Annahmen:
– Zahl der Datensätze ist sehr gross
– möglichst nur ein Scan der Datenbasis
– Hauptspeicher ist limitiert
• 2 Kontrollparameter:
– Größe des Hauptspeichers, resultiert in k Speicherblöcken
– e anfängliche Schranke für Radius der Cluster
• wenn e klein ist, werden viele kleine Cluster berechnet, sonst wenige,
relativ grosse
• ein Cluster heißt kompakt, wenn Radius < e
BIRCH Algorithmus
Clustering
• der Algorithmus behält immer <= k Cluster-Zusammenfassungen
(Ci,Ri) im Speicher
• er behandelt immer kompakte Cluster
• es werden sequentiell Einträge gelesen und wie folgt bearbeitet:
1. Berechne den Abstand des Eintrags r und jedes existierenden C
i ist der Index des Clusters mit kleinstem Abstand (r, Ci)
2. Berechne den neuen Radius Ri’, des i-ten Clusters
wenn Ri’ <= e, weise r dem i-ten Cluster zu (neues Ci, Ri = Ri’)
sonst, erzeuge neuen Cluster mit r
• Problem: weitere Cluster passen nicht in Hauptspeicher
• Lösung: erhöhe e, es werden Cluster verschmolzen
6 Ähnlichkeitssuche über
Sequenzen
• Viele Informationen in Datenbasen bestehen aus Sequenzen
• Annahme: der Benutzer gibt Query-Sequenz an, will ähnliche
Sequenzen erhalten
• ist eine Art unscharfe Suche
• Daten-Sequenz X ist eine Reihe von Zahlen X = {x1,..,xk}
• k ist Länge der Sequenz
• Teilsequenz Z = {z1,..,zj} erhält man aus X durch Löschen von Zahlen
an Anfang und Ende
Ähnlichkeitssuche
• Abstand zweier Sequenzen = Euklidische Norm ||X-Y|| =
• benutzerdefinierte Schranke e
• Ziel: Finden aller Sequenzen im e -Abstand
• Ähnlichkeits-Anfragen können in zwei Arten unterteilt werden:
Komplett-Sequenz Matching:
Query-Sequenz und Sequenzen der Datenbasis sind gleich lang
Ziel: alle Sequenzen im e -Abstand
Teilsequenz Matching:
Query-Sequenz ist kürzer als Sequenzen der Datenbasis
Ziel: Finde alle Teilsequenzen im e -Abstand
Ähnlichkeitssuche
6.1 Suche ähnlicher Sequenzen
• Annahme: Komplett-Sequenz Matching
• Suche ist ein mehrdimensionales Indizierungs-Problem
• Daten- und Query-Sequenzen sind Punkte im k-dimensionalen Raum
• Anlegen eines Hyper-Rechtecks mit Seitenlänge 2* e und QuerySequenz als Zentrum
• alle Sequenzen im Rechteck werden ausgegeben
• durch Benutzung der Indizes deutliche Reduzierung von Rechenzeit
und Zahl der betrachteten Daten
7 Weitere DataMining-Aufgaben
• bisher nur Suche nach Mustern
• weitere wichtige Aufgaben:
Datensatz und Feature Auswahl:
Suche des ‘richtigen’ Datensatzes und dazugehöriger Attribute
Sampling:
Samples reduzieren den Aufwand in übergrossen Datenbanken
Nachteil: wichtige Informationen können übersehen werden
Berechnung der Samples noch rückständig (Forschungsgebiet)
Visualisierung:
verbessert Verständniss über komplexe Datensätze
hilft interessante Muster zu erkennen
8 Darwin
• Daten Mining Tool in Oracle-Umgebung
• parallele, skalierbare Client/ServerArchitektur
• beliebig grosse Datenmengen
• einfachste Point-and-Click Bedienung
• visuelle Ausgabe der Ergebnisse
Darwin
Client:
Windows 95/NT/98
Server:
Windows NT(ab 4.0)
SUN Solaris
HP-UX
Darwin
• Verwendete Algorithmen:
–
–
–
–
–
Neuronale Netze mit Spezialfällen
Entscheidungsbäume(classification, regression)
speicherbasiertes Beweisen
Bayesisches Lernen (ab 4.0)
erweitertes Clustering
Herunterladen