Programmierkurs Python II

Ähnliche Dokumente
Mathematische Grundlagen III

Methoden zur Cluster - Analyse

Textmining Clustering von Dokumenten

Programmierkurs Python I

Länge, Skalarprodukt, Vektorprodukt

2.2 Kollineare und koplanare Vektoren

5. Clusteranalyse Vorbemerkungen. 5. Clusteranalyse. Grundlegende Algorithmen der Clusteranalyse kennen, ihre Eigenschaften

5. Clusteranalyse. Lernziele: Grundlegende Algorithmen der Clusteranalyse kennen, ihre Eigenschaften

Vektoren, Vektorräume

Länge, Skalarprodukt, Geradengleichungen

Lineare Algebra. Mathematik II für Chemiker. Daniel Gerth

Mathematische Erfrischungen III - Vektoren und Matrizen

Nachteile Boolesches Retrieval

Outline. 1 Vektoren im Raum. 2 Komponenten und Koordinaten. 3 Skalarprodukt. 4 Vektorprodukt. 5 Analytische Geometrie. 6 Lineare Räume, Gruppentheorie

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

2 Geradengleichungen in Parameterform. Länge und Skalarprodukt

Vektorräume. 1. v + w = w + v (Kommutativität der Vektoraddition)

1. Vektoralgebra 1.0 Einführung Vektoren Ein Vektor ist eine Größe, welche sowohl einen Zahlenwert (Betrag) als auch eine Richtung hat.

Textmining Klassifikation von Texten Teil 2: Im Vektorraummodell

Informatik II, SS 2014

1 Euklidische und unitäre Vektorräume

The trick in teaching mathematics is that I do the easy part and you do the hard part. Hahn Hiang Shin, Complex Numbers and Geometry

Brückenkurs Mathematik

Data Mining und Maschinelles Lernen Lösungsvorschlag für das 7. Übungsblatt

Programmierkurs Python I

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

Universität Potsdam Institut für Informatik Lehrstuhl Maschinelles Lernen. Clusteranalyse. Tobias Scheffer Thomas Vanck

y x x y ( 2x 3y + z x + z

Jürgen Roth Didaktik der Linearen Algebra und Analytischen Geometrie

Definition von R n. Parallelverschiebungen in R n. Definition 8.1 Unter dem Raum R n (n N) versteht man das kartesische Produkt R R... R (n-mal), d.h.

Vektoren. Jörn Loviscach. Versionsstand: 11. April 2009, 23:42

J.P.E.G. Standard. J.P.E.G. Eigenschaften. J.P.E.G. System. JPEG Verschlüsselungsschritte. Farbmodell

Clusteranalyse: Gauß sche Mischmodelle

Maschinelles Lernen: Symbolische Ansätze. Wintersemester 2013/2014 Musterlösung für das 7. Übungsblatt

1 ALLGEMEINE HINWEISE Das Fach Mathematik für Wirtschaftswissenschaftler Bisheriger Aufbau der Klausur...

Algorithmen zur Datenanalyse in C++

Grundlagen der Vektorrechnung

Lineare Algebra und Numerische Mathematik für D-BAUG

3 Matrizenrechnung. 3. November

Multiplikation und Division in Polarform

Information Retrieval,

Fakultät für Informatik Übung zu Kognitive Systeme Sommersemester 2016

1 Fraktale Eigenschaften der Koch-Kurve

Technische Universität München

00. Einiges zum Vektorraum R n

Data Mining und Knowledge Discovery in Databases

Vektormodelle. Universität zu Köln HS: Systeme der maschinellen Sprachverarbeitung Prof. Dr. J. Rolshoven Referentin: Alena Geduldig

Statistik IV für Studenten mit dem Nebenfach Statistik Lösungen zu Blatt 9 Gerhard Tutz, Jan Ulbricht SS 07

z Partitionierende Klassifikationsverfahren

Programmierkurs Python II

Mathematik für Chemische Technologie 2

HDNUM. Peter Bastian (IWR) Numerik November / 158

mit "Skalarprodukt" aus i-tem "Zeilenvektor" und j-tem "Spaltenvektor"

2.9 Die komplexen Zahlen

Lösungen zur Mathematik für Informatiker I

Geometrie und Bedeutung: Kap 5

Boole'sches Modell <is web>

Graphische Datenverarbeitung und Bildverarbeitung

Lineare Algebra: Theorie und Anwendungen

Ideen der Informatik. Maschinelles Lernen. Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik

Ilja Repin Die Wolgatreidler (1873) Das Skalarprodukt. 1-E Ma 1 Lubov Vassilevskaya

2. Dezember Lineare Algebra II. Christian Ebert & Fritz Hamm. Skalarprodukt, Norm, Metrik. Matrizen. Lineare Abbildungen

T = {t 1,..., t n } sei die Menge der Terme. D = {d 1,..., d m } sei die Menge der Dokumente.

Einstieg in die Informatik mit Java

Matrizen. Jörn Loviscach. Versionsstand: 12. April 2010, 19:00 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung.

Lineare Gleichungssysteme

Vektorräume und Rang einer Matrix

Vektorgeometrie - Teil 1

11 Komplexe Zahlen. Themen: Der Körper der komplexen Zahlen Die Mandelbrot-Menge Der Fundamentalsatz der Algebra

Lineare Algebra I. Christian Ebert & Fritz Hamm. Gruppen & Körper. Vektorraum, Basis & Dimension. Lineare Algebra I. 18.

Seminar Text- und Datamining Textmining-Grundlagen Erste Schritte mit NLTK

Programmierkurs Python

Vektorräume und Lineare Abbildungen

2.4 Schleifen. Schleifen unterscheiden sich hinsichtlich des Zeitpunktes der Prüfung der Abbruchbedingung:

Programmierkurs Python I

Orthonormalbasis. Orthogonalentwicklung

Aufgaben zu Kapitel 20

Brückenkurs Mathematik. Mittwoch Freitag

Vektor-Multiplikation Vektor- Multiplikation

Übersicht. Schleifen. Schleifeninvarianten. Referenztypen, Wrapperklassen und API. 9. November 2009 CoMa I WS 08/09 1/15

Anwendungen der Hauptkomponentenanalyse. Volker Tresp vertreten durch Florian Steinke

Grundsätzliches Produkte Anwendungen in der Geometrie. Vektorrechnung. Fakultät Grundlagen. Juli 2015

Lösung Semesterendprüfung (Nachprüfung)

Python-Workshop. Python für C/C++ Programmierer. Carl Friedrich Bolz. Carl Friedrich Bolz

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern

Lineare Algebra und analytische Geometrie II

Übungen zu Einführung in die Lineare Algebra und Geometrie

Mathematik LK 12 M1, 4. Kursarbeit Matrizen und Stochastik Lösung )

Vorlesung Text und Data Mining S9 Text Clustering. Hans Hermann Weber Univ. Erlangen, Informatik

Clusteranalyse von Nachrichtenartikeln

Einführung in Support Vector Machines (SVMs)

1 Boolesches Retrieval (2)

Didaktik der Analysis und der Analytischen Geometrie/ Linearen Algebra

Kapitel 2: Mathematische Grundlagen

Textmining Klassifikation von Texten Teil 1: Naive Bayes

L3 Euklidische Geometrie: Längen, Winkel, senkrechte Vektoren...

Lineare Algebra I. Prof. Dr. M. Rost. Übungen Blatt 6 (WS 2010/2011) Abgabetermin: Donnerstag, 27. November

Prototypische Komponenten eines Information Retrieval Systems: Vektormodell

Transkript:

Programmierkurs Python II Stefan Thater & Michaela Regneri Universität des Saarlandes FR 4.7 Allgemeine Linguistik (Computerlinguistik) Sommersemester 213 Übersicht Vektoren elementar Information Retrieval Semantische Ähnlichkeit Klassifikation (knn) Cluster-Analyse (k-means) 2

Vektoren Vektoren entsprechen Listen reeller Zahlen: v = (v1, v2,, vn) Vektoren können addiert werden: v + u = (v1 + u1,, vn + un) Vektoren können mit reellen Zahlen ( Skalaren ) multipliziert werden: au = (au1,, aun) 3 Vektorräume Ein Vektorraum über R ist eine Menge von Vektoren, über denen Addition und Skalarmultiplikation definiert sind die Additionsoperation muss folgende Bedingungen erfüllen: - (u + v) + w = u + (v + w) - u + v = v + u - v + = v - u v u + v = * Assoziativ * Kommutativ * neutrales Element * Inverses element 4

Vektorräume Ein Vektorraum über R ist eine Menge von Vektoren mit Operationen Addition und Skalarmultiplikation. die Skalarmultiplikation muss folgende Bedingungen erfüllen: - a(v + w) = av + aw - (a + b)v = av + bv - a(bv) = (ab)v - 1v = v 5 Geometrische Interpretation Vektoren beschreiben Punkte im Raum Euklidische Distanz: d2(u, v) = (u1 - v1) 2 + + (un - vn) 2 Distanz d2(u, v) = Länge u - v des Vektors u - v u = d2(u, ) 5 4 u = d(u, ) = 4.72 u = (2,4) d(u, v) = 2.34 3 v = (4,3) 2 1 v = d(v, ) = 5. 1 2 3 4 5 6

Geometrische Interpretation Vektoren beschreiben Punkte im Raum Skalarprodukt (dot product, inner product): u v = u1v1 + + unvn Winkel φ zwischen Vektoren u und v cos φ = u v / u v φ als Distanzmaß (Länge der Vektoren wird nicht berücksichtigt) 5 4 3 u = d(u, ) = 4.72 u = (2,4) v = (4,3) 2 1 v = d(v, ) = 5. 1 2 3 4 5 7 Geometrische Interpretation Vektoren beschreiben Punkte im Raum Centroid von Vektoren v1,, vk C = (v1 + + vk) / k 5 4 u = (2,4) 3 v = (4,3) 2 1 w = (3, 1) 1 2 3 4 5 8

Vektoren in Python class Vector: def init (self, data): self.data = [] * data if isinstance(data, int) else data def setitem (self, idx, value): self.data[idx] = value def getitem (self, idx): return self.data[idx] def add (self, other): return Vector([x + y for (x, y) in zip(self.data, other.data)]) def mul (self, scalar): return Vector([x * scalar for x in self.data]) def repr (self): return 'Vector({:})'.format(self.data)... 9 Vektoren in Python from math import sqrt, pow class Vector:... def dotproduct(self, other): return sum(x * y for (x, y) in zip(self.data, other.data)) def norm(self): return sqrt(sum(pow(x, 2) for x in self.data))! @staticmethod def cosine(vec1, vec2): return vec1.dotproduct(vec2) / (vec1.norm() * vec2.norm()) 1

Vektoren in Python from math import sqrt, pow class Vector:... @staticmethod! def euclidean(vec1, vec2): return sqrt(sum(pow(x - y, 2) for (x, y) in zip(vec1.data, vec2.data))) @staticmethod def centroid(vecs): return sum(vecs[1:], vecs[]) * (1. / len(vecs)) 11 Information Retrieval Typischerweise liefert ein Information Retrieval System viele Dokumente für eine Anfrage beste Treffer zuerst Fasse Dokumente und Anfrage als Vektoren auf - Alle Wörter in Dokumentsammlung: w1,, wn - Vektor für Dokument d: vd = (v1,, vn) = wi kommt vi mal in Dokument d vor (bzw. tf-idf o.ä.) Sortiere die Dokumente nach ihrer Ähnlichkeit bzw. Distanz zur Anfrage - (Ähnlichkeit ~ Winkel zwischen Vektoren) 12

(Beispiel aus FSLT 28/9, Pinkal) Term Dokument Matrix D1 D2 D3 dolphin cos(d1, D2) =.62 human cos(d1, D3) =.14 language cos(d2, D3) =. like mammal technology warm-blooded whale 3 2 1 3 5 1 1 1 1 1 1 1 3 13 (Beispiel aus FSLT 28/9, Pinkal) Term Dokument Matrix Are dolphins mammals? D1 D2 D3 Q dolphin cos(d1, Q) =.78 human cos(d2, Q) =.53 language cos(d3, Q) =. like mammal technology warm-blooded whale 3 2 1 1 3 5 1 1 1 1 1 1 1 1 3 14

Semantische Ähnlichkeit Distributionelle Hypothese: Wörter, die in ähnlichen Kontexten vorkommen, sind semantisch ähnlich eine Wort-Wort Matrix kodiert, wie häufig zwei Wörter im gleichen Kontext zusammen vorkommen. Kontexte können sein: - Dokumente - Abschnitte - Kontext-Fenster und können ggf. die syntaktische Struktur berücksichtigen 15 (Beispiel aus FSLT 28/9, Pinkal) Wort-Wort Matrix dolp. hum. lang. like mam. tech. wb whale dolphin human language like technology warm-blooded whale 5 1 2 2 3 1 4 5 1 1 1 1 3 5 1 1 1 1 2 2 3 3 5 1 1 5 1 2 2 3 2 1 1 3 16

Vektoren als Wörterbücher In viele Anwendungsfällen hat ein Vektor nur wenige Komponenten Darstellung mit Listen nicht optimal Alternativ können Vektoren als Wörterbücher repräsentiert werden, mit als Defaultwert. 17 Vektoren als Wörterbücher class Vector(dict): def getitem (self, key): return dict.get(self, key, ) def add (self, other): return Vector((k, self[k] + other[k]) for k in set(self.keys() + other.keys())) def mul (self, scalar): return Vector(((k, v * scalar) for (k, v) in self.items()))... 18

Vektoren als Wörterbücher class Vector(dict):... def dotproduct(self, other): return sum(self[k] * other[k] for k in self.iterkeys() if k in other) def norm(self): return sqrt(sum(v * v for v in self.values())) @staticmethod def cos(vec1, vec2): return vec1.dotproduct(vec2)/(vec1.norm()* vec2.norm())... 19 (Beispiel aus Wikipedia) k nearest neighbors (knn) Der knn Algorithmus ist ein Klassifikationsverfahren, das Objekten eine Klasse zuordnet, basierend auf den Klassen seiner k nächsten Nachbarn. Gegeben ist eine Menge von Objekten und deren Klassen ( Trainingsdaten ) 5 Berechne die Distanz zwischen 4 dem zu klassifizierenden Objekt und allen Trainings-Objekten. 3 2 Weise dem neuen Objekt die Klasse seiner k nächsten Nachbarn 1 zu (Mehrheitsentscheidung). 1 2 3 4 5 2

WSD mit knn knn kann man auch für Word Sense Disambiguation benutzen Variante 1: Vektoren = (Trainings- u. Test-)Dokumente - wie Bayes von letzter Woche - klassifiziert ein _Dokument_ (nicht eine Wort-Instanz) Variante 2: Vektoren = Auftreten des Wortes im Kontext - Bestimme ein Kontextfenster von n Worten (oder dem Dokument) - pro Auftreten des Wortes in Frage ein Vektor im Modell - klassifiziere das (die) Auftreten des Wortes im Text (ggf. Mehrheitsentscheidung) 21 Clustering mit k-means Clusteranalyse: Ermittlung von Gruppen (Clustern) von Objekten bzw. Vektoren, deren beobachtbare Eigenschaften bestimmte Ähnlichkeiten aufweisen. k-means Algorithmus: Partitioniere eine Menge von Vektoren in k Cluster Zielsetzung: Minimiere den Abstand der Elemente eines Clusters zu seinem Zentrum. Residual sum of squares (RSS) - RSS = 1 k K x ωk x - μ(ωk) 2 - ωk = Cluster k, μ(ωk) = Centroid von ωk 22

Der k-means Algorithmus Initialisierung: zufällige Auswahl von k Clusterzentren Iterative (Neu-) Berechnung der Clusterzentren bis Abbruchbedingung zutrifft: - Weise jedes Objekt (Vektor) dem ihm am nächsten liegenden Clusterzentrum zu - Berechne für jeden Cluster die Clusterzentren neu 23 (Beispiel aus Wikipedia) Der k-means Algorithmus (Beispiel) 1. Zufällige Auswahl von drei Clusterzentren (,, ) 2. Zuordnung der Objekte zu Cluster mit dem nächstliegenden Zentrum. 3. Neuberechnung der Cluster- Zentren. 4. 5 4 3 2 1 1 2 3 4 5 24

(Manning, Raghavan, Schütze, 28) Der k-means Algorithmus K-MEANS({ x 1,..., x N }, K) 1 ( s 1, s 2,..., s K ) SELECTRANDOMSEEDS({ x 1,..., x N }, K) 2 for k 1 to K 3 do µ k s k 4 while stopping criterion has not been met 5 do for k 1 to K 6 do ω k {} 7 for n 1 to N 8 do j arg min j µ j x n 9 ω j ω j { x n } (reassignment of vectors) 1 for k 1 to K 11 do µ k 1 ω k x ω k x (recomputation of centroids) 12 return { µ 1,..., µ K } 25 Mögliche Abbruchbedingungen Begrenzte Anzahl von Iterationsschritten Zuweisung von Objekten zu Clustern ändert sich zwischen zwei Iterationsschritten nicht. Die Centroide ändern sich zwischen zwei Iterationsschritten nicht. Abbruch, wenn RSS einen Schwellwert unterschreitet Abbruch, wenn zwischen den Iterationsschritten die Abnahme des RSS einen Schwellwert unterschreitet. 26

Eigenschaften k-means liefert für unterschiedliche initiale Clusterzentren ggf. unterschiedliche Ergebnisse ein Cluster kann in einem Schritt leer bleiben k-means findet nicht notwendigerweise die global optimale Lösung optimales Clustering zu finden gehört zur Komplexitätsklasse NP 27