Quantitative Finance Stack Exchange is a question and answer site for finance professionals and academics. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Is there a general (or specialised) FREE library to solve learning problems such that found in the book "The Elements of statistical Learning". As it is often time consuming to write all the algorithms for statistical learning, I would like to know what (free) libraries are used in quantitative finance.

I'm thinking about libraries for languages that are not intended for numerical calculus. So R or Matlab libraries would not fit in the scope of this question. C/C++/C# or Java libraries are welcome.

share|improve this question
This question, as it is currently phrased, would be better suited to CrossValidated: stats.stackexchange.com – Shane Feb 11 '11 at 14:40
up vote 8 down vote accepted

If you're looking for Java or C/C++/C#, then you will have a much harder time with this than if you looked at R, Matlab, or Python (with Scipy).

For those other languages, I recommend:

  • Java: Weka is one of the most complete data mining libraries out there. Fortunately, it also comes with a very good book -- "Data Mining: Practical Machine Learning Tools and Techniques" -- that covers the field of data mining. They just came out with a new edition.
  • C++: In my experience, the most complete, well-documented library for this is Shark. Just one note there: it currently going through a pretty major revision as they start to use Boost to replace their existing Array library.

In general, I don't know why you wouldn't use R for this. It's freely available, very complete, has lots of documentation, and can be easily interfaced from Java (RJava) and C++ (Rcpp). Plus, if you're using "The Elements of Statistical Learning": that textbook used S-Plus/R to do all their analysis. And R is the only langauge that I know which includes all of the algorithms from the book (including things like lars, which was created by one of the book's authors). And I am starting to slowly reproduce most of the key examples from that book in R on my blog.

share|improve this answer
Thanks @Shane for the great answer. Isn't R much slower than C/C++? – Zarbouzou Feb 11 '11 at 15:56
It is, generally, but can be very fast if used appropriately (vectorized functions, etc.). That being said: I always advise people to have a clear conception of how fast is fast enough for your given project before starting to make decisions. You will have a significantly harder time reproducing ESL in C++, so decide where you want to spend your time. So one common strategy is to do your research in R and then production implementation in C++ (when speed really matters). – Shane Feb 11 '11 at 15:56
Ok, then i'll have to learn programming in R. – Zarbouzou Feb 11 '11 at 16:21
@Zarbouzou Very wise decision. – Shane Feb 11 '11 at 16:22

An interesting pick if you'd like to use Python within the Numpy/Scipy environment is scikits.learn. And an other viable Java package is Apache's Mahout.

share|improve this answer

If you are programming in C#, you may have a look at AForge.NET and Accord.NET too

share|improve this answer
Looks like exactly what I was looking for. Thanks – Zarbouzou Feb 13 '11 at 11:11

A good resource for open-source statistical learning / machine learning libraries is mloss.org.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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