
On 1/9/2012 9:41 AM, Brian Schrom wrote:
On 01/09/2012 09:11 AM, Paul A. Bristow wrote:
-----Original Message-----
I, for one, think this looks a very useful library. [...] So you may need to find and drum up support from some potential (or better still, actual) users ?
I will provide a review if this library gets to review, so far, I've not looked much at this submission.
Thanks.
I think that machine learning is an area where there is enough maturity that implementations in Boost are desirable.
A couple of things to consider.
It would be desirable that the machine learning topic area be designed a bit more comprehensively than a single library. For example, I should be able to run a GA on the same data as the DE. I would hope that they have the same API. This somewhat implies to me that DE/GA are instances of training algorithms, for which, many are possible.
The way I see it, the only common point between different optimization algorithms (if they are generic enough) is the objective function, which should have a very simple prototype: double f( std::vector< double > ); so in theory if different algorithms are implemented to accept the same types (in C++ sense) of objective functions, then you could run them interchangeably between GA, DE etc without any modification to the function or algorithm.
There are many things that go into a ML solution. Data conditioning, model training, model validation, model evaluation. Training in batch modes, instance based, etc. Just to name a couple issues...
Then the normal list of library desires...completely generic, optimized for every conceivable configuration (embedded processor, server farm, etc i.e. single process, multi-threaded, mpi, etc)
My advice is to be prepared for the big can of worms that this topic could potentially bring up. I think the topic area will be a very hard sell, but would be very useful.
There are many real-life applications that I believe would benefit immediately from a maybe less than perfect implementation, so if it were my choice, I would rather release an initial version sooner and enhance it based on experience gathered from its practical use. Adrian Michel www.tradery.com