Skip to content
Sample code for the Model-Based Machine Learning book.
Branch: master
Clone or download
novikov-alexander Fix of chapter 3 null reference exceptions
This commit fixes null reference exceptions produced by the chapter 3 code.
Latest commit dd94718 May 21, 2019

README.md

MBML Book Sample Code

Supporting code for the Model-Based Machine Learning book.

This project contains the sample code and test data for the freely-available book on model-based machine learning at http://mbmlbook.com/. The book introduces readers to how to build machine learning models for real-world problems. Each chapter tackles a different problem by defining a statistical model and demonstrating how to apply it to actual data. This repository contains the source code for these models together with the sample data - so that readers can run it on their own, re-create the results from the book and experiment with modifying the code.

Models here are created and applied using the Infer.NET framework. When targeting .NET Framework/Windows code produces visualizations using Glo.

Contents

Structure of Repository

  • The Visual Studio solution Samples.sln in the root of the repository contains a project with models for every chapter of the book and a few projects with the shared code and/or unit tests from the folders described below. Code layout in projects corresponding to the book chapters is similar and expanded only once.

  • src/

    • 1. A Murder Mystery/
    • 2. Assessing People's Skills/
      • Data - input data in ObjML format
      • DataObjects - .NET types to hold the input data
      • Experiment - types that facilitate experimentation: types for metrics, results, and, possibly, other experiment-related data structures; a type that represents a single experiment and exposes a method to run it, type(s) that store multiple experiments together for comparison, etc.
      • Models - .NET types for Infer.NET models. Have methods to construct a model and to run inference on it.
      • Views - additional Glo views needed for specific chapter. Not included in compilation when targeting .Net Core.
      • Contents.cs - static type that has constants for the name of the chapter and all the sections within the chapter
      • Program.cs
    • 3. Meeting Your Match
      • Similar layout to chapter 2.
    • MBMLCommon/ - a number of utility classes shared by different projects including
      • Outputter.cs - class that encapsulates outputting objects, so that the code for chapters can output results in a platform-agnostic way. Also exposes methods for saving outputs to .objml files.
    • MBMLViews - additional Glo views shared among the chapters.
  • test/ - projects with unit tests

Building Sample Code

Please, refer to our building guide.

Contributing

We welcome contributions! Please review our contribution guide.

License

MBML Book Sample Code is licensed under the MIT license.

.NET Foundation

MBML Book Sample Code is a .NET Foundation project. It relies on Infer.NET framework.

There are many .NET related projects on GitHub.

  • .NET home repo - links to 100s of .NET projects, from Microsoft and the community.
You can’t perform that action at this time.