TU Wien:Machine Learning VU (Musliu)

From VoWi
Jump to navigation Jump to search
Similarly named LVAs (Resources):

Daten[edit]

Lecturers Musliu, Nysret, Mayer, Rudolf
ECTS 4,5
Department Forschungsbereich Databases and Artificial Intelligence
Language English
Links tiss:184702
Zuordnungen
Master Data Science Pflichtmodul MLS/FD - Machine Learning and Statistics - Foundations
Master Logic and Computation Wahlmodul Knowledge Representation and Artificial Intelligence
Master Information & Knowledge Management Wahlmodul Knowledge Engineering
Master Software Engineering & Internet Computing Wahlmodul Algorithmik

Mattermost: Channel "machine-learning"RegisterMattermost-Infos

Inhalt[edit]

Triviale Einführung in Algorithmen wie kNN, decision trees, bayesian networks, random forests, SVM, WEKA API

Kurze Einführung in Evaluierung

Ablauf[edit]

2 Übungsaufgaben in 3er Gruppen: kleinere Beispiele in WEKA Programmieren

Schriftliche Prüfung am Ende

WS 2015: drei Übungsaufgaben; (1) Regression an selbstgewählten Datensets mit verschiedenen Regressions-Algorithmen, (2) das gleiche mit Klassifikation, (3) Implementierung eines einfachen Szenarios mit der Weka API (z.B. Finde optimales k für kNN, automatische Model Selection, ...).

WS18/19: 3 Aufgaben: 1. Regression, 2. Klassifikation. Für das 3. gabs ein paar Optionen zur Auswahl, z.B. Neuronale Netze, u.A. auch CNN (deep learning) für Klassifikation von Bildern.

Datensätze werden zum Teil vorgegeben, können zum Teil frei gewählt werden.

SoSe21: 3 Aufgaben: 1. Regression Methods (2 vorgegebene Datensätze, 2 selbst gewählte, verschiedene Verfahren aus Libraries zu verwenden), 2. Classification Methods (2 vorgeg. Datensätze, 2 selbst gewählte, 2 Methoden selbst zu implementieren und mit bestehenden Verfahren aus Libraries zu vergleichen), 3. Thema wählbar aus verschiedenen vorgegebenen (e.g. Bereich Deep Learning for Text / Image Classification, Differential Privacy, Privacy Attacks, AutoML)

Benötigte/Empfehlenswerte Vorkenntnisse[edit]

WS19/20: Kentnisse in Python bzw. R hilfreich. Java wird nicht mehr benötigt!

In Java sollte man sattelfest sein. [WS18: Java-Kenntnisse nicht zwingend notwendig]

Grundsätzlich sollte man selbstständig Daten visualisieren und präsentieren können.

WS18/19: Man konnte die Sprachen in denen man programmiert im Grunde frei wählen. R und/oder Python Kenntnisse sind z.B. recht hilfreich, besonders auch für die Visualisierung.

Vortrag[edit]

in Englisch

Mayer, Rudolf:

- guter Vortrag mit vielen Beispielen, trotzdem recht langweilig und oberflächlich

- viele Aussagen auf Folien fehlerhaft (z.b.: "Fully grown decision trees will be 100% [accurate] on training data"

-- comment: this is actually true, unless your data contains points that are equal in features, but have a different label; that is also mentioned in the slides.

- Mayer deckt ein sehr breites Gebiet sehr oberflächlich ab

- Mathematisch nicht anspruchsvoll und nicht rigoros (keine Beweise, Notation unordentlich)

Musliu, Nysret:

- schlechter Vortragsstil, eher einschläfernd, hat keine eigenen Folien

- Musliu ist zuvorkommend und geht sehr auf den Wissensstand der Studierenden ein.

Übungen[edit]

Mit einer guten Gruppe leicht schaffbar, je nach dem welches Thema man wählt

Die Punktevergabe (besonders beim zweiten Bsp.) war allerdings nicht wirklich nachvollziehbar. Man hat im TUWEL seine Punkte eingetragen bekommen und das wars. Allgemein hab ich das Gefühl eine ansprechende Dokumentation ist ihnen wichtiger als die Arbeit selbst.

Hier empfiehlt es sich besonders, dass man ein Framework programmiert (gemeinsam als Gruppe oder jemand mit etwas mehr Erfahrung), was dann alle verwenden können bzw. leicht angepasst werden kann. Empfehlenswert ist z.B. die GridSearchCV von sklearn.

(SS20) Wie oben beschrieben ist die Vergabe der Punkte sehr willkürlich es wirkt als würden verschiedene Maßstäbe pro Beispiel angewendet werden und zusätzlich dauert die Benotung ewig (Ergebnis von Bsp.1 war vor Bsp.2 da...)

(SS21) Übung 1 und 3 von Prof. Mayer waren sehr offen, man konnte bis auf einen Datensatz fast alles selbst entscheiden (verwendete Libraries, Machine Learning Modelle, Metriken, wie man Vergleicht, ...). Übung 2 von Prof. Musliu hat zu implementierende Decision Tree Algorithmen vorgegeben, lies den Rest aber auch offen. Das kann man gut finden oder nicht, was (zumindest unserer Gruppe) jedoch recht negativ auffiel, war die Aufgabenstellung zu Übung 1 von Prof. Mayer (siehe Materialien). Diese wirkt so, als hätte man eine Mind-Map zum Thema Machine Learning Basics gezeichnet und versucht wirklich jedes Wort auf dieser Mind-Map irgendwie in die Aufgabenstellung zu integrieren, was in einer Aufgabenstellung resultiert, die sehr viele Sachen fordert, die sich in der für die Übung vorgesehen Zeit niemals ausgehen würden.

Prüfung, Benotung[edit]

Invest some time in looking at old exams. Try to find some of the true/false questions and make sure you know the most current ones.

Also see that you know how to calculate the basic examples using e.g. Naive Bayes, etc. I think there's always one of those in each exam.

Collaborative document for the exam: https://docs.google.com/document/d/1zrk8ruE8e0kG3emJpyyXEXzJ7Wv0QmihYZhZrXsy-NE/edit#

Dauer der Zeugnisausstellung[edit]

WS10: etwas mehr als 5 Wochen
SS13: Prüfung 26.06., Zeugnis 29.07.
WS18: Prüfung 18.10.19, Zeugnis 14.11.19

Benotung der Übungen[edit]

WS18: Hat für jede Übung durchschnittlich 2 Monate gebraucht

SS20: Übung vom 3.5. (Regression) noch immer nicht benotet (10.8.)

SS21: Übung von Anfang Mai (Regression) noch immer nicht benotet (2.8.)

Zeitaufwand[edit]

SS21: Für den Übungspart sind laut TISS 39.5 std eingeplant. Wer jetzt denkt, dass 39.5 std für 3 größere Team-Projekte recht knapp wirkt, der liegt damit absolut richtig. Die Aufgabenstellungen sind tendentiell eher offen und die Benotung wirkte großzügig, vielleicht könnte man also mit einem minimalistischen Ansatz an die 39.5 std herankommen. Wer aber alles in der Aufgabenstellung genannte behandeln will sollte eher die doppelte Zeit einrechnen. Wenn man noch keine Erfahrung mit Datenmanipulation (zB. Pandas) oder Machine Learning Libraries (zB. Sklearn) hat, ist der Zeitaufwand wahrscheinlich sogar noch höher.

Unterlagen[edit]

Folien im TUWEL

imho sehr gute Erklärung der Classifiers unter:

http://chem-eng.utoronto.ca/~datamining/dmc/data_mining_map.htm

Und zusätzliche Vorlesungen:

https://class.coursera.org/ml-003/lecture

Tipps[edit]

These are feedback points (given by Rudolf Mayer) that were given WS21 but are of general interest for all exercises in this course. Read them carefully

Preprocessing:[edit]

It is important to consider when / where to do data preprocessing. We have seen a few times that e.g.

- Missing value deletion was done before splitting

- Taking care of imbalanced data done before splitting

- Removing outliers was done before splitting

This way, you are modifying your *test* (before it was created), and you implicitly simplify your task.

Further, any other pre-processing method (such as feature scaling) or any other use of the test set for any training-related task (such as hyper-parameter optimisation) should be avoided.

If you perform these actions using information from the test set as well, you do not get a realistic estimate for the performance of your model.

We have discussed this in the context of model/algorithm selection, but another nice source discussing the topic is https://machinelearningmastery.com/data-preparation-without-data-leakage/

Experiment setup & analysis:[edit]

Be consistent with your design, and make sure the results are comparable. E.g. if you are comparing the performance of two algorithms on the same dataset, test the performance on the *same* test set. Not just the same percentage, but really the *same* test set with the exact same instances. The same applies if you are comparing the performance of one model, but change a parameter.

If you are exploring the impact of changing a hyperparameter on the performance of your model, keep all other hyperparameters fixed, and vary only the one you chose. If you vary multiple hyperparameters at once, you will not be able to draw a conclusion from your results.

If you are performing grid search, make sure the search space is large enough and that you stop searching when the chosen score does not improve anymore (you might need to expand the search space). In order to confirm a certain behavior, you can focus, e.g. ”zoom in” on certain areas. Ideally, you visualize the behavior - the change (visualisation will help you make a decision).

If you are comparing the performance of a classifier across different datasets, consider using the same (or at least similar) pre-processing and other settings.

Include a baseline, i.e. a lower boundary your classifier should achieve. The zero rule / dummy classifier, i.e. voting for just the majority class, would be one; another one would be to a uniform / random vote, i.e. 1/|classes|, though that is likely a too low baseline in most cases.

Evaluation Metrics:[edit]

- Make sure your chosen metrics provide enough information about the performance of your model. What do they measure? What does the result mean?

What can help when choosing suitable metrics:

- Think about what the classification task is (what are you trying to predict and why? What is your objective?)

- Binary/multi-class/multi-label classification?

- iIs the data balanced? (e.g. accuracy will be high on imbalanced data if your model predicts only the prevalent class, thus you need e.g. other metrics, calculate per class accuracy, confusion matrix etc.)

- Which target class is more important? Are they all equally important?

Think about FN, FP:

-- E.g. wrong prediction of a disease: if someone does not have a certain disease, but we predict that they do, they receive devastating news (FP), but they are healthy. If someone does have a certain disease, but we do not detect it (FN), they do not receive treatment. (valid for threat detection tasks) - e.g. focus on recall

-- Wrong prediction in advertising: you show an ad to someone, who will not buy your product (FP), or you do not show your advertisement to someone who would have bought your product (FN), which is the better scenario?

Reports:[edit]

Some reports are too long. The goal of a report is to determine what are the *main interesting* points, discuss your findings, as well as the context - to *extract knowledge* from your experiments. Simply printing out parts of your data/results without further analysis/discussion/summary is not sufficient.

Use tables/figures/plots to your advantage, make sure to always clearly label them and provide legends, axis labels etc.

When you are plotting your results, determine which type of plot is suitable (e.g. comparing the value of accuracy per different scaling method - a bar plot, or even a scatterplot would be suitable, not a line graph however, as there is no continual change, it is simply a comparison of different values)

Also, include an overall summary where you discuss your findings across all datasets. Providing conclusions only per dataset misses the bigger picture.

Mind how you divide your work and structure your report, so that you can ensure arriving at overall conclusions based on findings from comparable experiments.

Work as a group to deliver one uniform group project, define your experiment design together and be consistent. There should not be distinct parts in the report or experiment design (e.g.no different preprocessing/split/settings per person) - communicate with your group partners →.yYour report should not be a concatenation of three very different sections!

Presentations:[edit]

- Choose the important/interesting findings, discuss the problems you had, your experience, provide comparisons, discuss inconsistencies in results, connections, pros/cons of your approach, etc.

- No need to repeat contents of the lecture (e.g. explaining how a certain algorithm works)

- Use plots, tables, bullet points instead of lots of text on your slides to illustrate your point

- Mind the time

Verbesserungsvorschläge / Kritik[edit]

Vortrag ist sehr oberflächlich. Nach dem Kurs versteht man die Ideen hinter den Algorithmen, aber theoretische und mathematische Grundlagen werden keine geboten.

Aussagen in Vorlesung oft sehr unpräzise.

Wikipedia-Links[edit]