# Tutorials¶

This page gives a gentle introduction into Shark. The quick tutorial section gives an introduction into the most important core components. For neural network training, following the neural entwork tutorials is very helpful for a first step. If you are already familiar with the Shark architecture, the documentation of the key concepts and list of classes can be found below:

## Quick tutorial¶

In case ou are new to Shark, we give you a quick tour over the core components. We first show how to set up either a traditional Makefile or a CMake file for your application program. Then we move on to a simple Hello-World example of what linear binary classification can look like in Shark. The third tutorial illustrates the model-error-optimizer trias often encountered in Shark through a simple regression task.

## Neural Networks¶

A very important class of machine-learning models are Neural Networks. This section discusses the creation and training of multi-layer neural networks

## Data Handling¶

Since many machine learning algorithms work on real-world datasets, we extensively cover Shark’s Data class as well as common operations on them:

## Specific Machine-Learning Algorithms¶

Here come tutorials for some selected algorithms implemented in Shark.
It must be said that this is only the tip of the iceberg, *many* more
machine learning algorithms and tools are provided by the library.

Let’s start with some classical methods:

- Principal Component Analysis
- Nearest Neighbor Classification
- Linear Discriminant Analysis
- Linear Regression
- LASSO Regression
- K-Means Clustering

Tree-based algorithms:

Kernel methods – support vector machine training and model selection:

- Support Vector Machines: First Steps
- Support Vector Machines: Model Selection Using Cross-Validation and Grid-Search
- Support Vector Machines: Likelihood-based Model Selection
- Linear Kernel Combinations (and a bit of MKL)
- Linear Support Vector Machines
- Kernel Target Alignment
- Kernelized Budgeted Stochastic Gradient Descent

## Optimization:Direct-Search¶

Shark offers many direct-search algorithms. The most important one is the CMA-ES in the single and multi-objective variants

## Restricted Boltzman Machines¶

## Tools¶

Finally, we present functionality which are not machine learning facilities themselves, but necessary or helpful tools.

For convenience, Shark provides a statistics class wrapper, as well as generic support for serialization:

## For Shark developers¶

Note that Shark follows a

If you contribute to Shark, you might also find these documents helpful: