Data Mining SoSe 2015

Werbung
Data Mining
SoSe 2015
Dennis Baurichter
22. Juli 2015
Inhaltsverzeichnis
1 Einleitung
3
2 Ähnlichkeit und Ähnlichkeitssuche
2.1 Distanzmaß . . . . . . . . . . . . .
2.2 Jaccard-Ähnlichkeit . . . . . . . .
2.3 Dokumente als Mengen: k-shingles
2.4 Minhash-Signaturen . . . . . . . .
2.4.1 Verwendung / Satz . . . . .
2.5 Lokalitätserhaltendes Hashing . . .
2.5.1 Analyse . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
3
3
3
3
4
4
4
3 Häufigkeitsanalyse: Itemset Mining
3.1 Warenkorb-Modell . . . . . . . . . . . . . .
3.2 Support . . . . . . . . . . . . . . . . . . . .
3.3 Assoziationsregeln . . . . . . . . . . . . . .
3.4 A-Priori-Algorithmus . . . . . . . . . . . . .
3.4.1 Phase 1: Filtern von Kandidaten . .
3.4.2 Phase 2: Generieren von Kandidaten
3.4.3 Weiteres . . . . . . . . . . . . . . . .
3.4.4 Assoziationsregeln . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4
4
5
5
5
5
5
5
6
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4 Dimensionalitätsreduktion und Visualisierung
4.1 Hauptkomponentenanalyse: PCA . . . . .
4.2 Boxplot . . . . . . . . . . . . . . . . . . .
4.3 Heatmap . . . . . . . . . . . . . . . . . . .
4.4 Parallelkoordinaten . . . . . . . . . . . . .
4.5 Dimensional Stacking . . . . . . . . . . . .
4.6 Multidimensionale Skalierung (MDS) . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6
6
6
6
7
7
7
5 Clusteranalyse
5.1 Clusterverfahren . . . . . . . . . . . . . . .
5.2 Agglomeratives Clustern . . . . . . . . . . .
5.3 Abstandsmaße . . . . . . . . . . . . . . . .
5.4 Cluster-Repräsentation; Clustroid/Centroid
5.5 K-Means . . . . . . . . . . . . . . . . . . . .
5.6 Bewertung von Cluster-Strukturen . . . . .
5.7 DBSCAN . . . . . . . . . . . . . . . . . . .
5.8 Algorithmus . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7
7
8
8
8
8
8
9
9
6 Netzwerkanalyse
6.1 Betweenness . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.1.1 Berechnung mit Girvan-Newman Algorithmus . . . .
6.2 Finden von Communities . . . . . . . . . . . . . . . . . . .
6.3 Partitionieren durch Schnitte . . . . . . . . . . . . . . . . .
6.4 Probabilistische Modelle und Maximum-Likelihood-Schätzer
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
9
10
10
10
10
10
7 Link-Analyse
11
7.1 Random Surfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
7.2 Rekursive Senken-Elimination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2
7.3
7.4
Zufällige Sprünge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Themen-sensitives PageRank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
8 Data Mining auf Datenströmen
11
8.1 Stichproben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
8.2 Bloom-Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1 Einleitung
2 Ähnlichkeit und Ähnlichkeitssuche
2.1 Distanzmaß
1. d(x, y) ≥ 0
2. d(x, y) = 0 ⇔ x = y
3. d(x, y) = d(y, x)
4. d(x, z) ≤ d(x, y) + d(y, z)
2.2 Jaccard-Ähnlichkeit
Für zwei (diskrete) Teilmengen S und T :
SIM (S, T ) =
|S ∩ T |
|S ∪ T |
2.3 Dokumente als Mengen: k-shingles
k-shingles: Mengen (alternativ bags) der Zeichen / Wörter aller vorkommenden Teilstrings der Länge k in
einem Dokument.
Häufig 4 ≤ k ≤ 9.
2.4 Minhash-Signaturen
Gegeben M Einheiten (Zeichen / Wörter) und N Shingles Sj , sowie Hashfunktionen h mit Schlüssel- und
Wertebereich {1, . . . , M } und möglichst wenigen Kollisionen. Die Shingles seien repräsentiert durch eine
Matrix C ∈ MM,N ({0, 1}) mit C[i][j] = 1 ⇔ Zeichen si ∈ Sj .
Dann berechnen wir Minhash-Signaturen
[h1 (Sj ), h2 (Sj ), . . . , hn (Sj )]
Berechnung von Minhash-Signaturen
1 initialize a l l signature entries sig[·][·] = ∞
2 f o r i i n [1 , . . ., M ]:
3
compute h1 (i), h2 (i), . . . , hn (i)
3
4
5
6
7
f o r j i n [1 , . . ., N ]:
i f C [ i ][ j ] == 1:
f o r k i n [1 , . . ., n ]:
sig [ k ][ j ] = min( sig [ k ][ j ] , hk (i))
2.4.1 Verwendung / Satz
Für eine zufällige Permutation π und zwei Mengen U und V gilt
P(hπ (U ) = hπ (V )) = SIM (U, V )
2.5 Lokalitätserhaltendes Hashing
Idee: Ähnliche Dokumente basierend auf ihren Signaturen mit hoher Wahrscheinlichkeit auf den gleichen
„Behälter“ hashen. Die Ähnlichkeitssuche wird dann nur noch in den Behältern betrieben.
Betrachte N Signaturen der Länge n und zerlege die n Zeilen der n × N Signatur-Matrix in b = nr Bänder
mit jeweils r Zeilen. Auf jedes Band wird eine Hashfunktion g angewendet, die Integer-Vektoren der Länge r
auf eine ausreichend große Zahl von Behältern abbildet. Beispiel:
S1
S2
···
SN
h1 (S1 ) h1 (S2 ) · · · h1 (SN )
r = 3 h2 (S1 ) h2 (S2 ) · · · h2 (SN )
h3 (S1 ) h3 (S3 ) · · · h3 (SN )
h4 (S1 )
···
..
.
Abbildung:
g(h1 (S1 ), h2 (S1 ), h3 (S1 ))
g(h4 (S1 ), h5 (S1 ), h6 (S1 ))
..
.
···
···
g(h1 (SN ), h2 (SN ), h3 (SN ))
g(h4 (SN ), h5 (SN ), h6 (SN ))
Dokumente mit der selben Teilsignatur werden also (sicher) auf den selben Behälter abgebildet, solche mit
nicht identischen Teilsignaturen auf unterschiedliche Behälter. Man kann für jedes Band die selbe Hashfunktion
verwenden, aber unterschiedliche Behälter-Arrays.
2.5.1 Analyse
Sei s die Jaccard-Ähnlichkeit von zwei Dokumenten. Die Wahrscheinlichkeit, dass die Dokumente in einen
gemeinsamen Behälter abgebildet werden, ist p ≥ 1 − (1 − sr )b . Die Funktion s 7→ 1 − (1 − sr )b hat eine
sigmoide Form (S-förmiger Verlauf). Als Schwellwert für die Ähnlichkeit sollte z.B. t ≈ (1/b)1/r gewählt
werden.
Die LHS-Technik garantiert nicht, dass keine false positives oder false negatives auftreten. Die berechneten
Kandidaten-Paare sollten noch geprüft werden, ob tatsächlich mindestens t Einträge übereinstimmen.
3 Häufigkeitsanalyse: Itemset Mining
3.1 Warenkorb-Modell
Daten werden repräsentiert durch eine n : m-Beziehung: Artikel/Items ↔ Warenkörbe/Transaktionen
Es sei I = {i1 , . . . , iN } die Menge aller Items (sehr viele Elemente). Jede Transaktion t ist eindeutig definiert
durch ein Itemset It ⊂ I (wenige Elemente).
4
3.2 Support
Sei T eine Menge von Transaktionen in Form von Itemsets. Der Support eines Itemsets I ist definiert durch
supp(I) := #{t ∈ T : I ⊆ It }
bzw.
supp(I) :=
#{t ∈ T : I ⊆ It }
|T |
I ist häufig, wenn der Support einen vorgegebenen Schwellwert erreicht: supp(I) ≥ minsupp
Ein häufiges Itemset I ist abgeschlossen / maximal, wenn alle echten Obermengen nicht häufig sind.
3.3 Assoziationsregeln
I * I 0 bedeutet „wenn eine Transaktion I enthält, dann vmtl. auch I 0 “.
0)
0
Die Konfidenz ist definiert durch conf (I * I 0 ) = supp(I∪I
supp(I) . Häufig interessant: conf (I * I ) ≥ minconf
3.4 A-Priori-Algorithmus
Der Algorithmus sucht häufige Itemsets und macht sich dazu folgende Monotonie-Eigenschaft zunutze: I
häufig ⇒ (∀J ⊂ I : J häufig)
Es ist ein iterativer Algorithmus der zwei Phasen alterniert, um häufige Itemsets der Kardinalität k =
1, 2, 3, . . . zu finden.
3.4.1 Phase 1: Filtern von Kandidaten
Ggf. wird eine Tabelle für Namen → Integer-Mapping angelegt. Dann werden in einer Tabelle die Itemsets,
die in den Transaktionen vorkommen, gezählt. Betrachtet werden die Kandidaten-Itemsets aus Ck (C1 = alle
1-elementigen Itemsets).
Die Itemsets, die den Schwellwert minsupp erreichen, werden neu nummeriert, von 1 bis m, und in Lk
gespeichert.
3.4.2 Phase 2: Generieren von Kandidaten
Aus den häufigen Itemsets Lk wird die Menge Ck+1 der Kandidaten der Länge k + 1 generiert. Dies sind alle
(k + 1)-elementigen Mengen, die sich als Vereinigung von häufigen k-elementigen Itemsets (solchen aus Lk )
darstellen lassen.
3.4.3 Weiteres
Der Algorithmus wird fortgesetzt, bis wahlweise Ck oder Lk leer ist. In einer effizienten Implementierung
wird Ck nur implizit gebildet (nicht explizit vollständig gespeichert).
A-Priori-Algorithmus
1
2
3
4
5
6
7
8
9
10
11
L1 = { frequent items }
k = 2
while Lk−1 6= ∅:
Ck = {A ∪ B : A, B ∈ Lk−1 ∧ |A ∪ B| = k}
f o r It ∈ T :
f o r I ∈ Ck :
i f I ⊆ It :
count [I ] += 1
Lk = {I ∈ Ck : count(I) ≥ minsupp }
k += 1
return L1 ∪ L2 ∪ · · · ∪ Lk
5
3.4.4 Assoziationsregeln
Nach Beendung des Algorithmus kann man für J ⊂ I, I häufig, Kandidaten für Assoziationsregeln betrachten:
(I \ J) * J. Hier kann die Konfidenz berechnet und Regeln mit ausreichend hoher Konfidenz betrachtet
werden. Oft beschränkt man sich auf Regeln mit |J| = 1.
4 Dimensionalitätsreduktion und Visualisierung
4.1 Hauptkomponentenanalyse: PCA
Idee: Ersetze ursprüngliche Variablen durch eine geringere Anzahl informativer Linearkombinationen. Dabei
soll möglichst viel der Varianz erhalten bleiben, während Redundanz / Korrelationen eliminiert werden.
4.2 Boxplot
4.3 Heatmap
Darstellung in räumlicher bzw. Matrix-Struktur („Wärmebild“). Bsp: „umso mehr rot, umso höher“
6
4.4 Parallelkoordinaten
4.5 Dimensional Stacking
Wähle zwei Dimensionen i1 und i2 und teile sie in Intervalle auf. Die von den beiden Dimensionen aufgespannte
Ebene wird so in Rechtecke unterteilt. Setze anhand weiterer Dimensionen rekursiv fort für jedes Rechteck,
bis keine Dimensionen mehr über sind.
4.6 Multidimensionale Skalierung (MDS)
TODO
5 Clusteranalyse
5.1 Clusterverfahren
• hierarchisch
– agglomerativ
– divisiv
• partitionierend
7
5.2 Agglomeratives Clustern
Zunächst bildet jeder Datenpunkt eine eigene Gruppe. Diese werden so lange miteinander zu größeren Gruppen
kombiniert, bis ein Abbruchkriterium erfüllt wird.
Dies bedeutet in der Regel erheblichen Aufwand, da in jedem Schritt alle aktuellen Cluster paarweise
miteinander verglichen werden müssen.
5.3 Abstandsmaße
Single linkage: D(C, C 0 ) = minx∈C,x0 ∈C 0 d(x, x0 )
Complete linkage: D(C, C 0 ) = maxx∈C,x0 ∈C 0 d(x, x0 )
P
P
1
0
Mean/average linkage: D(C, C 0 ) = |C||C
0|
x∈C
x0 ∈C 0 d(x, x )
Radius: D(C, C 0 ) = maxx∈C∪C 0 d(x, center(C ∪ C 0 ))
5.4 Cluster-Repräsentation; Clustroid/Centroid
Cluster können bspw. durch ihr geometrisches Zentrum repräsentiert werden. Ist dies nicht möglich, gibt es
verschiedene Möglichkeiten, einen Punkt als Centroid zu bestimmen. Bsp:
x∗ = arg min
x∈C
x∗ = arg min
x∈C
X
d(x, y)
y∈C
X
d(x, y)2
y∈C
∗
x = arg min max d(x, y)
x∈C y∈C
5.5 K-Means
Der Algorithmus erwartet die Zahl der Cluster, K, als Parameter. Ist K nicht bekannt, kann man durch
mehrfaches probieren einen Wert ermitteln.
Die Initialisierung sollte möglichst divers sein. Bsp.-Strategie: Wähle einen zufälligen Punkt und danach
immer den, dessen minimaler Abstand zu den bereits gewählten maximal ist.
K-Means
1 initialize K cluster centroids c1 , . . . , cK
2 until no change i n clusters :
3
f o r a l l data points xi :
4
assign xi to the closest centroid
5
recompute centroids c1 , . . . , cK
5.6 Bewertung von Cluster-Strukturen
Bsp. Dunn Index (mit D Inter-Cluster Distanz, ∆ Intra-Cluster Distanz):
min1≤i6=j≤K D(Ci , Cj )
max1≤k≤K ∆(Ck )
Für die Wahl von K: „Ellenbogen-Heuristik“
8
5.7 DBSCAN
x dicht: x von ausreichend vielen Punkten umgeben
y direkt dichte-erreichbar von x: y liegt in -Nachbarschaft von x und x ist dicht
y dichte-erreichbar von x: ∃ Sequenz von x nach y, sodass xi+1 direkt dichte-erreichbar von xi ist
x und y dichte-verbunden: ∃z : x, y dichte-erreichbar von z (symmetrische Relation)
In DBSCAN gibt es drei Arten von Punkten:
Kernobjekte, die selbst dicht sind
dichte-erreichbare Objekte, die von einem Kernobjekt erreichbar, aber nicht dicht sind („Rand“ des Clusters)
Rauschpunkte, die weder dicht, noch dichte-erreichbar sind
DBSCAN garantiert, dass dichte-verbundene Punkte im selben Cluster landen und Rauschpunkte identifiziert
werden. Lediglich dichte-erreichbare Punkte landen (zufällig) in einem der passenden Cluster.
Im Gegensatz zu K-Means muss die Zahl der Cluster nicht vorgegeben werden und es wird keine spezielle
Form der Cluster vorausgesetzt. Es können beliebige Distanzfunktionen verwendet werden; der Datenraum
muss nicht geometrisch sein.
5.8 Algorithmus
Zunächst wird jeder Punkt als NOISE markiert und seine -Umgebung berechnet. Dann wird für jeden noch
als NOISE betrachteten Punkt x geprüft, ob er dicht ist. Ist dies der Fall, so wird ein neuer Cluster erzeugt
und erweitert.
Das Erweitern eines Clusters funktioniert folgendermaßen: Beginnend mit den Punkten in der -Umgebung
von x werden die dichte-erreichbaren Punkte dem Cluster hinzugefügt. Für jeden dichten hinzugefügten Punkt
y werden auch die Punkte in der -Umgebung von y als dichte-erreichbar betrachtet (und wie beschrieben
behandelt).
DBSCAN
1 def DBSCAN (, MinPts ) :
2
f o r x i n data points :
3
mark x as NOISE
4
NeighborPts [ x ] = points within - neighborhood of x ( including x )
5
f o r x i n points marked as NOISE :
6
i f l e n ( NeighborPts [ x ]) ≥ MinPts :
7
C = new cluster
8
expandCluster (x , NeighborPts , C , , MinPts )
9
10 def expandCluster (x , NeighborPts , C , , MinPts ) :
11
ExtendedPts = NeighborPts [ x ]
12
C += x
13
f o r y i n ExtendedPts marked as NOISE :
14
C += y
15
i f l e n ( NeighborPts [ y ]) ≥ MinPts :
16
ExtendedPts += NeighborPts [ y ]
6 Netzwerkanalyse
Betrachte (soziale) Netzwerke, Kommunikationsverbindungen, etc. als gerichtete/ungerichtete, gewichtete/ungewichtete Graphen. Soziale Netzwerke zeigen üblicherweise Lokalität (Tendenz zur Gruppierung). Man kann
hier bspw. Annahmen über Dreiecksbeziehungen machen (R(A, B) ∧ R(A, C) * R(B, C)).
9
Anders als bei der Clusteranalyse sind Gruppen/Communities typischerweise nicht disjunkt, sondern
überlappend.
6.1 Betweenness
Sei G = (V, E) ein Graph. Für U, V ∈ V sein SP (U, V ) die Menge der kürzesten Wege zwischen U und V .
X
betw(A, B) :=
U,V ∈V
1
|SP (U, V )|
X
J(A, B) ∈ P K
P ∈SP (U,V )
Ein hoher Wert für die Betweenness betw(A, B) legt nahe, dass A und B zu unterschiedlichen Communities
gehören.
6.1.1 Berechnung mit Girvan-Newman Algorithmus
Überführe den Graphen für jeden Knoten X mittels Breitensuche in einen Baum mit Wurzel X. Jedes Blatt
erhält Wert 1. Jeder Knoten verteilt
Pseinen Wert gleichmäßig auf seine eingehenden Kanten. Jeder Knoten,
der kein Blatt ist, erhält Wert 1 +
Werte seiner ausgehenden Kanten.
P
Wert von (A, B) in Baum T
betw(A, B) = T ∈Bäume
2
6.2 Finden von Communities
Bsp: Eliminiere die Kanten, deren Betweenness eine Schranke überschreitet, und betrachte die Zusammenhangskomponenten. Dazu kann man die Kanten gemäß der Betweenness sortieren oder alternativ nach jeder
Kanten-Elimination die Betweenness neu berechnen.
Um Überlappungen zwischen Communities zuzulassen, kann man direkt nach stark zusammenhängenden
Teilgraphen suchen und sie als Kern einer Community identifizieren (und erweitern). Eine Möglichkeit dazu
ist die Suche nach maximalen Cliquen (NP-vollständig; häufig zu klein).
Eine andere Möglichkeit ist, den Graphen zufällig in zwei Teile zu zerlegen, als bipartiten Graphen zu
behandeln und vollständige bipartite Teilgraphen zu suchen (Hoffnung: bei Zerlegung wird eine Community in
zwei etwa gleich große Teile zerlegt). Dieses Problem lässt sich auf das Finden häufiger Itemsets zurückführen
(Knotenmenge = Items ∪˙ Transaktionen).
6.3 Partitionieren durch Schnitte
˙ . Ihr Gewicht ist Cut(S, T ) = Zahl der Kanten
Ein Schnitt eines Graphen ist eine Partition von V = S ∪T
zwischen S und T .
Interpretiert man Kanten als soziale Beziehungen, möchte man nach Schnitten mit minimalem Gewicht
suchen. Um zu vermeiden, dass S und T sehr starke Größenunterschiede aufweisen, betrachtet man das
normalisierte Gewicht
Cut(S, T ) Cut(S, T )
+
V ol(S)
V ol(T )
wobei V ol(S) = Zahl der Kanten mit min. einem Eckpunkt in S.
6.4 Probabilistische Modelle und Maximum-Likelihood-Schätzer
Modellfindungs-Ansatz: Finde eine Wahrscheinlichkeitsverteilung, die für die tatsächlich beobachteten Daten
maximal plausibel ist.
Sei P = {Pθ : θ ∈ Θ} eine Klasse von Verteilungen und Pθ (D) die Wahrscheinlichkeit, die Daten D unter
der Parametrisierung θ zu beobachten. Dann ist
` : θ 7→ P (D|θ) = Pθ (D)
10
die Likelihood-Funktion und
θ∗ = arg max `(θ)
θ∈Θ
der Maximum-Likelihood (ML) Schätzer. Das Finden des ML-Schätzers ist oft einfacher, indem der
Logarithmus der Likelihood-Funktion betrachtet wird.
7 Link-Analyse
7.1 Random Surfer
Transitionsmatrix M = (mi,j ) mit mi,j = P(von Knoten i nach Knoten j). Wir interessieren uns für die
stationäre Verteilung v ∗ mit M · v ∗ = v ∗ (Eigenvektor-Berechnung durch (M − I)v ∗ = 0) bzw. M t · v0 ≈ v ∗
für ausreichend große t (t ≈ 50 für das WWW).
Obige Berechnung funktioniert jedoch nicht mit Senken und anderen Problemen.
7.2 Rekursive Senken-Elimination
Berechne v ∗ für den reduzierten Graphen G0 . Anschließend erweitere für einen Knoten n, dessen Vorgänger p
alle in G0 liegen:
v ∗ (n) =
X
p
1
v ∗ (p)
out(p)
7.3 Zufällige Sprünge
Vermeidet nicht nur Senken, sondern auch Probleme durch bspw. Zusammenhangskomponenten. Für eine
Sprungwahrscheinlichkeit (1 − β) und einen Vektor u = ( |V1 | , . . . , |V1 | )t :
vt+1 = β · M · vt + (1 − β) · u
7.4 Themen-sensitives PageRank
Wie PageRank mit zufälligen Sprüngen, aber u stellt eine Gleichverteilung auf die Teilmenge der Knoten zu
einem bestimmten Thema dar (Rest 0-Einträge).
8 Data Mining auf Datenströmen
8.1 Stichproben
Stichprobe der anteiligen Größe ab an allen Daten: Wende eine Hashfunktion mit b Behältern an und speichere
Elemente mit Hashwert ≥ a. Für eine variable Größe verringere a nach gewisser Zeit und lösche alle Elemente
mit Hashwert > a.
11
8.2 Bloom-Filter
Aufgabe ist zu prüfen, ob ein Schlüssel K zu einer Menge S gehört. Seien h1 , . . . , hk Hashfunktionen, die
Schlüssel auf n Werte abbilden.
Bloom-Filter Initialisierung und Anwendung
1 def init ( Menge von m Schl ü sseln S , h1 , . . . , hk ) :
2
a = Array mit n 0 - Bits
3
for s in S:
4
f o r hi i n h1 , . . . , hk :
5
a [hi ( s ) ] = 1
6
return a
7
8 def pr ü fen ( Schl ü ssel K , Array a ( aus init () ) , h1 , . . . , hk ) :
9
f o r hi i n h1 , . . . , hk :
10
i f a [hi ( K ) ] == 0:
11
return "K nicht i n S"
12
return "K mö g l i c h e r w e i s e i n S"
12
Herunterladen