Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
ss16:07.07.2016 [2016/07/07 16:31] henrikfrenzel |
ss16:07.07.2016 [2016/07/07 16:46] (aktuell) henrikfrenzel |
||
---|---|---|---|
Zeile 4: | Zeile 4: | ||
=== Ziele: === | === Ziele: === | ||
* knn-Algorithmus von scikit-learn für MNIST-Datensatz implementieren | * knn-Algorithmus von scikit-learn für MNIST-Datensatz implementieren | ||
- | |||
<code python> | <code python> | ||
from __future__ import division | from __future__ import division | ||
Zeile 33: | Zeile 32: | ||
zahl=zahl.reshape((trainingsize,)) | zahl=zahl.reshape((trainingsize,)) | ||
</code> | </code> | ||
- | Da der Algorithmus von sklearn mit einem anderen shape arbeitet als der MNIST-Datensatz musste wir den Datensatz transponieren. Außerdem haben wir aus Laufzeitgründen den Datensatz verkleinert. | + | Da der Algorithmus von sklearn mit einem anderen shape arbeitet als der MNIST-Datensatz, musste wir den Datensatz transponieren. Außerdem haben wir aus Laufzeitgründen den Datensatz verkleinert. |
=== Ausgabe der Genauigkeit: === | === Ausgabe der Genauigkeit: === | ||
Zeile 39: | Zeile 38: | ||
clf = neighbors.KNeighborsClassifier(k) | clf = neighbors.KNeighborsClassifier(k) | ||
clf.fit(datenkurz, zahl) | clf.fit(datenkurz, zahl) | ||
- | clf.predict(test) | ||
print clf.score(test,labels) | print clf.score(test,labels) | ||
</code> | </code> | ||
Zeile 46: | Zeile 44: | ||
{{ :ss16:printme.png |}} | {{ :ss16:printme.png |}} | ||
Der Algorithmus ist bei k von 6-9 am genausten. Aus diesem Grund haben wir uns für k=8 entschieden. | Der Algorithmus ist bei k von 6-9 am genausten. Aus diesem Grund haben wir uns für k=8 entschieden. | ||
+ | |||
+ | === Support Vector Classification(SVC): === | ||
+ | <code python> | ||
+ | for i in range(2): | ||
+ | if i==0: | ||
+ | clf = neighbors.KNeighborsClassifier(8) | ||
+ | if i==1: | ||
+ | clf = svm.SVC() | ||
+ | t1=time.clock() | ||
+ | clf.fit(datenkurz, zahl) | ||
+ | Genauigkeit=clf.score(test,labels) | ||
+ | t2=time.clock() | ||
+ | zeit=t2-t1 | ||
+ | |||
+ | print "Genauigkeit: ", Genauigkeit, "Zeit: ", zeit | ||
+ | </code> | ||
+ | == Ausgabe: == | ||
+ | <code terminal> | ||
+ | Genauigkeit: 0.957 Zeit: 12.72157 #knn | ||
+ | |||
+ | Genauigkeit: 0.955 Zeit: 24.224649 #SVC | ||
+ | </code> | ||
+ | Genauigkeit bei Support Vector Classification und k-nearest-Neighbor-Algorithmus ist ähnlich allerdings ist SVC deutlich langsamer als knn. |