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.
Tutorials and Introductions
Introductions to different machine learning algorithms with F#:
- K-Means clustering in F#
- Simplify data with SVD and Math.NET in F#
- Recommendation Engine using Math.NET, SVD and F#
- Setting up F# Interactive for Machine Learning with Large Datasets
- Random Forests in F# - first cut
- Nearest Neighbor Classification, Part 1
- Nearest Neighbor Classification, Part 2
- Decision Tree Classification in F#
- Naïve Bayes Classification
- Logistic Regression in F#
- Support Vector Machine in F#: getting there
- AdaBoost in F#
- Support Vector Machines in F#
- Kaggle/StackOverflow contest field notes
- F# Data Mining
- Parallel Programming in F#: Aggregating Data:
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.
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