Data Mining - ausführliche Zusammenfassung PDF

Title Data Mining - ausführliche Zusammenfassung
Author Hans Schmidt
Course Data Mining
Institution FernUniversität in Hagen
Pages 48
File Size 2.2 MB
File Type PDF
Total Downloads 121
Total Views 271

Summary

Data MiningAttributwerte ● Nominale Attribute: auf der jeweiligen Wertemenge existiert keine bedeutsame Ordnung ○ Bsp: Namen, Beschreibungen, ID ● Binäre Attribute ● Ordinale Attribute: durch eine vorhandene Ordnung / Rangfolge in seinem Wertebereich gekennzeichnet ○ Bsp: Kreditwürdigkeit (hervorrag...


Description

Data Mining Attributwerte ● Nominale Attribute: auf der jeweiligen Wertemenge existiert keine bedeutsame Ordnung ○ Bsp: Namen, Beschreibungen, ID ● Binäre Attribute ● Ordinale Attribute: durch eine vorhandene Ordnung / Rangfolge in seinem Wertebereich gekennzeichnet ○ Bsp: Kreditwürdigkeit (hervorragend, passabel, zweifelhaft, schlecht) ● Numerische Attribute: quantitative Angabe ○ Bsp: Gehalt ● Zeitreihen: Folge von Werten, die in bestimmten Zeitabstanden gemessen wurden ○ zwei Attributarten: ■ Kontextattribut: für Zeitreihen ist das die Zeit; andere Datentypen können mehrere Kontextattribute haben ■ Verhaltensattribut: der Messwert ● diskrete Folge: ○ Folge von Werten mit genau einem Kontextattribut (wie bei Zeitreihen auch), z.B. einem Zähler ○ einziger Unterschied: die Werte sind logisch voneinander getrennt; zwischen den Werten liegt kein weiterer Wert ○ Beispiel: Folge von Kundeneinkäufe im Supermarkt

Statistische Grundbegriffe Lageparameter → für sortierte Folgen ●

arithmetisches Mittel:



gewichtetes arithmetisches Mittel:



Median / Mittelwert: (Hälfte des Maximums)



Modus

(z.B. Uhrzeit & Wochentag)





Quartil: teilt sortierten Folge ○ erstes Quartil: Q(1/4) - Stelle bei 0,25 ○ zweites Quartil: Q(1/2) - Stelle bei 0,5 ○ drittes Quartil: Q(3/4) - Stelle bei 0,75 Quartilsabstand: Q(3/4) - Q(1/4)

Streuungsmaße ● Varianz:



Standardabweichung: Wurzel der Variants

Abstand- und Ähnlichkeitsmaße ●

Distanzmatrix ○ zur Berechnung der Ähnlichkeit von Datensätze ⇾ immer Obj1.x vergleichen mit Obj2.x, Obj3.x, Obj4.x … und Obj1.y vergleiche mit Obj2.y, Obj3.y, Obj4.y ○ benötigt eine Datenmatrix ■ enthält pro Zeile alle Attribute eines Objektes ○ nun wird mit Hilfe einer Distanzfunktion dist() der Abstand zwischen Attributwerten berechnet: ■ Werte aus Datenmatrix vergleichen: immer Attribut der Ziel-Zelle vergleichen mit dem Wert der Diagonalen

Da eine Distanzfunktion symmetrisch ist, muss nur das linke Dreieck der Matrix ausgefüllt werden; Diagonale ist 0

Abstandsmaße für binäre Attribute q - Anzahl Attribute, die beide Wert = 1 haben s - Anzahl Attribute, die beide mit Wert = 0 r - Anzahl Attribute mit ungleichen Werten p - Gesamtanzahl der Attribute ●

symmetrische binäre Distanz:



asymmetrische binäre Distanz:

Abstandsmaße für numerische Attribute → Vergleich zweier Folgen von Zahlen Bsp:



Abstand zwischen zweidimensionalen Punkten x = (2.3, 2.9) y = (2.6, 2.3) euklidische Distanz:

(geometrisch ist dies die Länge der kürzesten Geraden zwischen zwei Punkten) Bsp: ⇾ dist(x, y) ≈ 0,67 ●

Manhatten-Distanz: (Summe der Einzelabstände zwischen den Attributen)

Bsp: ⇾ dist(x, y) = 0,9



Minkowski-Distanz:



Maximum-Distanz:

Bsp: ⇾ dist(x, y) = 0,6

KE2:

Datenbereinigung Korrektur von Ausreißern und Inkonsistenzen 1. Binning → alle Ausprägungen eines Attributes aufsteigend sortieren und anschließend in gleichgroße Behälter einteilen 2. Glätten 3 Varianten: ■ ■ ■

nach Mittelwert: nach Median: nach Grenzen:

Jeden Wert durch arith. Mittel teilen Jeden Wert durch Median teilen Jeden Wert durch Minimum oder Maximum des Behälters ersetzen (zu dem der Abstand geringer ist)

bei Zeitreihen kommen häufig Ausreißer vor → abgewandelte Form des Binnings verwenden: ● Zeitreihe wird in k Behälter unterteilt (ohne zu sortieren) ● für jeden Behälter wird der Mittelwert (oder Median) berechnet → diese Mittelwerte stellen die geglättete Folge dar ● → je größer das k, desdo stärker der Glättungseffekt (und damit auch der Datenverlust) Reduzierung des Datenverlusts durch Glätten mit gleitendem Mittelwert ● Behälter überschneiden sich: erster Behälter [t1, tk], zweiter Behälter [t2, tk+1], ... … Exponentielles Glätten

y - geglätteter Wert 𝛼 - wird vorgegeben

! EA 2.5

Ähnlichkeitsmaße für Zeitreihen → diese müssen zunächst normiert werden

Methode zur Normierung: Dynamic Time Warping (DTW) warping - verziehen, wöben ● Vereinheitlichung der Länge beider Zeitreihen durch Wiederholung bestimmter Werte ● Vorgehen: parallel durch beide Liste laufen und jeweils nur einen der beiden Indizes hochzählen, nämlich den der die kleinste Differenz beider Werte verursacht ● Bsp: x =

y =

Abstand dieser Zeitreihen: DTWi,j( x, y) = dist(xi, yj) + min(DTWi,j-1 ( x, y ), DTWi-1,j ( x,  y), DTWi-1,j-1 ( x,  y))  * Funktion dist() wird vorgegeben, z.B. dist(xi, yj) = |xi - yj| Nun kann DTW schrittweise berechnet werden; i und j sind die Positionen in den Zeitreihen; i läuft hier von 1-6 und j von 1-2; damit die min-Funktion immer die benötigten Vorgänger hat, wird DTW initialisiert: DTW0,0 = 0 DTWi,0 = ∞ (i ist 1-6) DTW0,j = ∞ (j ist 1-2) DTW1,1( x, y) = dist(26, 19) + min{∞,∞, 0} = 7 DTW1,2( x, y) = dist(26, 7) + min{7,∞,∞} = 26 DTW2,1( x, y) = dist(13, 19) + min{∞, 7,∞} = 13 DTW2,2( x, y) = dist(13, 7) + min{13, 26, 7} = 13 DTW3,1( x, y) = dist(2, 19) + min{∞, 13,∞} = 30 DTW3,2( x, y) = dist(2, 7) + min{30, 13, 13} = 18 DTW4,1( x, y) = dist(28, 19) + min{∞, 30,∞} = 39 DTW4,2( x, y) = dist(28, 7) + min{39, 18, 30} = 39 DTW5,1( x, y) = dist(11, 19) + min{∞, 39,∞} = 47 DTW5,2( x, y) = dist(11, 7) + min{47, 39, 39} = 43 DTW6,1( x, y) = dist(18, 19) + min{∞, 47,∞} = 48 DTW6,2( x, y) = dist(18, 7) + min{48, 43, 47} = 54 => Der Abstand dieser Zeitreihen ist die letzte Zahl, also 54.

Levenshteindistanz / Edit-Distanz → für diskrete Folgen * Ähnlichkeit zweier Strings kann auch als Länge ihrer längsten gemeinsamen Teilfolge (LGT) angegeben werden

Ähnlichkeit von Textdokumenten ●

Kosinus-Ähnlichkeit:

x, y sind Vektoren, der enthaltenen Worte x * y ist das Skalarprodukt x1y1 + … + xpyp → die jeweils erste Werte multipliziert + jeweils zweite Wert emultipliziert + jeweils dritte .. (aber nicht jeder mit jedem!) || x||  ist euklidische Normalform von x:

* in einem Vektor ist die Häufigkeit der im Text enthaltenen Wörter gezählt (jede Dimension ein Wort) jeweils die Normalform (Nominativ, Singular) verwenden ! Bsp-in-Übungen

Chi-Quadrat-Test (für numerische Folgen) → prüft, ob zwischen zwei Attributen eine Korrelation besteht: hier, ob die Zielgruppe mit der Wahl der Partei korreliert Bsp:

1. Für jede Zelle die erwartete Häufigkeit ei,j berechnen: e1,1 =

→ in Klammern hinter jede Zelle schreiben

2. Signifikanzniveau X berechnen:

⇒ Ergebnis ist ein sog. Signifikanzniveau; nun wird in einer gegebenen Tabelle abgelesen, ob Korrelation besteht oder nicht

Kovarianz → prüft, ob positive oder negative Korrelation zwsichen zwei Attributen besteht

E - Erwartungswert (arithm. Mittel) A*B Skalarprodukt von A und B und dann durch die Anzahl wenn ⇒ positiv, dann postive Korrelation (wenn A steigt, dann steigt auch B) ⇒ negativ, dann negative Korrelation (wenn A steigt, sinkt B) Der Betrag der Zahl hat keine Aussage - nur das Vorzeichen ist relevant

Korrelationskoeffizient → Kovarianz gibt nur die Richtung der Korrelation an, dagegen kann der Korrelationskoeffizient Stärke und Richtung angeben



Vorzeichen gibt Richtung an, Betrag gibt Stärke an

Datenreduktion → um handbhabbare Datenmenge zu erhalten ● der dadurch verursachte Datenverlust darf die Charakteristik der Daten nicht spürbar verändern Diskrete Wavelet-Transformation (DWT) Bsp: Zahlenfolge 152, 228, 148, 176, 192, 220, 200, 32

Schwellenwert 30

Vorgehen: 1. alle Werte in einen Vektor übernehmen, aber Werte unterhalb des Schwellenwertes 0 setzen

x =

152 228 148 176 192 220 200 32

2. Länge des Vektors auf eine 2er Potenz bringen durch Ergänzen von 0en Länge 8 → passt schon 3. Der Vektor wird durch zwei Funktionen verrechnet:

a. Glättungsfunktion b. Unterschiedfunktion Zuerst läuft f durch den Vektor jeweils mit zwei Nachbarwerte (also f(x1, x2), dann f(x3, x4) … ). Mit diesen Ergebnissen wird die erste Hälfte des nächsten Vektors aufgebaut. Dann läuft g genauso durch den Vektor. Dessen Ergebnisse werden an den nächsten Vektor angehängt (also füllt er die zweite Hälfte). x’ =

(152 + 228) / 2 (148 + 176) / 2 (192 + 220) / 2 (200 + 32) / 2 152 - 190 148 - 162 192 - 206 200 - 116

=

190 162 206 116 -38 -14 -14 84

4. Schritt 3 wird wiederholt, allerdings nur bis zur Hälfte der jeweils vorherigen Bearbeitungslänge (also nun nur bis zur Hälfte, dann Viertel, ..). x’’ =

(190 + 162) / 2 (206 + 116) / 2

=

176 161

x’’’ =

190 - 176 206 - 161 (unverändert übernehmen) (unverändert übernehmen) (unverändert übernehmen) (unverändert übernehmen)

14 45 -38 -14 -14 84

(176 + 161) / 2 = 176 - 168,5 (unverändert übernehmen) (unverändert übernehmen) (unverändert übernehmen) (unverändert übernehmen) (unverändert übernehmen) (unverändert übernehmen)

168,5 7,5 14 45 -38 -14 -14 84 → Ergebnisvektor

Achtung: Bei Differenzbildung (zweite Hälfte) als Minuent immer jeden zweiten Wert nehmen beginnend beginnend mit x1, → x1-x1’ x3-x2’ x5-x3’ x7-x4’ mittels Tabelle: 152 152+228 2

228 =

190 190+162 2

168,5

=

162 =

176 176+161 2

148+176 2

148

206+116 2

=

161 =

192+220 2

176 =

200+32 2

=

206

116

190-176 =

206-161 =

14

45

14

45

192

220

200

32

152-190 =

148-162 =

192-206 =

200-116 =

-38

-14

-14

84

-38

-14

-14

84

176-168,5 =

7,5

Rücktransformation: 168,5

7,5

168,5+7,5=

168,5-7,5=

176

161

176+14=

176-14=

161+45=

161-45=

190

162

206

116

190+(-38)=

190-(-38)=

162+(-14)=

162-(-14)=

206+(-14)=

206-(-14)=

116+84=

116-84=

152

228

148

176

192

220

200

32

Achtung: Falls ein Schwellenwert für Rücktransformation angegeben ist, müssen zunächst die Werte | vi | 0, -8 -> 0 Bsp: Schwellenwert: 10 Vektor: (3, 12, 20, -5, -14, 1, 10, 2) → (0, 12, 20, 0, -14, 0, 0, 0)

Rücktransformation mittels Haar-Wavelets: 1. Tabelle aufstellen Wavelet-Koeffizient (Ergebnisvektor)

Basisvektor (auswendig lernen)

168,5

(1, -1, 0, 0, 0, 0, 0, 0)

7,5

(0, 0, 1, -1, 0, 0, 0, 0)

14

(0, 0, 0, 0, 1, -1, 0, 0)

45

(0, 0, 0, 0, 0, 0, 1, -1)

-38

(1, 1, -1, -1, 0, 0, 0, 0)

66

(0, 0, 0, 0, 1, 1, -1, -1)

-58

(1, 1, 1, 1, -1, -1, -1, -1)

60

(1, 1, 1, 1, 1, 1, 1, 1)

2. Nun von unten nach oben schrittweise die Basisvektoren verrechnen → Faktor im Basisvektor mit linker Zahl multiplizieren und auf den aktuellen Vektor addieren, beginnend mit Vektor (0, 0, 0, 0, 0, 0, 0, 0) 60 => (0 + 60*1, 0 + 60*1, 0 + 60*1, 0 + 60*1, 0 + 60*1, 0 + 60*1, 0 + 60*1, 0 + 60*1) = (60, 60, 60, 60, 60, 60, 60, 60)

-58 => (60 + -58*1, 60 + -58*1, 60 + -58*1, 60 + -58*1, 60 + -58*-1, 60 + -58*-1, 60 + -58*-1, 60 + -58*-1) = (2, 2, 2, 2, 118, 118, 118, 118) 66 => (2 + 66*0, 2 + 66*0, 2 + 66*0, 2 + 66*0, 118 + 66*1, 118 + 66*1, 118 + 66*-1, 118 + 66*-1) = (2, 2, 2, 2, 184, 184, 52, 52) -38 => (2 + -38*1, 2 + -38*1, 2 + -38*-1, 2 + -38*-1, 184 + -38*0, 184 + -38*0, 52 + -38*0, 52 + -38*0) = (-36, -36, 40, 40, 184, 184, 52, 52) 45 => (-36 + 45*0, -36 + 45*0, 40 + 45*0, 40 + 45*0, 184 + 45*0, 184 + 45*0, 52 + 45*1, 52 + 45*-1) = (-36, -36, 40, 40, 184, 184, 97, 7) 14 => (-36 + 14*0, -36 + 14*0, 40 + 14*0, 40 + 14*0, 184 + 14*1, 184 + 14*1, 53 + 14*0, 51 + 14*0) = (-36, -36, 40, 40, 198, 170, 97, 7) 7,5 => (-36 + 7,5*0, -36 + 7,5*0, 40 + 7,5*1, 40 + 7,5*-1, 198 + 7,5*0, 170 + 7,5*0, 53 + 7,5*0, 51 + 7,5*0) = (-36, -36, 47,5, 32,5, 198, 170, 97, 7) 168,5 => (-36 + 168,5*1, -36 + 168*-1, 47,5 + 168,5*0, 32)

Auswahl wesentlicher Attribute (Feature Subset Selection) → keine Änderung an den Daten, sondern spezifische Auswahl von Attributen (nicht Attributwerte) mögliche Vorgehen / Heuristiken: ●

schrittweise Vorwärtsauswahl: beginnend mit leerer Menge schrittweise das nächstbeste Attribut hinzufügen



schrittweise Rückwärtseliminierung: beginnend mit Gesamtmenge schrittweise das schlechteste Attribut entfernen



schrittweise beidseitige Optimierung: ausgehend von einer Teilmenge wird in jedem Schritt das schlechteste enthaltene Attribut durch das beste nicht enthaltene ersetzt



Entscheidugsbäume: An jedem Knoten des Baums wird das beste Attribut für eine Datenpartionierung gewählt

* Bewertung: bestes/schlechtestes Attribut z.B. mittels statistischer Signifikanztests

Resevoir Sampling → Stichprobe aus einem Datenstrom ● die ersten k ankommenden Datensätze werden in die Stichprobe aufgenommen ● danach wird eine Zufallszahl z zwischen 1 und n generiert (n: bisher insgesamt eingetroffene Datensätze) ● wenn z maximal so groß wie k ist, wird der neue Datensatz an Position z der Stichprobe geschrieben Zu jeder Zeit ist die Warscheinlichkeit für einen Datensatz in der Stichprobe enthalten zu sein k/n .

Datentransformation Normalisierung: → Vereinheitlichung numerischer Attribute (aufzählbar, aber nicht zwingend Zahlen) 3 Verfahren: ● Min-Max-Normalisierung: Intervall [Il,

Ir] festlegen, indem sich die normalisierten Werte bewegen sollen, z.B. [-1,1] oder [0,1]

dann Attributwerte normalisieren mittels

A - Menge der Attributwerte



z-Transformation / Standardisierung: 𝐴 σA



- arithm. Mittel - Standardabweichung (s.o.)

Dezimalskalierung:

(Nenner entspricht der kleinsten Zehnerpotenz, die betragsmäßig größer als alle Attributwerte von A ist) ! EA 2.4

KE3

Mustersuche Grundlagen

Menge von Items; z.B. die Artikel, die Artikel eines Lebensmittelhändlers

D

Menge nichtleerer Transaktionen (z.B. alle Einkäufe bei Kaufland)

I

Itemset (ein Einkauf mit 1..n Items) → I ∈ D

anz(A)

Häufigkeit eines Itemsets A

Assoziationsregel (A,B

zwei disjunkte Itemsets)

Eine Assoziationsregel besteht aus ●

𝑎𝑛𝑧(𝐴 ∪ 𝐵) |𝐷| → Anzahl unterschiedlicher Items durch Gesamtanzahl Itemsets (/Transaktionen)

Support

supp(A ⇒ B) = P(A ∪ B)

=

! Support-Count für ein einzelnes Item: Wie oft kommt es in den Itemsets vor



𝑎𝑛𝑧(𝐴 ∪ 𝐵) 𝑎𝑛𝑧(𝐴) → relativer Anteil der Menge an Items, die in beiden enthalten sind (A,B) im Verhältnis zur Anzahl derer, die nur in A enthalten sind

Konfidenz

conf(A ⇒ B)

= P(B|A)

=

starke Assoziationsregel

Regel, deren Support und Konfidenz bestimmte Schwellenwerte überschreitet

k-Itemset

Itemset mit k Items

häufiges Itemset

Itemset, das einen Mindestsupport suppmin oder eine Mindestanzahl anzmin übersteigt

abgeschlossenes Itemset

Itemset, für das kein echtes Ober-Itemset in D existiert, was den gleichen Support hat (Ober-Itemset: enthält alle Items + mind. eins mehr: J ⊃ I )

maximales Itemset

Itemset, für das kein echtes Ober-Itemset in D existiert, das häufig ist

Methoden zur Bestimmung von Zusammenhängen a) Apriori-Algorithmus b) Frequent-Pattern-Growth c) vertikalen Datenformat

Apriori-Algorithmus → Berechnung der Menge häufiger Itemsets Lk+1 aus der Menge Lk * https://www.youtube.com/watch?v=LZii6N4vGDs basiert auf Apriori-Eigenschaft: eine Teilmenge eines häufigen Itemsets ist selbst auch ein häufiges Itemset Bsp:

I1 = {item1, item2, item3} I2 = [item1, item3} I3 = {item1, item4} I4 = {item2, item5, item6} suppmin= 0,5 Wenn < 1, dann relative Angabe → Umrechnen in absolute Angabe suppmin = 0,5 * 4 = 2

Vorgehen: 1. Support-Count einelementiger Itemsets ermitteln C1 = item1: 3 item2: 2 item3: 2 item4: 1 item5: 1 item6: 1 Filtern nach suppmin: L1 = item1: 3 item2: 2 item3: 2 2. Support-Count zweielementiger Itemsets (alle Kombinationen) ermitteln: C2 = {item1, item2}: 1 {item1, item3}: 2 {item2: item3}: 1 L2 = {item1, item3}

längere Kombinationen mit supp >= 2 nicht möglich, deshalb ist L3 leer. Ergebnis: L1 ∪ L2 ∪ L3 = {{item1}, {item2}, {item3}, {item1, item3}}

Starke Assoziationsregeln (bedingte Wahrscheinlichkeit oberhalb einer Grenze (confmin) aus vorherigem Beispiel aus L2 ableiten für confmin = 0,5 Assoziationsregel

Support

Confidenz

Confidenz %

item1 → item3

2

⅔ = 0,66

66 %

item3 → item1

2

2/2 = 1

100 %

* Wenn es mehr als zwei items gibt, dann:

* Berechnung Confidenz: {A, B} → C =

{A, B} → C {A, C} → B {B, C} → A {A} → {B, C} {B} → {A, C} {C} → {A, B}

𝐻ä𝑢𝑓𝑖𝑔𝑘𝑒𝑖𝑡 ({𝐴, 𝐵, 𝐶}} 𝐻ä𝑢𝑓𝑖𝑔𝑘𝑒𝑖𝑡({𝐴, 𝐵})

Da Konfidenz beider Regeln größer als confmin, sind die Ergebnis-Regeln: item1 → item3 item3 → item1 Wer item1 kauft, kauft auch item3 und wer item3 kauft, kauft auch item1.

Frequent-Pattern-Growth-Methode → gleicher Zweck, wie Apriori, aber schneller und benötigt nur suppmin

Bsp: I1 = {b, a, c, d, g, m, p} I2 = {a, b, c, f, l, m, o} I3 = {b, f, h, o} I4 = {b, k, c, p}

I5 = {a, f, c, l, p, m, n}

suppmin = 3

Vorgehen: 1. Items, die mindestens so häufig sind wie suppmin, in L1 aufnehmen L1 = {b, a, c, f, m, p} 4, 3, 4, 3, 3, 3 (Häufigkeiten) → L daraus ableiten (absteigend sortiert und als Folge statt als Menge) L = + alle Transaktionen nach absteigender Häufigkeit sortieren (hier schon geschehen): L1’ = L2’ = L3’ = L4’ = L5’ = 2. Frequent-Pattern-Tree zeichnen a. L absteigend auf die linke Seite b. Nun die Transaktionen (die Ausgangs-Itemsets) einzeichnen i. einen neuen Zweig, falls kein Zweig mit den Items des aktuellen Itemssets beginnt, ansonsten den Teilzweig nachnutzen und die Zähler um eins hochzählen c. Pfeile einzeichnen; beginned vom Array links zur ersten Nennung des Items, dann zur nächsten Nennung; immer gleich nach dem Einzeichnen einer Transaktion

3. Reduzierte Musterbasen aufstellen, für die Items des Arrays links, aufsteigend a. I’ = {f} ⇒ R({f}) = {{b, c, a, m}, {b}, {c, a, m, p}} (alle Pfade, die auf f enden, ohne f aufnehmen; Pfad mehrfach aufnehmen falls Anzahl bei f größer 1) i. häufige Items in R: keine (alle unter minsupp) → I1 = ∅

b. I’ = {p} ⇒ R({p}) = {{b, c, a, m}, {b, c}, {c, a, m}} i. häufige Items in R: c -> reduzierter FP-Baum besteht aus nur einem Knoten ii. reduzierter FP-Baum

→ l2 = {{c, p}}

wenn die verbleibenden Item...


Similar Free PDFs