mlpack.perceptron

perceptron(...)Perceptron

>>> 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_model'.

>>> output = perceptron(training=training_data, labels=training_labels)

>>> perceptron_model = 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'.

>>> output = perceptron(input_model=perceptron_model, 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

- copy_all_inputs (bool): If specified, all input parameters will be deep copied before the method is run. This is useful for debugging problems where the input parameters are being modified by the algorithm, but can slow down the code.
- input_model (mlpack.PerceptronModelType): Input perceptron model.
- labels (numpy vector or array, int/long dtype): A matrix containing labels for the training set.
- max_iterations (int): The maximum number of iterations the perceptron is to be run Default value 1000.
- test (numpy matrix or arraylike, float dtype): A matrix containing the test set.
- training (numpy matrix or arraylike, float dtype): A matrix containing the training set.
- verbose (bool): Display informational messages and the full list of parameters and timers at the end of execution.

## output options

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

- output (numpy vector, int dtype): The matrix in which the predicted labels for the test set will be written.
- output_model (mlpack.PerceptronModelType): Output for trained perceptron model.