Please advise good framework for symbolic classification. I am currently using GPTIPS for that but I belive there are better options.

What I am trying to do is following:

  1. for set of features of my data I am solving standard symbolic multigene regression and as output for each individual in my generation I receive set of trees, where each tree represents some formula.
  2. Each tree in my model encodes new feature in some new space. In this new feature space I am trying to solve classification problem. Currently I use kNN for that, but any other procedure should also apply.

So basically I am solving standard classification problem, with additional step of feature space transformation using symbolic regression.

Framework can be written on following languages: Java, Matlab, R, Python. I personally would prefer Java or Matlab, to Python or R.



Because more then 10 days passed and there is no answer to my question, I'll simply describe my own findings.

I found only one framework with Symbolic Classification out of the box:

HeuristicLab - simply great software, written on .Net. Very easy to use. Actually it took me about 15 minutes to download it, install and find out how to run my problem with it.

Other options which I found most interesting, but which require additional coding to do symbolic classification instead of symbolic regression were:

ECJ - one of most oftenly used Java frameworks for GP. Provides very good documentation and a rich set of features.

MOEA - another Java framework. Provides best set of algorithms for multiobjective problems.

rgp - R package for genetic programming. Supports symbolic regression. As always in case of R, much easier to use then Java frameworks, but has less functionality and requires additional coding for custom tasks.

pySTEP - small and old Python framework for GE, but for me it turned out to be the most suitable among other Python options.

epochX - another Java framework. It is worse then the other two Java frameworks in functionality options it provides. But it is the simplest to use.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.