Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

ss16:09.06.2016

Dies ist eine alte Version des Dokuments!


  • Ausbesserung von Fehlern

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
def abstand(vektor1, vektor2):
	v1=vektor1/np.linalg.norm(vektor1)
	v2=vektor2/np.linalg.norm(vektor2)
	abstand=np.linalg.norm(v1-v2)
	return abstand
  • Erweiterung der main-Funktion
    • Aufsplitten des Datensatz in zehntausend Test- und sechzigtausend Vergleichsdaten
    • Ausgabe des labels von der untersuchten Zahl
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))
ss16/09.06.2016.1466685715.txt.gz · Zuletzt geändert: 2016/06/23 14:41 von henrikfrenzel