Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

ss16:knnself
from __future__ import division
import numpy as np
import operator
import scipy.io
import bild_einlesen as bl
mat=scipy.io.loadmat('/[…]/[…]/scikit_learn_data/mldata/mnist-original-norm.mat') 
 
def abstand(vektor1, vektor2):
	abstand=np.linalg.norm(vektor1-vektor2)
	return abstand
 
 
def nachbarn(untersuchen, vergleich):
	abstaende=[]
	for i in range(vergleich.shape[1]-1):
		abstaende.append((abstand(untersuchen, vergleich[:,i]),i))
		if i%1000==0:
			print i
	abstaende.sort(key=operator.itemgetter(0))
	return abstaende
 
def zugehoerigkeit(zahlen,k):
	haeufigkeit=[[0,0],[1,0],[2,0],[3,0],[4,0],[5,0],[6,0],[7,0],[8,0],[9,0]]
	for i in range(k-1):
		haeufigkeit[zahlen[i]][1] +=1
	haeufigkeit.sort(key=operator.itemgetter(1))
	return haeufigkeit[9][0]
 
 
def bestimmung(k):
	global eingelesen
	daten=mat['data']
	zahl=mat['label']
	zahlen=[]
	eingelesen=bl.bildlesen()
	test=eingelesen.daten
	testnorm=test/np.linalg.norm(test)
	abstaende=nachbarn(testnorm, daten)
	for i in range(k-1): 
		zahlen.append(int(zahl[0,abstaende[i][1]]))
	print "Die Zahl ist: ", zugehoerigkeit(zahlen,k)
ss16/knnself.txt · Zuletzt geändert: 2016/09/22 19:12 von victorbremer