Seminar Classification Algorithms
Übersicht
Allgemeines
Auf dieser Seite finden Sie verschiedene Informationen zum Seminar "Classification Algorithms", das im Wintersemester 2017/2018 von Alexander Dockhorn an der Otto-von-Guericke-Universität Magdeburg gehalten wird. Diese Seite wird im Laufe des Semesters aktualisiert.
Inhalte des Seminars
Klassifikation ist ein Teilbereich der intelligenten Datenanalyse, bei dem das Ziel ist, anhand von Trainingsbeispielen ein Modell zu erlernen. Solch ein Modell soll dann in der Lage sein, neue und unbekannte Objekte korrekt in die bekannten Klassen einzuordnen. Hierfür existieren viele verschiedene Verfahren, die Strukturinformationen aus den vorhandenen Daten unterschiedlich ausnutzen, um zu einem Ergebnis zu kommen.
In diesem Seminar sollen in der Gruppe verschiedene Klassifikationsalgorithmen erarbeitet und beschrieben werden, sowie anhand von Beispielen Stärken und Schwächen der Algorithmen aufgezeigt werden. Dabei werden wir versuchen sowohl auf verschiedene Arten von Daten (statische, dynamische, ... ) einzugehen sowie verschiedene Klassen (überwacht, teilüberwacht, ...) von Klassifikationsgorithmen vorzustellen.
Voraussetzungen
Grundlagen der Informatik / Algorithmen und Datenstrukturen Kenntnisse in Vektorrechnung und Grundlagen der Stochastik sind sicherlich von Vorteil, aber nicht zwingend notwendig.
Teilnehmerkreis
Etwa 15-20 Studenten der Informatik und interessierte Studierende anderer Fachrichtungen.
Alle Teilnehmer werden gebeten sich über den FIN Registration Service zu anzumelden.
Organisatorische Regelungen für den Teilnahmeschein
Die Veranstaltung kann als wissenschaftliches Seminar im Bachelor (3 CP) oder Master (6 CP) angerechnet werden. Außerdem ist eine Anrechnung als FIN-SMK (5 CP) möglich. Für 3 CP wird eine regelmäßige Teilname an den Seminarterminen sowie aktive Mitarbeit während des Seminars und das halten eines Vortrags zu einem der unten genannten Themen erwartet (Die Mitarbeit wird bewertet. Das Seminar ist recht lese-intensiv!). Für 5 oder 6 CP ist zusätzlich ein Programmierprojekt (plus Vorstellung) nötig.
Termine und Räume
Wochentag | Zeit | Raum | Beginn | Dozent | |
---|---|---|---|---|---|
Seminar | Freitag | 11:00-13:00 | G29-336 | 11.10.2016 | Alexander Dockhorn |
Weitere Termine/Vorträge:
Thema | Termin | Vortragende | Präsentationsfolien |
---|---|---|---|
Einführung, k-NN, Distanzmaße | 13.10.2017 | Alexander Dockhorn | |
--- | 20.10.2017 | --- kein Seminar --- | |
Feature Selection, Validation | 27.10.2017 | Carl Stermann-Lücke, Alexander Dockhorn | PDF1, PDF2 |
Decision Trees | 03.11.2017 | Hans-Martin Wulfmeyer, Philipp Thoms, Julia Heise | |
Bayes Classifier | 10.11.2017 | Willy Failla, Lena Spitz, Mareen Allgaier | |
LDA / QDA | 17.11.2017 | Bastian Heinrich, Robert Jendersie | |
LLM / SVM | 24.11.2017 | Kilian Pößel, Daniel Püsche, Martin Zettwitz | |
--- | 01.12.2017 | --- kein Seminar --- | |
Zusammenfassung | |||
Label Propagation | 15.12.2017 | Viet Hai Nguyen, Thanh Dang Ngoc | |
S3VM | 15.12.2017 | Felix Prüfer, Philipp Ernst | |
Active Learning | 12.01.2018 | Leopold Ryll, Holger Harzer | |
Ensemble Methods | 19.01.2018 | Gabriel Moczalla, Anne Döbler, Dominik Weitz | |
Finale | 26.01.2018 | ||
Projektvorstellung 1 | --- | Termin für alle Vortragenden wird gesondert festgelegt |
Zusatzvorträge
Thema | Termin | Vortragende | Präsentationsfolien |
---|---|---|---|
Extratree Classifier | 19.01.2019 | Gabriel Moczalla, Anne Döbler | |
Self-Organizing Maps | --- | Carl Stermann-Lücke | |
Online-Tracking | --- | Martin Zettwitz, Daniel Püsche, Killian Pößel | |
RBF Neural Networks | --- | Julia Heise | |
Random Patches | --- | Leopold Ryll |
Api-Programmierprojekt
Ihr könnt euer Programmierprojekt entweder als Python Funktion oder als ausführbares Konsolenprogramm implementieren.
Python-Funktion
def einfaches_klassifizieren_training(data, label, arg1, arg2, ...): foo() bar() dark_magic() generiere_modell() return modell() def einfaches_klassifizieren(modell, daten, arg1, arg2, ...): label = model.predict(daten) return label()
data ist dabei eine übergebene numpy-Matrix, wobei jede Spalte einem Attribut und jede Zeile einem Datum entspricht. Mit data[0,0]
kann darauf zugegriffen werden. Alle weiteren Parameter könnt ihr beliebig wählen und uns dann entsprechend mitteilen, so dass wir die zugehörigen Eingaben im System hinterlegen können.
Wenn ihr eine Visualisierung anbieten wollt, könnt ihr diese in Grafikdateien (vorzugsweise PNG) in den temporären Ordner schreiben und die Pfade zu den Bildern als String-Liste mit zurückgeben.
Kommandozeilentool
Aufruf:
[euer Programmaufruf] [ARFF-File] [Arg1] [Arg2] ...
Den gewünschten Programmaufruf könnt ihr uns mitteilen. Die Argumente brauchen wir natürlich auch, damit wir die Oberfläche entsprechen konfigurieren können.
ARFF-Files sind CSV-Dateien mit ein paar Header Informationen. Eine Beispieldatei stellen wir gerne zur Verfügung.
Da in der letzten Spalte die Ground-Truth-Label stehen, dürft ihr diese Spalte in eurem Algorithmus natürlich nicht benutzen. ;)
erwartete Programmausgaben
- Liste der Labelzuordnung (ein Label, dann neue Zeile, dann nächstes Label ...)
- eventuell erzeugte Bilder mit:
# Image: [Pfad]
Beispiel:
1 1 2 2 3 3 3 # Image: /tmp/foo/bar.png