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