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

 WochentagZeitRaumBeginnDozent
Seminar Freitag 11:00-13:00 G29-336 11.10.2016 Alexander Dockhorn

Weitere Termine/Vorträge:

ThemaTerminVortragendePräsentationsfolien
Einführung, k-NN, Distanzmaße 13.10.2017 Alexander Dockhorn  PDF
--- 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 PDF 
Bayes Classifier 10.11.2017  Willy Failla, Lena Spitz, Mareen Allgaier PDF 
LDA / QDA 17.11.2017  Bastian Heinrich, Robert Jendersie PDF 
LLM / SVM 24.11.2017  Kilian Pößel, Daniel Püsche, Martin Zettwitz PDF
--- 01.12.2017 --- kein Seminar ---  
Zusammenfassung      
Label Propagation 15.12.2017  Viet Hai Nguyen, Thanh Dang Ngoc  PDF
S3VM 15.12.2017  Felix Prüfer, Philipp Ernst  PDF
Active Learning 12.01.2018  Leopold Ryll, Holger Harzer PDF
Ensemble Methods 19.01.2018  Gabriel Moczalla, Anne Döbler, Dominik Weitz PDF
Finale 26.01.2018    
Projektvorstellung 1 --- Termin für alle Vortragenden wird gesondert festgelegt  

Zusatzvorträge

ThemaTerminVortragendePräsentationsfolien
Extratree Classifier 19.01.2019 Gabriel Moczalla, Anne Döbler  PDF
Self-Organizing Maps --- Carl Stermann-Lücke PDF
Online-Tracking --- Martin Zettwitz, Daniel Püsche, Killian Pößel PDF
RBF Neural Networks --- Julia Heise PDF
Random Patches --- Leopold Ryll PDF

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 

Last Modification: 16.04.2018 - Contact Person: Webmaster