Sunday, October 7, 2012

Expression Trees / Networkx

Our next lab in machine learning is symbolic regression (fitting a function) using genetic programing.  It's a neat (though a little bit contrived) example of genetic programing.  Our programs are expression trees which we mutate according to a fitness function (the least square error).
Simple Expression Tree
Our actual function to fit just looks to be a sum of sine's, so it would be really cool if I could find an expression tree that would just take the Fourier transform, pick out the principle components, and return as sum as sines.  I have been using the networkx (published by LANL) and so far it has been really nice, but the trees aren't recursively defined so it takes a little bit of thinking to evaluate (rather than a simple post order traversal). Plus (the reason why I choose it) is the interface with Graphviz, which makes it quite easy to visualize trees.  The windows interface is a little clunky (use dotty to draw) but it worked great on the Mac.

Now if only my real research was going so well . . .

No comments:

Post a Comment