Benutzer-Werkzeuge

Webseiten-Werkzeuge


ss16:02.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:02.06.2016 [2016/06/16 14:57]
henrikfrenzel
ss16:02.06.2016 [2016/06/16 17:07] (aktuell)
henrikfrenzel
Zeile 1: Zeile 1:
 === k-nearest-Neighbor-Algorithmus für MNIST Datensatz geschrieben === === k-nearest-Neighbor-Algorithmus für MNIST Datensatz geschrieben ===
-  * Aufbau des Datensatz +  * Definition der Zugehörigkeit und Häufigkeit 
-<​code ​terminal+<​code ​python
-from sklearn import datasets +def zugehoerigkeit(zahlen,​k):​ 
-digits=datasets.load_digits() + 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): 
-digits.keys()+ haeufigkeit[zahlen[i]][1] +=1 
 + haeufigkeit.sort(key=operator.itemgetter(1)
 + return haeufigkeit[9][0]
 </​code>​ </​code>​
 + 
 +  * Aufbau des MNIST-Datensatz
 +<​code>​
 +python
 +>>>​ import scipy.io
 +>>>​ mat=scipy.io.loadmat('/​[…]/​[…]/​scikit_learn_data/​mldata/​mnist-original.mat'​)
 +>>>​ mat
 +'​__globals__':​ [], '​mldata_descr_ordering':​ array([[array([u'​label'​], ​
 +      dtype='<​U5'​),​
 +        array([u'​data'​], ​
 +      dtype='<​U4'​)]],​ dtype=object),​ '​__header__':​ '​MATLAB 5.0 MAT-file Platform: posix, Created on: Thu May 26 15:44:45 2016', '​label':​ array([[ 0.,  0.,  0., ...,  9.,  9.,  9.]]), '​__version__':​ '​1.0',​ '​data':​ array([[0, 0, 0, ..., 0, 0, 0],
 +       [0, 0, 0, ..., 0, 0, 0],
 +       [0, 0, 0, ..., 0, 0, 0],
 +       ​..., ​
 +       [0, 0, 0, ..., 0, 0, 0],
 +       [0, 0, 0, ..., 0, 0, 0],
 +       [0, 0, 0, ..., 0, 0, 0]], dtype=uint8)}
 +>>>​ dir(mat)
 +['​__class__',​ '​__cmp__',​ '​__contains__',​ '​__delattr__',​ '​__delitem__',​ '​__doc__',​ '​__eq__',​ '​__format__',​ '​__ge__',​ '​__getattribute__',​ '​__getitem__',​ '​__gt__',​ '​__hash__',​ '​__init__',​ '​__iter__',​ '​__le__',​ '​__len__',​ '​__lt__',​ '​__ne__',​ '​__new__',​ '​__reduce__',​ '​__reduce_ex__',​ '​__repr__',​ '​__setattr__',​ '​__setitem__',​ '​__sizeof__',​ '​__str__',​ '​__subclasshook__',​ '​clear',​ '​copy',​ '​fromkeys',​ '​get',​ '​has_key',​ '​items',​ '​iteritems',​ '​iterkeys',​ '​itervalues',​ '​keys',​ '​pop',​ '​popitem',​ '​setdefault',​ '​update',​ '​values',​ '​viewitems',​ '​viewkeys',​ '​viewvalues'​]
 +>>>​ mat['​data'​]
 +array([[0, 0, 0, ..., 0, 0, 0],
 +       [0, 0, 0, ..., 0, 0, 0],
 +       [0, 0, 0, ..., 0, 0, 0],
 +       ​..., ​
 +       [0, 0, 0, ..., 0, 0, 0],
 +       [0, 0, 0, ..., 0, 0, 0],
 +       [0, 0, 0, ..., 0, 0, 0]], dtype=uint8)
 +>>>​ mat['​data'​].shape
 +(784, 70000)
 +>>>​ mat.keys
 +<​built-in method keys of dict object at 0x109098398>​
 +>>>​ mat.keys()
 +['​__globals__',​ '​mldata_descr_ordering',​ '​__header__',​ '​label',​ '​__version__',​ '​data'​]
 +>>>​ mat['​label'​]
 +array([[ 0.,  0.,  0., ...,  9.,  9.,  9.]])
 +>>>​ mat['​label'​].shape
 +(1, 70000)
 +</​code>​
 +
   * Einbinden des MNIST-Datensatz   * Einbinden des MNIST-Datensatz
 <code python> ​ <code python> ​
 import scipy.io import scipy.io
-mat=scipy.io.loadmat('/​[...]/[...]/​scikit_learn_data/​mldata/​mnist-original.mat'​)+mat=scipy.io.loadmat('/​[]/[]/​scikit_learn_data/​mldata/​mnist-original.mat'​)
 </​code>​ </​code>​
  
-  * Ausgabe der Zugehörigkeit ​und der Häufigkeit+  * Schreiben der main-Funktion mit Ausgabe der Zugehörigkeit 
 +<code python>​ 
 +def main(k): 
 + daten=mat['​data'​] 
 + zahl=mat['​label'​] 
 + zahlen=[] 
 + test=np.zeros((785,​1)) 
 + abstaende=nachbarn(test,​ daten) 
 + for i in range(15-1):​ 
 + zahlen.append(int(zahl[0,​abstaende[i][1]])) 
 + print "Die Zahl ist: ", zugehoerigkeit(zahlen,​k) 
 + 
 +main(int(k)) 
 +</​code>​
ss16/02.06.2016.1466081825.txt.gz · Zuletzt geändert: 2016/06/16 14:57 von henrikfrenzel