>>> from mlpack import perceptron

This program implements a perceptron, which is a single level neural network. The perceptron makes its predictions based on a linear predictor function combining a set of weights with the feature vector. The perceptron learning rule is able to converge, given enough iterations (specified using the 'max_iterations' parameter), if the data supplied is linearly separable. The perceptron is parameterized by a matrix of weight vectors that denote the numerical weights of the neural network.

This program allows loading a perceptron from a model (via the 'input_model' parameter) or training a perceptron given training data (via the 'training' parameter), or both those things at once. In addition, this program allows classification on a test dataset (via the 'test' parameter) and the classification results on the test set may be saved with the 'output'output parameter. The perceptron model may be saved with the 'output_model' output parameter.

The training data given with the 'training' option may have class labels as its last dimension (so, if the training data is in CSV format, labels should be the last column). Alternately, the 'labels' parameter may be used to specify a separate matrix of labels.

All these options make it easy to train a perceptron, and then re-use that perceptron for later classification. The invocation below trains a perceptron on 'training_data' with labels 'training_labels', and saves the model to 'perceptron'.

>>> perceptron(training=training_data, labels=training_labels)
>>> perceptron = output['output_model']

Then, this model can be re-used for classification on the test data 'test_data'. The example below does precisely that, saving the predicted classes to 'predictions'.

>>> perceptron(input_model=perceptron, test=test_data)
>>> predictions = output['output']

Note that all of the options may be specified at once: predictions may be calculated right after training a model, and model training can occur even if an existing perceptron model is passed with the 'input_model' parameter. However, note that the number of classes and the dimensionality of all data must match. So you cannot pass a perceptron model trained on 2 classes and then re-train with a 4-class dataset. Similarly, attempting classification on a 3-dimensional dataset with a perceptron that has been trained on 8 dimensions will cause an error.

input options

output options

The return value from the binding is a dict containing the following elements: