Microsoft has announced its machine learning framework Infer.NET is now open source. Infer.NET focuses specifically on running Bayesian inference in graphical models. According to the company, it can also be used for probabilistic programming.

“Open sourcing Infer.NET represents the culmination of a long and ambitious journey. Our team at Microsoft Research in Cambridge, UK embarked on developing the framework back in 2004. We’ve learned a lot along the way about making machine learning solutions that are scalable and interpretable. Infer.NET initially was envisioned as a research tool and we released it for academic use in 2008. As a result, there have been hundreds of papers published using the framework across a variety of fields, everything from information retrieval to healthcare,” Yordan Zaykov, principal research software engineering lead, wrote in a post.

Microsoft believes the framework can be used to solve machine learning problems like classification, recommendations, and clustering, as well as customized solutions and domain-specific problems. It has been applied to a variety of different domains such as information retrieval, bioinformatics, epidemiology, and vision.2

“Infer.NET enables a model-based approach to machine learning. This lets you incorporate domain knowledge into your model. The framework can then build a bespoke machine learning algorithm directly from that model. This means that instead of having to map your problem onto a pre-existing learning algorithm that you’ve been given, Infer.NET actually constructs a learning algorithm for you, based on the model you’ve provided,” Zaykov wrote.

Zaykov explained a huge advantage of the framework is interpretability. “If you have designed the model yourself and the learning algorithm follows that model, then you can understand why the system behaves in a particular way or makes certain predictions. As machine learning applications gradually enter our lives, understanding and explaining their behavior becomes increasingly more important,” Zaykov wrote.

The best way to use Infer.NET is when you have extensive knowledge about a specific domain you are trying to solve or when you are interpreting the behavior of a system that is important to you, according to Zaykov.

Going forward, Infer.NET will become apart of Microsoft’s machine learning framework for .NET developers ML.NET. A repository under .NET Foundation is already being set up in order to provide integration with ML.NET.