Skip to content

Instantly share code, notes, and snippets.

@karlnapf
Last active August 29, 2015 14:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save karlnapf/b97c4a07fcbd99595496 to your computer and use it in GitHub Desktop.
Save karlnapf/b97c4a07fcbd99595496 to your computer and use it in GitHub Desktop.

Welcome to Shogun-manual's documentation!

Contents:

knn

Indices and tables

  • genindex
  • modindex
  • search
modshogun
%![load_data]
trainf = CSVFile('../data/fm_train_real.dat');
feats_train = RealFeatures(trainf);
testf = CSVFile('../data/fm_test_real.dat');
feats_test = RealFeatures(testf);
train_labels = CSVFile('../data/label_train_multiclass.dat');
labels = MulticlassLabels(train_labels);
%![load_data]
%![choose_distance]
distance = EuclideanDistance(feats_train, feats_test);
%![choose_distance]
%![create_instance]
knn = KNN(3, distance, labels);
%![create_instance]
%![train_and_apply]
knn.train();
test_labels = knn.apply(feats_test);
output = test_labels.get_values();
disp(output);
%![train_and_apply]
from modshogun import EuclideanDistance, KNN, MulticlassLabels, CSVFile, RealFeatures
#![load_data]
trainf = CSVFile("../data/fm_train_real.dat")
feats_train = RealFeatures(trainf)
testf = CSVFile("../data/fm_test_real.dat")
feats_test = RealFeatures(testf)
train_labels = CSVFile("../data/label_train_multiclass.dat")
labels = MulticlassLabels(train_labels)
#![load_data]
#![choose_distance]
distance = EuclideanDistance(feats_train, feats_test)
#![choose_distance]
#![create_instance]
knn = KNN(3, distance, labels)
#![create_instance]
#![train_and_apply]
knn.train()
test_labels = knn.apply(feats_test)
output = test_labels.get_values()
print output
#![train_and_apply]

K-Nearest-Neighbours

Since Pythagoras, we know that a2 + b2 = c2. Use that for KNN. Blablabla

Example

Imagine you have some training and test data.

examples/python/knn.py

In order to run KNN, we need to choose a distance, for example Euclidean. See here for more distances. The distance needs the data we want to classify.

examples/python/knn.py

Once you have chosen a distance, create an instance of the KNN classifier, passing it training data and labels

examples/python/knn.py

Now we run the KNN algorithm and apply it to test data

examples/python/knn.py

{% extends "!layout.html" %}
{% block rootrellink %}
<li><a href="http://www.shogun-toolbox.org/">Shogun</a> &raquo;</li>
{{ super() }}
{% endblock %}
{% block extrahead %}
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" rel="stylesheet">
<script src="https://code.jquery.com/jquery-2.1.3.min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>
{{ super() }}
{% endblock %}
{%- extends "layout.html" %}
{% block body %}
<div class="container">
<div role="tabpanel">
<!-- Nav tabs -->
<ul class="nav nav-tabs" role="tablist">
<li role="presentation" class="active"><a href="#python" role="tab" data-toggle="tab">Python</a></li>
<li role="presentation"><a href="#octave" role="tab" data-toggle="tab">Octave</a></li>
<li role="presentation"><a href="#java" role="tab" data-toggle="tab">Java</a></li>
</ul>
<!-- Tab panes -->
<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="python">
<div class="contents">
{{ body_python }}
</div>
</div>
<div role="tabpanel" class="tab-pane" id="octave">
<div class="contents">
{{ body_octave }}
</div>
</div>
<div role="tabpanel" class="tab-pane" id="java">
<div class="contents">
{{ body_java }}
</div>
</div>
</div><!--div class="tab-content"-->
</div><!--div role="tabpanel"-->
</div><!--div class="container"-->
{% endblock %}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment