kurse:efcomputergrafik:knn

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
kurse:efcomputergrafik:knn [2020/03/24 12:22]
Simon Knaus [$k$ Nearest Neighbours auf Pixellisten]
kurse:efcomputergrafik:knn [2020/03/24 14:55] (current)
Simon Knaus [$k$ Nearest Neighbors]
Line 1: Line 1:
-==== k Nearest Neighbors ====+==== $kNearest Neighbors ==== 
 +Bei $k$ nearest neighbours (kNN) geht es darum, einem dazukommenden Punkt diese Klasse zuzuweisen, welche die nächsten $k$-Punkte mehrheitlich haben.  
 +Der Trainingsdatensatz sind damit alle Punkte, von welchem man die Klasse und Koordinaten kennt. Auf Grund dieser Klassen und Koordinaten wird einem neuen Datenpunkt einzig auf Grund der Koordinaten eine Klasse zugeordnet. 
 + 
 +{{ :kurse:efcomputergrafik:knn:structure.png |}} 
 +=== Bemerkungen ==== 
 +  * Die untenstehenden Codes sind für TigerJython gedacht 
 +  * Die Codes sind nicht unbedingt schnell sondern illustrativ 
 +  * Es werden folgende Daten benötigt: 
 +    * {{kurse:efcomputergrafik:knn:knn_r2_trainingsdaten.zip|Trainingsdaten}} für zweidimensionales kNN 
 +    * {{kurse:efcomputergrafik:knn:knn_r2_testdaten.zip|Testdaten}} für zweidimensionales kNN 
 +    * ZIP-Code Daten 
 +      * Training: {{kurse:efcomputergrafik:knn:knn_rk_trainingsdaten.zip|Bilddateien als ZIP}} 
 +      * Test: {{kurse:efcomputergrafik:knn:knn_rk_testdaten.zip|Bilddateien als ZIP}} 
 +      * (Optional) {{kurse:efcomputergrafik:knn:knn_rk_training_csv.zip|Training als CSV}} 
 +      * (Optional) {{kurse:efcomputergrafik:knn:knn_rk_test_csv.zip|Test als CSV}}
  
 ==== Einführung ==== ==== Einführung ====
Line 14: Line 29:
  
  
-Wer $k$-nearest-neighbour implementiert hat, kann sich überlegen, wie die untenstehende Daten klassifiziert werden sollen: +Die Daten finden sich in einer {{kurse:efcomputergrafik:knn:knn_r2_trainingsdaten.zip|ZIP-Datei}}
-{{ :efinf:blcks2017:bigdata:l2:structure.png?400 |}} +
-Die Daten finden sich in einer neuen {{efinf:blcks2017:bigdata:l2:data2.zip|ZIP-Datein}}+
  
-<hidden>+<hidden Lösung>
 <file python knn.py> <file python knn.py>
 from gpanel import * from gpanel import *
Line 121: Line 134:
 === Ziele === === Ziele ===
  
-  * Klassifizierungsfehler auf {{efinf:blcks2017:bigdata:testdata.zip|Testdaten}} für verschiedene $k$ berechnen und Tabelle erstellen.+  * Klassifizierungsfehler auf {{kurse:efcomputergrafik:knn:knn_r2_testdaten.zip|Testdaten}} für verschiedene $k$ berechnen und Tabelle erstellen.
   * ZIP-Code Problematik verstehen: ZIP-Code -> Ziffer -> 16x16 Bild -> Liste mit 256 Graustufen-Werten -> kNN in $\mathbb{R}^{256}$.   * ZIP-Code Problematik verstehen: ZIP-Code -> Ziffer -> 16x16 Bild -> Liste mit 256 Graustufen-Werten -> kNN in $\mathbb{R}^{256}$.
-  * Einzelne Ziffern als {{efinf:blcks2017:bigdata:digits.zip|Grafikdatei}} einlesen und als 256 Zahlwerte pro Bild als Liste speichern:+  * Einzelne Ziffern als {{kurse:efcomputergrafik:knn:knn_rk_trainingsdaten.zip|Bilddateien als ZIP}} einlesen und als 256 Zahlwerte pro Bild als Liste speichern:
     * Eine Funktion schreiben, die als Argument einen Dateinamen hat und als Rückgabewert eine Liste mit 256 Elementen.     * Eine Funktion schreiben, die als Argument einen Dateinamen hat und als Rückgabewert eine Liste mit 256 Elementen.
     * Diese Funktion auf alle Dateien anwenden (siehe unten) und die Ziffer aus dem Dateinamen in eine Liste von Liste mit 256+1 Elementen speichern     * Diese Funktion auf alle Dateien anwenden (siehe unten) und die Ziffer aus dem Dateinamen in eine Liste von Liste mit 256+1 Elementen speichern
  • kurse/efcomputergrafik/knn.1585048940.txt.gz
  • Last modified: 2020/03/24 12:22
  • by Simon Knaus