Machine Learning is a hot topic for nowadays. ML is a core part of Data Analysis and an auxiliary tool in a lot of domains (NLP, search engines, e-commerce solutions and etc). Many ML related courses available on the Coursera in “Statistics, Data Analysis, and Scientific Computing” and “Computer Science: Artificial Intelligence, Robotics, Vision” sections. Kaggle holds ML competitions more and more often.
Java has some popular and recognized ML libraries such as Mahout and Weka, but it is much harder to find .NET high performance ML library (which does not run on the IKVM.NET).
What is already available in .NET World?
As Don Syme said, it would be cool to have an independent comparison of already available ML libraries. We need to understand what is suitable for what needs.
There are 116 Nuget packages for query “machine learning”. Anyone into #fsharp know/reviewed/used these? nuget.org/packages?q=mac…
— Don Syme (@dsyme) December 18, 2012
Also I want to mention some most promising of them:
- Encog Machine Learning Framework
- WekaSharp: An F# Wrapper for Weka
- AForge.NET : AForge.Neuro and AForge.MachineLearning
- Accord.MachineLearning
- NUML
- ILNumerics
- Infer.NET
- Microsoft Sho
What can we do?
We are talking that F# is great for data scientists and statisticians and so it is! We still do not have mature F# ML library, but we have a lot of posts about ML and a lot of interest in this domain:
- Clifford Champion and F-AI.
- Jorn Nielsen and libml.
- Mathias Brandewinder with ” Machine Learning in Action” post series and sources code:
- Reto Matter and his Neural Network series:
- Andy Gordon and Infer.NET:
- Yin Zhu:
- “F# as a Octave/Matlab replacement for Machine Learning” by Gustavo Guerra
- “K-means step by step in F#” by Anton Kropp.
- Chris Smith:
- “Discrete Classification using F# and Fuzzy Logic” by TechNeilogy
It is time to put it all together into FShapr.ML. This can be done in two parts: a complete functional ML framework plus a collection of useful customizable samples.