Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
lehrkraefte:ks:efcomputergrafik2022 [2022/04/05 13:29] Simon Knaus |
lehrkraefte:ks:efcomputergrafik2022 [2022/05/24 14:21] Simon Knaus |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | |||
===== Ziele ====== | ===== Ziele ====== | ||
* Jede/r kennt was ein Regressions-/ | * Jede/r kennt was ein Regressions-/ | ||
Line 5: | Line 6: | ||
* Jede/r kennt die Begriffe Training- und Testdaten wie auch Evaluationsdaten (training set, evaluation set, test set)f] | * Jede/r kennt die Begriffe Training- und Testdaten wie auch Evaluationsdaten (training set, evaluation set, test set)f] | ||
* Jede/r kann eine Vorhersage auf Grund von Testdaten machen unter Verwendung von Trainings- und Evaluationsdaten. | * Jede/r kann eine Vorhersage auf Grund von Testdaten machen unter Verwendung von Trainings- und Evaluationsdaten. | ||
+ | * Jede/r kann $k$-nearest neighbour erklären und implementieren. | ||
+ | * Selbst implementieren oder mit '' | ||
+ | * Das optimale $k$ feststellen. | ||
+ | |||
+ | ===== KW 21 ===== | ||
+ | |||
+ | Bitte keine **gif**s zu GitHub hinzufügen: | ||
+ | ===== KW 20 ===== | ||
+ | Neuronale Netze: Woher, wohin. {{lehrkraefte: | ||
+ | |||
+ | ===== KW 19 ===== | ||
+ | |||
+ | Weiterarbeit am Projekt, siehe auch [[lehrkraefte: | ||
+ | |||
+ | Bitte Mails lesen. | ||
+ | |||
+ | Zusätzliche Fragestunde: | ||
+ | |||
+ | ===== KW 18 ===== | ||
+ | * Slides: {{lehrkraefte: | ||
+ | * Padlet mit Fragen (A) und was als nächstes ansteht (B) [[https:// | ||
+ | |||
+ | |||
+ | ===== KW 17 ===== | ||
+ | === Ziel === | ||
+ | Jede:r startet sein eigenes Projekt. | ||
+ | |||
+ | === Auftrag === | ||
+ | - Lies den Beschrieb des Projekts durch | ||
+ | - Wähle aus, was du machen möchtest. Bei Interesse können auch weitere resp. andere Daten gewählt werden. | ||
+ | - Strukturiere dein Projekt in Teilziele | ||
+ | - Versuche die Struktur deines Projekts auch im Code abzubilden, das heisst, defiere Zwischenschritte, | ||
+ | * Definere bereits Funktionen ohne diese bereits Zeile für Zeile definier zu haben, das heisst, definiere, welche Argumente sie hat und was die Rückgabewerte sind | ||
+ | * Definiere wie du Zwischenschritte überprüfen kannst. | ||
+ | - Besprich die Punkte 3 und 4 mit Ks | ||
+ | |||
+ | ==== Projekt ===== | ||
+ | |||
+ | Jede:r << | ||
+ | * Trainingsdaten und Evaluationsdaten werden verwendet. | ||
+ | * Auf den Evaluationsdaten wird die Güte der Klassifikation wie auch die Konfusionsmatrix ausgewiesen. | ||
+ | * Hat der Klassifikationsalgorithmus einen **Hyperparameter** (oder **Tuningparameter**, | ||
+ | * Es können bekannte Algorithmen ($k$ nearest neighbor, trees) oder eigene Algorithmen (<< | ||
+ | * Es können die Daten der BU, die Bilddateien des Unterrichts o.ä. verwendet werden. | ||
+ | |||
+ | Abzugeben ist ein Markdown-Dokument mit | ||
+ | * kurzem Beschrieb, welches Problem gelöst worden ist. | ||
+ | * den wichtigsten Code-Zeilen in Markdown mit ggf. Erklärungen. | ||
+ | * einem sinnvollen Bild als Illustration. | ||
+ | * der Antwort auf die Frage <<Was wäre ich froh gewesen, hätte ich schon vorm Projektende gewusst>> | ||
+ | Das ganze ist in einer mit Code und Daten als lauffähiges Programm in [[https:// | ||
+ | |||
+ | Relevant für die Bewertung sind: | ||
+ | * Eigenleistung (eigene Implementation wird höher bewertet) | ||
+ | * Korrektheit des Codes | ||
+ | * Kommentare und Struktur des Codes | ||
+ | * Saubere Darstellung im Markdown-Dokument. | ||
- | ===== KW14-18 ===== | + | ===== KW14 ===== |
Jede:r implementiert $k$-nearest neighbors für ein $p$-dimensionales Problem. Die $p$ Dimensionen können | Jede:r implementiert $k$-nearest neighbors für ein $p$-dimensionales Problem. Die $p$ Dimensionen können | ||
* die Features der Buchstaben aus der BU sein oder | * die Features der Buchstaben aus der BU sein oder | ||
* die Pixelfarben in Graufstufen des MNIST-Datensatzes | * die Pixelfarben in Graufstufen des MNIST-Datensatzes | ||
sein. | sein. | ||
- | === Hinweise Features | + | {{ : |
+ | Für beide Probleme ist es **zentral**, | ||
+ | |||
+ | === Hinweise Features | ||
Der Datensatz kann aus der BU von git [[https:// | Der Datensatz kann aus der BU von git [[https:// | ||
=== Hinweise MNIST Datensatz === | === Hinweise MNIST Datensatz === | ||
+ | Der MNIST-Ziffern-Datensatz ist ein << | ||
{{ : | {{ : | ||
Zwischenschritte: | Zwischenschritte: | ||
Line 27: | Line 89: | ||
== Code Hinweise == | == Code Hinweise == | ||
* **Konvertierung der Bild-Dateien zu Zahlwerten** | * **Konvertierung der Bild-Dateien zu Zahlwerten** | ||
- | * Bilder können in mit '' | + | * Bilder können in mit '' |
* Verzeichnisse können mit os.listdir() durchlaufen werden: <file python listdir.py> | * Verzeichnisse können mit os.listdir() durchlaufen werden: <file python listdir.py> | ||
for filename in os.listdir(" | for filename in os.listdir(" | ||
Line 54: | Line 116: | ||
import os #um Verzeichnisse zu listen | import os #um Verzeichnisse zu listen | ||
- | import skimage.io | + | import skimage.io |
# Pfad zu den Bilddateien | # Pfad zu den Bilddateien | ||
Line 62: | Line 124: | ||
def getPixeListFromFilePath(filepath): | def getPixeListFromFilePath(filepath): | ||
img = skimage.io.imread(fname=filepath) | img = skimage.io.imread(fname=filepath) | ||
- | |||
w = img.shape[0] | w = img.shape[0] | ||
h = img.shape[1] | h = img.shape[1] |