Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

ss16:14.07.2016

Dies ist eine alte Version des Dokuments!


Bei dem ganzen MNIST-Datensatz hat unser k-nearest-Neighbor-Algorithmus eine Genauigkeit von 98%.

Ziele:

  • Symbol-Datensatz zum MNIST-Datensatz hinzufügen
  • fit-Funktion mit pickle auslagern
Labels neudefiniert um Datensätze anzugleichen
import cPickle as pickle
 
with open('clean_symbols.p','r') as f:
	u=pickle.Unpickler(f)
	data=u.load()
 
zahlen=['1','2','3','4','5','6','7','8','9','0']
for i in range(15568):
	if data[2][i] in zahlen:
		data[1][i]= int(data[2][i])
	else:
		data[1][i] +=10
 
pickle.dump( data, open( "symbols-newlabel.p", "wb" ) )
Symbol-Datensatz formieren
import cPickle as pickle
import numpy as np
 
with open('symbols-newlabel.p','r') as f:
	u=pickle.Unpickler(f)
	data=u.load()
 
data_neu=np.zeros(shape=data[0].shape,dtype=np.float)
for i in range(data[0].shape[0]):
	data_neu[i]=data[0][i,:]/np.linalg.norm(data[0][i,:])
 
alldata_neu= (data_neu, data[1], data[2])
 
pickle.dump( alldata_neu, open( "symbols-newlabel-norm.p", "wb" ) )
Zusammenfügen der Datensätze
import cPickle as pickle
import scipy.io
import numpy as np
mat=scipy.io.loadmat('/home/mensch/scikit_learn_data/mldata/mnist-original-norm.mat')
 
with open('symbols-newlabel-norm.p','r') as f:
	u=pickle.Unpickler(f)
	data=u.load()
 
mnist_data=mat['data']
mnist_data= mnist_data.transpose()
mnist_label=mat['label']
mnist_label=mnist_label.transpose()
mnist_label_int=np.zeros(shape=mnist_label.shape, dtype=np.int64)
mnist_label_string=np.zeros(shape=mnist_label.shape, dtype=object)
for i in range(mnist_label.shape[0]):
	mnist_label_int[i]= np.int64(mnist_label[i])
	mnist_label_string[i]= np.string_(mnist_label[i])
 
mnist_label_int = mnist_label_int.reshape((mnist_label_int.shape[0],))
mnist_label_string = mnist_label_string.reshape((mnist_label_string.shape[0],))
 
zusammendaten=np.append(data[0], mnist_data, axis=0)
zusammenlabel= np.append(data[1], mnist_label_int, axis=0)
zusammenlabel2=np.append(data[2], mnist_label_string, axis=0)
alleszusammen = (zusammendaten, zusammenlabel, zusammenlabel2)
 
 
pickle.dump( alleszusammen, open( "/home/mensch/scikit_learn_data/mldata/datensaetze-zsm.p", "wb" ) )

Der Versuch die Daten mit Pickle zu speichern führte allerdings zu einem MemoryError. Daher sind wir dazu übergegangen die Dateien in einem Numpy-Objekt zu speichern:

alleszusammen= np.array((zusammendaten, zusammenlabel, zusammenlabel2))
np.save( "/home/mensch/scikit_learn_data/mldata/datensaetze-zsm.p",alleszusammen)

Die Datei wird dann als „datensaetze-zsm.p.npy“ gespeichert und kann mit dem Befehl np.load(„/home/mensch/scikit_learn_data/mldata/datensaetze-zsm.p“) geladen werden.

ss16/14.07.2016.1468509594.txt.gz · Zuletzt geändert: 2016/07/14 17:19 von victorbremer