Differences between revisions 1 and 30 (spanning 29 versions)
Revision 1 as of 2013-03-19 15:43:15
Size: 4360
Editor: DanielBartz
Comment:
Revision 30 as of 2013-04-09 22:10:01
Size: 4241
Editor: DanielBartz
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
== Matlab Programmierung für Maschinelles Lernen und Datenanalyse == '''Contents'''
<<TableOfContents(4)>>
Line 3: Line 4:
 || '''Termin:''' || Blockveranstaltung Di, 02.04. bis Do, 04.04.2013 jeweils 10:00-17:00 Uhr, Prüfung Fr, 12.04. 10:00 - 11:30 Uhr ||
 || '''Raum:''' || MAR 6.057 ||
 || '''Dozent:''' || Irene Winkler (irene.winkler@tu-berlin.de, Raum MAR 4.034) ||

Das Ziel dieses Kurses ist es, allgemeine Grundlagen im Umgang und der Programmierung von Matlab zu vermitteln. Die Inhalte des Kurses sind geringfügig auf Anwendungen im Maschinellen Lernen zugeschnitten. Statistische Methoden zur Datenanalyse werden nicht unterrichtet.

Grundlegende Kenntnisse in einer andere Programmiersprache werden vorausgesetzt. Das bedeutet, Konzepte wie
  * Variablen und Datentypen;
  * Kontrollstrukturen (if, for, while, switch);
  * Definition und Aufruf eigener Funktionen;
  * Debugging; und der
  * Umgang mit der (UNIX) Kommandozeile
sollten geläufig sein. Eigenständiges Erarbeiten programmiersprachen-spezifischer Funktionalität anhand der Dokumentation wird vorausgesetzt. Da die Dokumentation von Matlab auf Englisch ist, werden außerdem ausreichende Englischkenntnisse benötigt.

Ein Lernziel des Kurses ist es, die von Matlab zur Vefügung gestellten Matrixoperationen zum Programmieren zu verwenden (es geht z.B. darum, wie man den Mittelwert von Daten abzieht, ohne for-Schleifen zu benutzen). Daher wird das sichere Beherrschen des Rechnens mit Matrizen und Vektoren vorausgesetzt. Für das Implementieren von Zufallsexperimenten sind außerdem grundlegende Konzepte der Wahrscheinlichkeitsrechnung wichtig.

Wir freuen uns über Teilnehmer aller Fachrichtungen. Um Enttäuschungen bzgl. der Zeitaufwands und/oder der Note zu vermeiden möchte ich aber darauf hinweisen, dass dieser Kurs im Rahmen des Masterstudiengangs Informatik angeboten wird. Wer wenig Programmiererfahrung oder geringe Kenntnisse der Matrixrechnung hat, wird daher einen erheblich erhöhten Zeitaufwand einplanen müssen.

Die Abgabe der Hausaufgaben erfolgt via [[https://www.isis.tu-berlin.de/course/view.php?id=7876|ISIS]].

'''Für die Nutzung von Matlab auf unseren Rechnern wird ein TUBIT-Account benötigt.''' Falls ihr noch keinen Account habt, schreibt mir bitte
eine e-mail an irene.winkler@tu-berlin.de mit vollständigem Namen (so wie er auf dem Ausweis steht) und Geburtsdatum. Wir generieren dann ein PDF, mit dem der TUBIT-Account an der [[http://www.tubit.tu-berlin.de/menue/hilfe_beratung/glossar/k/kartenausgabestelle_kas/|Kartenausgabestelle]] abgeholt
werden kann.
== Python Programming for Machine Learning ==
Line 28: Line 7:
=== Ablauf ===  || '''Dates:''' || Tuesday to Thursday, 02.04-04.04.2013 (block course) ||
 || '''Times:''' || 10:00-17:00 on each day ||
 || '''Exam:''' || Friday, 12.04. 10:00 - 11:30 Uhr ||
 || '''Raum:''' || MAR 6.001 ||
 || '''Contact:''' || Daniel Bartz (daniel.bartz@tu-berlin.de, room MAR 4.034) ||
 || '''language:''' || English ||
Line 30: Line 14:
Es besteht keine Anwesenheitspflicht. Der ungefähre Ablauf ist wie folgt:
Line 32: Line 15:
|| 10:00 – 11:00 Uhr || Einführung und Demonstration (zum Mittippen) ||
|| 11:00 – 13:00 Uhr || Gemeinsame Bearbeitung der Übungsaufgaben ||
|| 14:30 Uhr || Ausgabe und ggf. Besprechung der Musterlösungen ||
|| 14:30 – 17:00 Uhr || Bearbeitung der Hausaufgaben ||
[[http://www.python.org/|Python]] has become a standard language for prototyping and plotting results in the machine learning community.
Line 37: Line 17:
Abgabeschluss für die Hausaufgaben ist 10:00 Uhr am folgenden Tag. Wir werden folgende Themen behandeln:
 * Dienstag: Grundlagen Matlab, Lineare Algebra
Goal of this course is a basic understanding of python programming for machine learning and data analysis. We want to enable students to quickly load a data set, implement an algorithm, run analyses and plot the results. We will therefore focus on efficient calculations and visualization. For this, we make use of the packages
 * numpy
 * matplotlib
 * scipy
Examples relate to Machine Learning Applications.
Line 40: Line 23:
 * Mittwoch: Grafik, Zufallszahlen Knowledge of elementary programming concepts will be helpful. Be aware that lack of such knowledge will increase the time demand of the class. In that case, you should consider to prepare with a [[https://www.udacity.com/course/cs101|beginner's course]]
Line 42: Line 25:
 * Donnerstag: Mehr Grafik, Datenimport, Umgang mit Strings Homework is submitted via [[https://www.isis.tu-berlin.de/course/view.php?id=7876|ISIS]].

=== TUBIT-Account ===

A TUBIT-Account is needed for the login on our computers and access to ISIS!
If you do not have such an account, write an e-mail to daniel.bartz@tu-berlin.de containing your full name (as on your ID!) and date of birth. We then generate a PDF, with which you receive a TUBIT-Account at the [[http://www.tubit.tu-berlin.de/menue/hilfe_beratung/glossar/k/kartenausgabestelle_kas/|Kartenausgabestelle]].

=== Python on your own computer ===

If you want to use your own machine, make sure that you have installed
 * Python 2.6 or 2.7
 * numpy, matplotlib and scipy
 * Ipython
You should test to start Ipython from the shell with "Ipython --pylab" (Do not ask me about MS Windows!) and within Ipython
 * import numpy
 * import matplotlib
 * import pylab
 * import scipy

=== Supplemental Material ===
Many free Python tutorials and lectures are available in the internet. Here is a small subset:
 * http://scipy-lectures.github.com/index.html - good and detailed tutorial on scientific programming in python
 * https://www.udacity.com/course/cs101 - very basic, very motivating programming course (no focus on scientific programming)
 * https://www.udacity.com/course/cs212 - advanced programming course (no focus on scientific programming)

IPython:
 * http://ipython.org/ipython-doc/dev/interactive/tutorial.html - tutorial on IPython
 * http://cnswww.cns.cwru.edu/php/chet/readline/rluserman.html - keyboard shortcuts for the IPython Shell

Plotting:
 * http://matplotlib.org/mpl_toolkits/mplot3d/tutorial.html#d-plots-in-3d - 3D plots with matplotlib

Machine Learning:
 * We will deal with Sebastian Seung's [[http://athos.rutgers.edu/~mlittman/topics/dimred02/seung-nonneg-matrix.pdf|non-negative matrix factorization]]

A good [[http://www.python.org/dev/peps/pep-0008/#introduction|programming style]] never hurts.
Line 46: Line 64:
Der Kurs ist Wahlpflichtbestandteil des Moduls Maschinelles Lernen I (M.Sc. Informatik). (Das Master-Modul "Maschinelles Lernen 1" wird im Wintersemester angeboten und lässt sich auf Antrag in den Bachelor Informatik einbringen). Der Kurs ist Wahlpflichtbestandteil des Moduls Kognitive Algorithmen (B.Sc. Informatik).
Line 48: Line 66:
Eine Anmeldung für den Kurs ist nicht erforderlich, Studenten aller Fachrichtungen und Universitäten sind willkommen. Grundlage für den benoteten Leistungsnachweis (2 SWS bzw. 3 LP) ist die Klausur (90 Minuten), auf Wunsch stellen wir bei bestandener Klausur auch einen unbenoteten Leistungsnachweis aus. Matlab und sämtliche Aufzeichnungen dürfen in der Klausur verwendet werden. Voraussetzung für die Teilnahme an der Klausur ist das Erreichen von mindestens der Hälfte aller möglichen Punkte in den Hausaufgaben, die Ergebnisse in den Übungsaufgaben gehen nicht in die Note ein. Die Hausaufgaben sind nicht als Gruppenarbeit anzufertigen. Eine Anmeldung für den Kurs ist nicht erforderlich, Studenten aller Fachrichtungen und Universitäten sind willkommen. Grundlage für den benoteten Leistungsnachweis (2 SWS bzw. 3 LP) ist die Klausur (90 Minuten), auf Wunsch stellen wir bei bestandener Klausur auch einen unbenoteten Leistungsnachweis aus. Python und sämtliche Aufzeichnungen dürfen in der Klausur verwendet werden. Voraussetzung für die Teilnahme an der Klausur ist das Erreichen von mindestens der Hälfte aller möglichen Punkte in den Hausaufgaben, die Ergebnisse in den Übungsaufgaben gehen nicht in die Note ein. Die Hausaufgaben sind nicht als Gruppenarbeit anzufertigen.

Contents

Python Programming for Machine Learning

  • Dates:

    Tuesday to Thursday, 02.04-04.04.2013 (block course)

    Times:

    10:00-17:00 on each day

    Exam:

    Friday, 12.04. 10:00 - 11:30 Uhr

    Raum:

    MAR 6.001

    Contact:

    Daniel Bartz (daniel.bartz@tu-berlin.de, room MAR 4.034)

    language:

    English

Python has become a standard language for prototyping and plotting results in the machine learning community.

Goal of this course is a basic understanding of python programming for machine learning and data analysis. We want to enable students to quickly load a data set, implement an algorithm, run analyses and plot the results. We will therefore focus on efficient calculations and visualization. For this, we make use of the packages

  • numpy
  • matplotlib
  • scipy

Examples relate to Machine Learning Applications.

Knowledge of elementary programming concepts will be helpful. Be aware that lack of such knowledge will increase the time demand of the class. In that case, you should consider to prepare with a beginner's course

Homework is submitted via ISIS.

TUBIT-Account

A TUBIT-Account is needed for the login on our computers and access to ISIS! If you do not have such an account, write an e-mail to daniel.bartz@tu-berlin.de containing your full name (as on your ID!) and date of birth. We then generate a PDF, with which you receive a TUBIT-Account at the Kartenausgabestelle.

Python on your own computer

If you want to use your own machine, make sure that you have installed

  • Python 2.6 or 2.7
  • numpy, matplotlib and scipy
  • Ipython

You should test to start Ipython from the shell with "Ipython --pylab" (Do not ask me about MS Windows!) and within Ipython

  • import numpy
  • import matplotlib
  • import pylab
  • import scipy

Supplemental Material

Many free Python tutorials and lectures are available in the internet. Here is a small subset:

IPython:

Plotting:

Machine Learning:

A good programming style never hurts.

Anrechenbarkeit

Der Kurs ist Wahlpflichtbestandteil des Moduls Kognitive Algorithmen (B.Sc. Informatik).

Eine Anmeldung für den Kurs ist nicht erforderlich, Studenten aller Fachrichtungen und Universitäten sind willkommen. Grundlage für den benoteten Leistungsnachweis (2 SWS bzw. 3 LP) ist die Klausur (90 Minuten), auf Wunsch stellen wir bei bestandener Klausur auch einen unbenoteten Leistungsnachweis aus. Python und sämtliche Aufzeichnungen dürfen in der Klausur verwendet werden. Voraussetzung für die Teilnahme an der Klausur ist das Erreichen von mindestens der Hälfte aller möglichen Punkte in den Hausaufgaben, die Ergebnisse in den Übungsaufgaben gehen nicht in die Note ein. Die Hausaufgaben sind nicht als Gruppenarbeit anzufertigen.

TU Studenten, die den Kurs als als freie Wahl in ihr Studium einbringen möchten, müssen in der Regel die Modulprüfung bei ihrem Prüfungsamt anmelden, ansonsten kann es bei der Anrechnung beim Prüfungsamt später Probleme geben.

IDA Wiki: Main/SS13_PythonKurs (last edited 2013-04-09 22:10:01 by DanielBartz)