Long time, no post

So it has been well over a month since my last post, and that is just far too long.  Finals snuck around the corner, then it was spring break, and then getting back into the swing of school.  But now that I am back, I thought I would jump back on the train.

Today, I thought I would provide a couple thoughts on some tools I have been trying out.  I use Matlab fairly extensively in school, but since I work for myself, I have to use other, alternative products to develop my strategies in to avoid having to pay Matlab’s exorbitant licensing fees.  If you’ve read some of my past posts, you will also know that I have been trying to find some sort of alternative to my Ruby addiction — something preferably statically typed and with strong functional roots.

But I am also looking for something that allows me to do easy numerical computing and statistics work.  This means a good matrix interfacing library, as well as a strong set of statistics (and preferably, econometrics) packages.

My first stop was the “Matlab” clones and cousins: Octave, SciLab, R, SciPy and Sage.  My initial thoughts were:

  • Octave: I would really like to have a GUI.  And a lot of Matlab functions I want are missing (particularly, textscan).
  • SciLab: Not enough to differentiate itself from Octave.  Why bother learning the differences?
  • R: I absolutely despise R’s semantics — but it is a brilliant statistics package.
  • Sage: Too ‘mathematica’ like for me
  • SciPy (with NumPy and IPython): Not a bad alternative, if I could get the damn thing to compile on Mac OS X 10.6

After continued searching, I found QtOctave, which solved my Octave GUI problem.  For now, I have stuck with that.

I also have been playing around with Haskell, doing as much homework in it as possible.  Being more of an ‘academic’ language, it has a lot of scientific packages available.  Unfortunately, it doesn’t really have a uniform set of interfaces, which I think is the largest bonus of Matlab.  Can Haskell do everything Matlab can?  Probably.  But can it do it as easily and without as much glue code?  Not at all.  I really do think that Haskell is a fantastic language and would like to work on a project where I can unify several projects into one easy to use package — but my Haskell capabilities are just not there yet.  This all makes the learning curve twice as frustrating compared to any of the Matlab clones.

Another tool I re-stumbled upon, which I like, is Weka.  Instead of having to code up all my classification algorithms to perform analysis, I can quickly load up a file into Weka and have it perform the tests.  Saves me a whole lot of time.  I highly recommend checking it out for any quick machine learning tasks you have.

That is pretty much it, for now.  I am currently working on installing RLaBPlus.  I will provide my thoughts in a few days.

  • Share/Bookmark

7 Responses to “Long time, no post”

  • Trainee Trader Says:

    I feel your pain you need to satisfy a lot of dependencies to get Ipython up and running well on 10.6. I gave up in the end and cheated :) . Just download macports that will handle the dependency issue. I also found the TkAgg back end works best.

  • sc Says:

    Check out RapidMiner if you like Weka.

    Compared to MATLAB, Mathematica’s fee structure is great and the language is functional programming with a ton of support for graphics. I am just getting into Mathematica-based optimization.

    sc

  • sj Says:

    In addition to RapidMiner, try out Orange — http://www.ailab.si/orange/. Python based with optional GUI.

    sj

  • Corey Says:

    Thanks for the recommendations — will definitely give them a look.

  • Andrew Says:

    Hi Corey,

    Don’t how you are getting on with Haskell, but I was thinking that a fairly simple library that could read/write CSV files and plot a few graphs would give you most of what you need to dump Matlab.

    Haskell is a great language for playing around with algorithms – it just lacks the GUI aspects and graph plotting really.

    Andrew

  • Corey Says:

    Didn’t get to touch Haskell much recently; I’ve spent most of my summer playing in Ruby. Lately, I have been playing a lot with the notion skinny daemons (e.g. http://labs.headlondon.com/2010/07/skinny-daemons/) and bundling dependencies with my models for rapid distribution methods. I still haven’t found anything as powerful as Matlab for plotting — so if anyone finds anything, I would be very interested…

  • Scott Locklin Says:

    You’ve probably settled on some crap language like Ruby by now, which is a damn shame. I use a domain specific (machine learning) lisp variant called lush (lush.sf.net) -miniscule user community, but it hardly matters, as it is preposterously easy to develop in, and you can compile stuff which runs at C speed. I’m also releasing some “building trading systems” code in it at bronzekopf.sf.net -you might find it interesting.

    Another decent alternative which can get you a job some day is OCaML; used by a couple of firms now. Same advantages as Lush, without the UI or machine learning tools.

Leave a Reply