Benutzer-Werkzeuge

Webseiten-Werkzeuge


ss16:09.06.2016

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
ss16:09.06.2016 [2016/06/09 16:18]
henrikfrenzel
ss16:09.06.2016 [2016/06/23 14:52] (aktuell)
henrikfrenzel
Zeile 1: Zeile 1:
   * Ausbesserung von Fehlern ​   * Ausbesserung von Fehlern ​
-  ​* Ausgabe der Genauigkeit ​des k-nearest-Neighbor-Algorithmus+Da der k-nearest-Neighbor-Algorithmus sehr ungenau ist, normalisieren wir die Vektoren des Datensatz, was die Genauigkeit des Algorithmus signifikant steigert. 
 +  * Normalisierung des MNIST-Datensatz nach dem Einlesen 
 +<code python>​ 
 +def abstand(vektor1,​ vektor2): 
 + v1=vektor1/​np.linalg.norm(vektor1) 
 + v2=vektor2/​np.linalg.norm(vektor2) 
 + abstand=np.linalg.norm(v1-v2) 
 + return abstand 
 +</​code>​ 
 +Dadurch wird der Algorithmus zwar sehr genau, da die Daten aber erst von dem Programm normalisiert werden, wird das Programm sehr langsam. Aus diesem Grund wollen wir den Datensatz schon vor dem Einlesen in das Programm normalisieren. 
 +  * **Erweiterung der main-Funktion** 
 +      * Aufsplitten des Datensatz in zehntausend Test- und sechzigtausend Vergleichsdaten  
 +      ​* Ausgabe ​des labels von der untersuchten Zahl 
 +<code python>​ 
 +def main(k): 
 + daten=mat['​data'​] 
 + choice=np.random.choice(70000,​10000,​ replace=False) 
 + test=daten[:,​choice].copy() 
 + datenkurz=np.delete(daten,​choice,​axis=1) 
 + zahllang=mat['​label'​] 
 + labels=zahllang[:,​choice].copy() 
 + zahl=np.delete(zahllang,​choice,​axis=1) 
 + for i in range(10000-1):​ 
 + zahlen=[] 
 + abstaende=nachbarn(test[:,​i],​ datenkurz) 
 + for z in range(k-1):​ 
 + zahlen.append(int(zahl[0,​ abstaende[z][1]])) 
 + print "Die Zahl ist: ", zugehoerigkeit(zahlen,​k),​ " Label:"​ , labels[0][i] 
 +main(int(10)) 
 +</​code>​ 
 + 
 +Die Aufteilung ​des Datensatz in zehntausend Test- und sechzigtausend Vergleichsdaten erfolgt, um zu Überprüfen ob der k-nearest-Neighbor-Algorithmus ​die richtigen Zahlen zuordnet. Des Weiteren wollen wir wissen für welches k die bestmögliche Genauigkeit erzielt wird. k=10 hatte dabei die optimalste Genauigkeit von den getesteten Zahlen.
  
ss16/09.06.2016.1465481921.txt.gz · Zuletzt geändert: 2016/06/09 16:18 von henrikfrenzel