14
$\begingroup$

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.

$\endgroup$
1
  • 2
    $\begingroup$ This question, as it is currently phrased, would be better suited to CrossValidated: stats.stackexchange.com $\endgroup$
    – Shane
    Feb 11, 2011 at 14:40

4 Answers 4

10
$\begingroup$

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.

$\endgroup$
4
  • $\begingroup$ Thanks @Shane for the great answer. Isn't R much slower than C/C++? $\endgroup$
    – Zarbouzou
    Feb 11, 2011 at 15:56
  • 4
    $\begingroup$ 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). $\endgroup$
    – Shane
    Feb 11, 2011 at 15:56
  • 2
    $\begingroup$ Ok, then i'll have to learn programming in R. $\endgroup$
    – Zarbouzou
    Feb 11, 2011 at 16:21
  • 4
    $\begingroup$ @Zarbouzou Very wise decision. $\endgroup$
    – Shane
    Feb 11, 2011 at 16:22
8
$\begingroup$

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

$\endgroup$
1
  • $\begingroup$ Looks like exactly what I was looking for. Thanks $\endgroup$
    – Zarbouzou
    Feb 13, 2011 at 11:11
7
$\begingroup$

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.

$\endgroup$
7
$\begingroup$

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

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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