Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

ss16:07.07.2016

Dies ist eine alte Version des Dokuments!


Lösung:

Laufzeitproblem von letzter Woche basierte auf einem Vektorfehler

Ziele:

  • knn-Algorithmus von scikit-learn für MNIST-Datensatz implementieren
from __future__ import division
from sklearn.neighbors import NearestNeighbors
import numpy as np
import scipy.io
import random 
from sklearn import neighbors
mat=scipy.io.loadmat('/[…]/[…]/scikit_learn_data/mldata/mnist-original-norm.mat')
 
trainingsize=9000
testsize=1000
daten=mat['data']
choice1=np.random.choice(70000, trainingsize+testsize, replace=False)
daten=daten[:,choice1]
daten=daten.transpose()
print "Datenshape:", daten.shape
choice2= np.random.choice(trainingsize+testsize,testsize, replace=False)
test=daten[choice2,:].copy()
print "Testshape:", test.shape
datenkurz=np.delete(daten,choice2,axis=0)
zahllang=mat['label']
zahllang=zahllang[:,choice1]
zahllang=zahllang.transpose()
labels=zahllang[choice2,:].copy()
labels=labels.reshape((testsize,))
zahl=np.delete(zahllang,choice2,axis=0)
zahl=zahl.reshape((trainingsize,))

Ausgabe der Genauigkeit:

clf = neighbors.KNeighborsClassifier(k)
clf.fit(datenkurz, zahl)
clf.predict(test)
print clf.score(test,labels)

Genauigkeit in Abhängigkeit von k:

Der Algorithmus ist bei k von 6-9 am genausten.

ss16/07.07.2016.1467901645.txt.gz · Zuletzt geändert: 2016/07/07 16:27 von henrikfrenzel