Guide - Machine Learning The F# Software Foundation


F# is well-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. This guide includes resources related to machine learning programming with F#. To contribute to this guide, log on to GitHub, edit this page and send a pull request. Note that the resources listed below are provided only for educational purposes related to the F# programming language. The F# Software Foundation does not endorse or recommend any commercial products, processes, or services. Therefore, mention of commercial products, processes, or services should not be construed as an endorsement or recommendation. 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 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. See also First steps with Accord.NET SVM in F# R Packages - All R packages can be accessed through the RProvider for F#. See, for example, F# Neural Networks with the RProvider and Deedle 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. See, for example, ENCOG Neural Network XOR example in F# Hype - An experimental deep learning library, where you can perform optimization on compositional machine learning systems of many components, even when such components themselves internally perform optimization. Underlying computations are run by a BLAS/LAPACK backend (OpenBLAS by default).