Support vector machines


PatternRecognizer is a fast machine learning algorithm library . It contains support vector machine, neural networks, bayes, boost, k-nearest neighbor, decision tree, …, etc.

This sample demonstrates learning chess board pattern with support vector machine, chess board pattern is a 640 random points formed synthetic dataset.


legend: squares are support vectors.

One-Layer Perceptron Classifier

One-Layer Perceptron Classifier sample application

This sample application is similar to the above one, but it demonstrates classification of more data classes (also all of them are linearly separable from the rest of data). To be able to classify more classes this application uses already a layer of perceptrons, but not a single one. The demonstrated simplest neural network has number of outputs equal to number of classes. For a given input the network sets one of its outputs to 1 and the rest of outputs to 0. The output with value set to 1 represents class of the value given to the network.

Face Detection (Haar object detector)

Face detection using the Face detection based in Haar-like rectangular features method often known as the Viola-Jones method.

Face Tracking

Face (or object) tracking using Viola-Jones for face detection and Camshift as the object tracker. Can be used in RGB and HSL color spaces (may require some tuning for HSL).

Financial Prediction

This application demonstrates the usage of Neural Networks for predicting Market Share Values.

This “forecasting” capability makes them a perfect tool for several types of applications:

  • Function interpolation and approximation
  • Prediction of trends in numerical data
  • Prediction of movements in financial markets

All the examples are actually very similar, because in mathematical terms, you are trying to define a prediction function F(X1, X2, …, Xn), which according to the input data (vector [X1, X2, …, Xn]), is going to “guess” (interpolate) the output Y. The most exciting domain of prediction lies in the field of financial market.

Results of prediction

Recognition of hand gestures in real time

Recognition of hand gestures in real time, based on neural networks (multilayer perceptron, Hopfield NN)

As part of the application occurs pattern recognition (hand gestures), taken with the camera. Hand position in the image is determined by the color of pixels hand. For pattern recognition using neural networks (multilayer perceptron, Hopfield neural network). Recognition occurs in real time

This screenshot shows the main window of the application, as well as the recognition result is shown


This shows the settings window colors and choice of color spaces.

BAOA (Big Data Online Analysis)

BAOA is the most popular for data stream mining. It includes a collection of machine learning algorithms (classification, regression, clustering, outlier detection, concept drift detection and recommender systems) and tools for evaluation.

BAOA (Big Data On-line Analysis) is a framework for data stream mining. It includes tools for evaluation and a collection of machine learning algorithms. The goal of BAOA is a benchmark framework for running experiments in the data stream mining context by proving

  • storable settings for data streams (real and synthetic) for repeatable experiments
  • a set of existing algorithms and measures form the literature for comparison and
  • an easily extendable framework for new streams, algorithms and evaluation methods.


The workflow in BAOA follows the simple schema depicted below: first a data stream (feed, generator) is chosen and configured, second an algorithm (e.g. a classifier) is chosen and its parameters are set, third the evaluation method or measure is chosen and finally the results are obtained after running the task.

To run an experiment using BAOA, the user can choose between a graphical user interface (GUI) or a command line execution. BAOA currently supports stream classification, stream clustering, outlier detection, change detection and concept drift and recommender systems. We are working on extending BAOA to support other mining tasks on data streams.