OLAP II: NetCubes Eine skalierbare Methode für schnelles Data Mining und hohe Datenkompression...
-
Upload
gebhard-helm -
Category
Documents
-
view
104 -
download
0
Transcript of OLAP II: NetCubes Eine skalierbare Methode für schnelles Data Mining und hohe Datenkompression...
OLAP II:
NetCubesEine skalierbare Methode für schnelles Data Mining und hohe
Datenkompression
Proseminar - Prof. Weikum Intelligentes Suchen in Informationssystemen WS 2001/2002
Katrina Leyking
2
Fallbeispiel: medizinische Datenbank
1. Grundbegriffe: • Data Mining, OLAP, Data Cubes
2. Einführung: Bayesian Networks• Idee und graphische Darstellung
3. Konstruktion der NetCubes (Algorithmen)4. Fazit, Ausblick & Kritik
Übersicht
3
DataMining
= Extraktion (Mining) entscheidungsrelevanter Informationen aus sehr großen Datenbanken
• Ziel: Zusammenhänge aus einer Flut einzelner Informationen zu erkennen
OLAP (= OnLine Analytical Processing) - Systeme
• Tools des „knowledge management“• arbeiten auf marktorientierter, historischer Datenansammlung• „Datenanalyse zur Entscheidungsfindung“• Basis: multidimensionale Datenmodelle ( Data Cubes)
4
Fallbeispiel
• Ausgangslage: große Menge an Patientendaten
• Dimensionen:– Lebensgewohnheiten– genetische Vorbelastungen– Erkrankungen
• Forschungszweck: besonders häufige Zusammenhänge zwischen den Dimensionen ausfindig machen
• Beispielfragen:– Wie häufig leiden Raucher an Atembeschwerden?– Wie wahrscheinlich ist es, dass ein FastFood-Esser, an Fettleibigkeit erkrankt, wenn seine
beiden Großmütter an Sodbrennen litten?– Wie groß ist bei Rauchern, die genetisch vorbelastet sind, das Lungenkrebsrisiko?
5
Data Cube • multidimensionales Datenmodell • jede Dimension besteht aus
Attributen (z.B.: A21=Attribut 1 der Dimension 2)
bei 3-Dimensionalität vorstellbar als Würfelform:
Probleme:! enormer Speicherplatzverbrauch! lange Anfragezeiten
Lösungsansatz der Autoren:Anwendung des mathematischenKonstruktes der Bayesian Netze Dimension 1
Dim
ensi
on
2Dim
ensi
on 3
A 11 A 12 A 13A
21
A 2
2A
23
A 31
A 32
A 33
122 85
76
156
54 118
158 98 176
6
Data Cube - Beispiel
Lungenkrebs
Erkältung
Fettleibigkeit
Atembeschwerden )(RP
Fehlsichtigkeit
Krebs
Sodbrennen
rote HaareR
auch
er
Frü
hau
fste
her
Bri
llen
träg
er
Fas
tFo
od
-E
sser
Wahrscheinlich-keitsverteilungen:
)(LKRP
)( RKLP
)( RLKP
)( RKLP
0,008
0,072
0,004
0,03
0,4
0,05)(KP
80488
122110
22 11 7
5 2 4
3 5 16 2 2
N = 10 000
genetische Vorbelastung
Lebens- gewohnheit
Fett-leibigkeit
7
Bayesian Networks Einführung
Grundidee:
1. Graphische Darstellung der Wahrscheinlichkeits-verteilungen und Unabhängigkeiten zwischen Attributen.
• gerichteter azyklischer Graph• Knoten Attribute der
Datenbank• Kanten Abhängigkeiten
unter der Attributen
2. Tabellarische Darstellung der bedingten Wahrscheinlichkeiten der Attribute
0,3
0.21
0,09
0,22
A D
C
B
E
)|( ABCP
)|( BACP
)|( BACP
)|( BACP
0,42
0,31
0.25
)|( BDEP
)|( DBEP
)|( DBEP
)|( DBEP
)(AP 0,02 )(BP 0,04 )(DP 0,11
8
• Bayesian Network B = <E,T>• E = Menge aller Kanten • T = Menge aller
Wahrscheinlichkeitstabellen• gerichteter azyklischer Graph• Berechnung der Wahrscheinlichkeiten
bestimmter Kombinationen mit Hilfe der Formeln:
E = {(A,C),(B,C),(B,E),(D,E)} C ist abhängig von A und B E ist abhängig von B und D A,B,D sind unabhängige Attribute
Bayesian Networks Definition
A D
C
B
E
0,3
0.21
0,09
0,22
)|( ABCP
)|( BACP
)|( BACP
)|( BACP
0,42
0,31
0,25
0,23
)|( BDEP
)|( DBEP
)|( DBEP
)|( DBEP
)(AP 0,02 )(BP 0,04 )(DP 0,11
04,0*02,0*3,0)(*)(*)|()(*)|()( BPAPABCPABPABCPABCP
][*][*]|[][*]|[][ ZPYPYZXPYZPYZXPXYZP )(
)()|(
YP
XYPYXP
9
Bayesian Networks – Fallbeispiel:Graphische Darstellung
Früh-aufsteher
Krebs
Fett-leibigkeit
Er-kältung
Sod-brennen
fehl-sichtig
rote Haare
RaucherBrillen-träger
FastFood-Esser
Lungen-Krebs
Atembe- schwerden
Krebs
Raucher
Lungen-Krebs
Atembe- schwerden
Bayesian Networks – Fallbeispiel:graphische + tabellarische Darstellung
)|( KRLP
)|( RKLP
)|( RKLP
)|( RKLP
P(R) 0,4
P(K) 0,05 aus vorliegenden Häufigkeiten
berechnete, bedingte Wahrscheinlichkeits-
verteilung
0,4
0,1895
0,133
0,0526
4,005,0*4,0
008,0
)(*)(
)()|(
KPRP
LRKPRKLP
11
• Q = „Wie viele Raucher, die genetisch vorbelastet sind, sind an Lungenkrebs erkrankt ?
• N = 10000
• 10000 * P(L|RK) = 10000 * 0,4 = 40000
Bayesian Networks – BeispielQuery-Anfrage:
!?Von der Datenbank zum BN
Probleme: Lösungen:
Konstruktion des BN aus
DatenbankHeuristische Suche
zu große Datenbanken für Verarbeitung im Hauptspeicher
Aufspalten der Datenmenge und dann
Verschmelzen
13
verwendete Variablen:
D Datenbank N Anzahl der Datensätze in D ( = |D|) U Menge der Attribute: nXX ,...,1
n Anzahl der Attribute ( = |U|) jnxxx ,...,, 21 Datensatz j der Datenbank D für Nj ,....,1
D i Teilmenge der Datenbank (zur Konstruktion von B i )
K Anzahl der Teilmengen von Datenbanken B i aus D i konstruiertes Bayesian Network
(= ii TE , )
E i Menge aller Kanten des Graphen von B i
T i Menge aller Wahrscheinlichkeitstabellen von B i
14
„Preprocessing“-Algorithmus
Prozedur BuildFromDisk(D):
1. Teile die Datenbank D in N gleiche Teile Di (i=1,..k) so dass jedes in den Hauptspeicher passt. Sei m = | Di | für alle i.
a. Lese Di in den Speicher. b. Baue aus Di Bayesian Netz Bi mit
Bi = BuildFromMemoryUsingData(Di)
2. Verschmelze alle Netze Bi zu einem einzigen Bayesian Netz B = RecursivelyMerge(B1 B2 ,…Bk)
15
Bayesian NetworksKonstruktions – Idee
• heuristische Suche= schrittweise Suche nach dem „besten“ Bayesian Netz
• Ausgangssituation:leeres oder zufällig generiertes Netzwerk
• pro Schritt :Anfügen, Umdrehen oder Weglassen einer Kante und Bewertung des neu entstandenen BN (Score)
• Optimierung durch Minimierung der Zielfunktion, des sogenannten „Score“, der das Netz bewertet (je geringer der Score, umso besser das Netz)
• Kriterien für Bewertung:hinreichend genau und nicht zu groß
Ideen für BuildFromMemoryUsingData(Di)
16
Bayesian Networks: Konstruktions -Algorithmus
Prozedur B = BuildFromMemoryUsingData(D)
1. E 2. T = ProbabilityTables(E,D) 3. B = <E,T> 4. score = 5. do
a) minscore = score b) for each attribute pair (X,Y) do
c) for each
XYYXE
YXE
YXE
E ,
,
' do
d) T’ = ProbabilityTables(E’,D) e) B’ = <E’,T’> f) newscore = ScoreFromData(B’,D) g) if newscore < score then
B = B’ score = newscore
6. while score < minscore 7. Return B
Setzen derVariablen
heuristische Suche
Ausgabedes bisher„besten Netzes“
Bayesian Networks – Zielfunktion Score
),(),(),( NBpenaltyBDpycrossentroDBataScoreFromD
Bewertung, wie genau die Wahrscheinlichkeitsverteilungdes momentane BN B den zugrunde liegenden Daten entspricht. Cross-Entropie von WKV von D zu B= Differenz der beiden MinimalDescriptionLengths
Bewertung des benötigten
Speicherplatzes und dementsprechende
Abstrafung
Minimierung des gesamten Scores BN B mit der höchstmöglichen Genauigkeit bei gleichzeitiger vertretbarer Größe.
18
„Preprocessing“-Algorithmus
Prozedur BuildFromDisk(D):
1. Teile die Datenbank D in N gleiche Teile Di (i=1,..k) so dass jedes in den Hauptspeicher passt. Sei m = | Di | für alle i.
a. Lese Di in den Speicher. b. Baue aus Di Bayesian Netz Bi mit
Bi = BuildFromMemoryUsingData(Di)
2. Verschmelze alle Netze Bi zu einem einzigen Bayesian Netz B = RecursivelyMerge(B1 B2 ,…Bk)
Daten D
Datenteilmengen Di
Teilnetzwerke Bi
Verschmelzung zu BN = NetCube
19
Fazit und Ausblick
Vorteile+ hohe Kompressionsrate (Speicherersparnis)
+ ausreichende Genauigkeit+ schnelle Anfragezeit+ Skalierbarkeit (beliebig große Datenbanken)
Ausblick:• Implementierung auch für diskrete mehrwertige Variablen• Umsetzung spezieller Data-Cube-Operatoren
hervorragenderEinsatz imData Mining
NetCubes: Arbeiten auf Datenmodell (BN) anstatt auf Ausgangsdaten. (laut Autoren: Paradigmenwechsel!!!!)
Kritik
Intuitiv verständliche Idee
Unzulängliche Erläuterungen der
Details
Inhaltsgetreu strukturiert
Formelfehler
(Score-Funktion)
Gute einsichtige Beispiele
Viele Verweise auf andere „paper“
21
Bayesian Networks -Verschmelzung
Procedure B = RecursivelyMerge(B1, …, Bk)
If (B1, B1,…, Bk ) simultaneously fit in main memory then B = BuildFromMemoryUsingBNs(B1, …, Bk)
else
B’ = RecursivelyMerge(B1, …, Bk/2 ) B’’ = RecursivelyMerge(Bk/2, …, Bk) B = RecursivelyMerge(B’,B’’)
22
Experimente mit NetCubes 1
1) Schnelligkeit: Anfragen auf NetCubes sind schneller!
23
Experimente mit NetCubes 2
2) Kompression: NetCubes sind speicherplatzsparend!