Resources for working with Machine Learning in F#

I have learned a Machine Learning course using Matlab as a prototyping tool. Since I got addicted to F#, I would like to continue my Machine Learning study in F#.

I may want to use F# for both prototyping and production, so a Machine Learning framework would be a great start. Otherwise, I can start with a collection of libraries:

  • Highly-optimized linear algebra library
  • Statistics package
  • Visualization library (which allows to draw and interact with charts, diagrams...)
  • Parallel computing toolbox (similar to Matlab parallel computing toolbox)
  • And the most important resources (to me) are books , blog posts and online courses regarding Machine Learning in a functional programming language (F#/OCaml/Haskell...).

    Can anyone suggest these kinds of resource? Thanks.


    EDIT:

    This is a summary based on the answers below:

    Machine Learning frameworks:

  • Infer.NET: an .NET framework for Bayesian inference in graphical models with good F# support.
  • WekaSharper: a F# wrapper around the popular data mining framework Weka.
  • Microsoft Sho: a continuous environment development for data analysis (including matrix operations, optimization and visualization) on .NET platform.
  • Related libraries:

  • Math.NET Numerics: internally using Intel MKL and AMD ACML for matrix operations and supporting statistics functions too.

  • Microsoft Solver Foundation: a good framework for linear programming and optimization tasks.

  • FSharpChart: a nice data visualization library in F#.

  • Reading list:

  • Numerical Computing: It is great for starting with Machine Learning in F# and introduces various tools and tips/tricks for working with these Math libraries in F#.
  • F# and Data Mining blog: It is also from Yin Zhu, the author of Numerical Computing chapter, highly recommended.
  • F# as a Octave/Matlab replacement for Machine Learning: Gustavo has just started a series of blog posts using F# as the development tool. It's great to see many libraries are plugged in together.
  • "Machine Learning in Action" 's samples in F#: Mathias has translated some samples from Python to F#. They are available in Github.
  • Hal Daume's homepage: Hal has written a number of Machine Learning libraries in OCaml. You would feel relieved if you were in doubt that functional programming was not suitable for Machine Learning.
  • Any other pointers or suggestions are also welcome.


    There isn't a single place to look for resources on F# and machine learning, but here are a couple of links that may be quite useful:

  • Numerical Computing section on MSDN is a good resource on using various numerical libraries from F#. The most advanced library that implements linear algebra and other algorithsm useful in machine learning is Math.NET Numerics.

  • Visualizing Data section on MSDN has some resources on charting in F#. The FSharpChart library is now maintained by Carl Nolan who regularly posts updates to his blog.

  • There are also a few personal pages of people who are working on relevant topics:

  • Jurgen van Gael (who did PhD in machine learning) contributed to the Math.NET library and you can read about his experience here.

  • Yin Zhu who wrote the Numerical Computing chapter on MSDN (and is a PhD student interested in machine learning) has quite a few excellent articles on his blog.


  • In addition to what Tomas mentioned, I spent some time with Infer.NET about a year ago and found it was pretty good for continuous graphical models. I know it's improved quite a lot over the last year in both the scope of the library and F# support. I suggest checking it out and seeing if it has what you need.


    Hal Daume has implemented a lot of machine learning algorithms in OCaml and Haskell. Details see my answer in Machine learning in OCaml or Haskell?

    As side from the Numerical Computing in F# book chapter on MSDN, I'd also like to recommend my Wrapper for Weka, WekaSharper. It allows you to call machine learning algorithms in Weka using an F#-friendly interface.

    I wrote an article, Why F# is the language for data mining, which reflects my thinking when I finished writing a alpha/prototype-like data mining package in F#. libml is available online. But the code was written about two years ago when I started to use F#, and I didn't have time to maintain it since then.

    链接地址: http://www.djcxy.com/p/80868.html

    上一篇: ST Monad ==代码味道?

    下一篇: 在F#中使用机器学习的资源