version 2024.04.18.0-beta
Implements the Multi Expression Programming (MEP) technique for solving symbolic regression, classification (binary and multiclass), and time-series prediction problems.
MEP is a Genetic Programming (GP) variant with a linear representation of chromosomes.
MEP introduced a unique feature: the ability to encode multiple solutions in the same chromosome. This means that we can explore much more from the search space compared to other techniques that encode a single solution in the chromosome. In most cases, this advantage comes with no penalty regarding running time or resources involved.
C++ 11 is required due to the use of C++ 11 threads.
Create a new project and add:
Include paths must point to the include folder of this project.
If you use the MS compiler, add _CRT_SECURE_NO_WARNINGS and _CRT_NONSTDC_NO_DEPRECATE to the preprocessor definitions.
You need some a file with training data. We provided several files (located in the data folder) for test:
- bulding1.csv for symbolic regression problems,
- cancer1.csv for binary classification problems with 0/1 output.
- cancer1_output1-1.csv for binary classification problems with -1/1 output.
- iris.txt for multiclass classification problems.
- fibonacci.txt for univariate time-series.
- wage_growth.csv for multi-variate time-series.
Make sure that the instruction (from the main function):
if (!training_data->from_tabular_file("../data/building1.csv")) ...
has the correct path of the file.
libmep is used by MEPX.
https://github.com/mepx/libmep/wiki
Documentation is currently obsoleted. It will be updated soon.