## Smart Hyper Parameter Selection

The purpose of this project is to implement different algorithms for choosing good hyper parameters values for various machine learning algorithms.
It would be a hands on experience on machine learning and you would be exposed to many details you need to know when working with machine learning algorithms.

This can be seen as an optimization task where one tries to find hyper parameters \theta that minimize the validation error.

Classes of algorithms that can be implemented are:

- Estimation distribution algorithms(where we try to find a distribution of good solutions)
- Genetic Algorithms
- Simple Heuristics
- or maybe something completely different

You would have to implement such an algorithm in the framework we have developed and test it on several algorithms and datasets. This means either writing a Python class or a C++ class what would be interfaced with Python, as the entire architecture is written in Python. This class would contain a function that given the hyper parameters already tried and the corresponding validation error, would return the next hyper parameter values to try.

For all the details you can contact Dan Popovici either by email(popovicd@iro.umontreal.ca) or just drop by the lab.