| 7 | HeuristicLab is an open-source environment for heuristic optimization. The software includes several optimization algorithms and problems and is targeted to three relevant user groups: practitioners, experts, and students. Practitioners are trying to solve real-world problems with classical and advanced algorithms. Experts include researchers and graduate students who are developing new advanced algorithms. Students can learn about standard algorithms and can try different algorithms and parameter settings to various benchmark algorithms. The design and architecture of HeuristicLab is specifically tuned to these three user groups and we put a strong emphasis on the ease of use of the software. The latest version can be obtained from http://dev.heuristiclab.com/download free of charge under the restrictions of the GNU General Public Licence (GPL). |
| 8 | |
| 9 | The following video is a brief tour of the features of HeuristicLab. Several more videos are available on our [[http://www.youtube.com/user/HeuristicLab?feature=watch | youtube channel]] |
| 10 | {{{#!html |
| 11 | <iframe width="560" height="315" src="http://www.youtube.com/embed/NGnDC14Pfic" frameborder="0" allowfullscreen></iframe> |
| 12 | }}} |
| 13 | |
| 14 | In this demonstration we concentrate on the unique features of HeuristicLab for data mining and knowledge discovery. The software provides a number of well-known standard algorithms for classification and regression tasks (linear regression, random forest, SVM, ...) and additionally includes an extensive implementation of symbolic regression based on genetic programming. Symbolic regression discovers the necessary structure and parameters of a regression model automatically through an evolutionary process by assembling basic building blocks: random constants, input variables, arithmetic operators, and the logarithm and exponential functions. So, symbolic regression is especially useful in applications where there is only little prior knowledge about the modeled system or process and it is necessary to infer the necessary model structure and conditional dependencies directly from the available data. The result of symbolic regression is a functional expression describing the modeled target variable based on the values of relevant input variables. Symbolic regression produces white-box models as shown below that can be analysed and improved by domain experts and can thus facilitate knowledge discovery. |
| 15 | |
| 20 | As a preparation for symbolic regression a number of parameters have to be configured. A very important parameter is the grammar that restricts the possible shapes of evolved models and defines the basic building blocks for symbolic regression models (function set). |
| 21 | [[Image(grammar.png)]] |
| 22 | |
| 23 | Other important parameters are the error function that should be minimized (e.g. mean of squared errors, mean of absolute errors, Pearson's R², ...), and the maximal size of the models. Additionally the parameters of the underlying evolutionary algorithm like population size, mutation rate, and number of iterations can be configured. |
| 24 | |
| 25 | The following equation shows a non-linear model for the tower data set as identified by symbolic regression in HeuristicLab. |
| 26 | [[Image(model.png)]] |
| 27 | |
| 28 | In HeuristicLab a number of different charts and error metrics are available directly in the GUI for each produced solutions. All results are updated dynamically while the algorithm is running. |
| 29 | [[Image(symbolicregressionmodel.png)]] |