[.net] Resources for working with Machine Learning in F#
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.
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.
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.
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#.
- 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.
APress has a book in "Alpha" slated for release soon: Machine Learning Projects for .NET Developers. http://www.apress.com/9781430267676
The currently existing content seems to be introductory, but quite good to learn from, and its code samples are primarily F#.