Folien vom 20. Mai 2015

Werbung
Fachprojekt: Data-Mining und Datenanalyse
Nico Piatkowski
20.05.2015
2 / 11
Übersicht
I
Heute:
I
I
I
Proposals + Themenfindung (Fortsetzung)
I/O mit Java/C++
Evaluation, Kreuzvalidierung, Bootstrap
I
Nächster Montag: Pfingstmontag (fällt aus)
I
Nächster Mittwoch: kein Treffen
I
Montag (01.06.2015):
I
Evaluation (Fortsetzung)
3 / 11
Themen
I
Überwachtes Lernen:
I
I
I
Clustering, Probabilistic
(Mixture-)Models, Missing
Data, Frequent Pattern
Mining
I
I
I
I
I
Optimierungsalgorithmen
I
Gradientenabstieg,
(Quasi-)Newton
I
L1 ,L2 , Acc, Hinge
Data-Mining Algorithmen
I
linear, polynomiell,
probabilistisch, Nearest
Neighbor, Entscheidungsbaum
Erwarteter Fehler,
Log-Likelihood (+ untere
Schranke), k-Means
Fehlerfunktionen
I
Modellklassen
I
I
Regression, Klassifikation
Zielfunktionen
Unüberewachtes Lernen:
I
I
I
Lloyds Algorithmus (k-Means
Heuristik), DB-Scan
Expectation Maximization
A-Priori, FP-Growth
Entscheidungsbauminduktion
Abhängigkeit: Kullback-Leibler
Divergence, Mutual Information
4 / 11
Daten Input-Output
Bevor die Datenanalyse beginnen kann, müssen die Daten (i.d.R.)
eingelesen werden.
Unterschiedliche Quellen möglich:
I
ASCII/UTF kodierte Datei (CSV, ..)
I
Binärdatei
I
Datenbankserver (MS SQL, MySQL, PostgreSQL, ..)
I
Lokale Datenbank (SQLite)
5 / 11
Verschiedene Einlesemodi
Daten können unterschiedlich vorliegen:
I
Numerisch (Integer, Float, Double, ..)
I
Diskret (Strings/Symbole, IDs)
I
Dichte Tabelle/Matrix
I
Dünnbesetzte Tabelle/Matrix
I
Zeilen- oder Spaltenbasiert
I
Zeilen können unterschiedliche Längen aufweisen
I
Einzelne Werte können fehlen
Interne Repräsentation muss möglichst effizient sein und ggf. an
das Verfahren angepasst (z.B. Reihenfolge der Zugriffe).
6 / 11
Diskrete Werte
Die Domänen Xi bzw. Y sind i.d.R. unbekannt.
⇒ Extraktion der Domänen aus den Daten
Interne Repräsentation der Domänen sowie den Daten (aus Xi bzw.
Y) durch Numerische Werte mit möglichst kleinem Wertebereich Ii
(Byte, Char, Short, Int, Long, ..)
⇒Abbildung Xi → Ii mit Hilfe einer “Map” (HashMap, TreeMap)
realisieren.
S
Möglich: Komplette Map für alle Spalten, i.e., Y ∪ i Xi oder
einzelne Spalten (Abhängig von der Anzahl zu kodierender Werte)
7 / 11
Fehlende Werte
Einige Werte in den Daten können fehlen (defekter Sensor, o.Ä.)
Erfordert:
I
Deklaration eines ansonsten ungenutzten Symbols “0” (NA,
NaN, ?, ..).
I
Extra Behandlung im Code
I
I
I
Diskrete Daten: Neuer diskreter Wert
Floating Point: NaN
Beide: Spärliche binär Matrix (Map) in der Felder mit
fehlenden Werten gespeichert werden
8 / 11
Mixed Types
Spalten können verschiedene Typen haben (z.B. bei
Entscheidungsbäumen)
Erfordert interne repräsentation der Typen:
I
Spaltenorientierte Datenhaltung
I
Generische Typen (z.B. Object, String [teuer]) + Liste der
Typen
Häufig:
I
Nur das Zielattribut y hat einen anderen Typ als x (z.B.
Y = {0, 1}, X = Rd )
9 / 11
Spärlich Vs. Dicht
Dünn besetzte Daten können als (Index,Wert) Paare, Baum oder
HashMap gespeichert werden.
Vorteil, nur falls Daten tatsächlich spärlich sind:
I
O(n2 ) → O(n) oder O(n2 ) → O(log n) oder sogar
O(n2 ) → O(1)
Nachteil, falls Daten nicht spärlich sind:
I
n2 → 2n2 + ε
10 / 11
Matrix Vs. Zeilen Vs. Spalten
Abhängig vom Verfahren sind unterschiedliche interne
Repräsentationen der Daten erforderlich um einen hohe Performanz
zu erreichen
I
Matrix, bei kleinen Daten
I
Spaltenorientiert, falls Merkmalsspezifische Statistiken
berechnet werden müssen
I
Zeilenorientiert, falls Instanzspezifische Statistiken berechnet
werden müssen
11 / 11
Evaluation
Die Güte eines Lernergebnisses kann auf verschiedene Weisen
quantifiziert werden:
I
Fehlerfunktion
I
Likelihood
I
F -Score
I
...
Evaluation auf einem Datensatz liefert i.d.R. kein zuverlässiges
Ergebnis
⇒ Konstruiere “bessere” Schätzer für die Güte/den Fehler
⇒ Berechne Schätzer auf einer Menge von Testmengen
Herunterladen