I propose the following class structure for commons-statistics-regression. The interface carried over from commons-math is more of an academic approach to thinking about regression. For rebooting the library (and I hinted at this when I wrote the tickets for summer of code) I was hoping to emulate widespread tools like R and scikit-learn, and consider that "machine learning" is an increasingly popular use of regression. This proposed structure creates an interface that is not the same as, but will be very friendly to, anyone coming from R or scikit-learn, or similar tools in JavaScript.
There are of course many ways I can see to elaborate this scheme, say using RegressionResult objects and so forth. But Matrices paired with a double[], returning a double[] of coefficients or predictions, are likely to be the most common use cases and should be plenty to get started. Under the hood I would use the available implementations in commons-math to get up and running, and worry about improving them later. Feedback appreciated, Eric [image: image.png]