F# is ideally suited to machine learning because of its efficient execution, succinct style, data access capabilities and scalability. F# has been successfully used by some of the most advanced machine learning teams in the world, including several groups at Microsoft Research.

Try F# has some introductory machine learning algorithms. Further resources related to different aspects of machine learning are below.

See also the Math and Statistics and Data Science sections for related material.

Tutorials and Introductions

Introductions to different machine learning algorithms with F#:

Machine Learning Packages

Several F# machine learning packages are available. Some are accessed through F#’s interoperability mechanisms to R, Python and Java. .NET packages can be found by searching on nuget.org. For example:

  • Accord.MachineLearning - Contains Support Vector Machines, Decision Trees, Naive Bayesian models, K-means, Gaussian Mixture models and general algorithms such as Ransac, Cross-validation and Grid-Search for machine-learning applications. This package is part of the Accord.NET Framework.

  • R Packages - All R packages can be accessed through the RProvider for F#.

  • Vulpes - A machine learning app using a deep belief network and connecting to the NVIDIA GPU unit using Alea.cuBase.

  • Encog Machine Learning Framework - An advanced neural network and machine learning framework. Encog contains classes to create a wide variety of networks, as well as support classes to normalize and process data for these neural networks. Encog trains using multithreaded resilient propagation. Encog can also make use of a GPU to further speed processing time. A GUI based workbench is also provided to help model and train neural networks.

  • Numl - A machine learning library intended to ease the use of using standard modeling techniques for both prediction and clustering