There are few subjects in computing as fascinating, or intimidating, as machine learning. Let's face it -- you can't master machine learning in a weekend, and at the very least it requires a good grasp of the underlying mathematical principles.

That said, if you have the math chops, you'll want to augment your use of machine learning frameworks (there are plenty to pick from) with a good understanding of the theory behind them.

Here are five high-quality, free-to-read texts that provide introductions to and explanations of machine learning's ins and outs. Some have code examples, but most focus on formulas and theory; in principle, they can be applied to any number of languages, frameworks, or problems.

### A Course in Machine Learning

**The gist: **A highly readable text designed to provide an extremely beginner-friendly approach to the topic. The book is a work in progress -- some sections are still marked TODO -- but what it lacks in completeness, it makes up in sheer accessibility.

**Target audience: **Anyone with a good grasp of calculus, probability, and linear algebra. No expertise in any specific language is required.

**Code content: **Some pseudocode; the majority of what's presented is concepts and formulas.

### The Elements of Statistical Learning

**The gist:** A 500-plus-page text that covers what the authors describe as "learning from data," the processes of employing statistics that are the underpinnings for machine learning. It's been through two editions and 10 printings since 2001, for good reason -- it covers a massive amount of territory and isn't limited to any one field.

**Target audience: **Those who already have a good foundation in math and statistics and don't need a lot of hand-holding to translate their math skills into good code.

**Code content: **None. This isn't a software development text; this is about foundational concepts around machine learning.

### Bayesian Reasoning and Machine Learning

**The gist:** Bayesian methods are behind everything from spam filters to pattern recognition, so they constitute a major field of study for machine-learning mavens. This text walks through all the major aspects of Bayesian statistics, and how they apply to common scenarios in machine learning.

**Target audience: **Anyone with a good grasp of calculus, probability, and linear algebra.

**Code content: **Lots! Each chapter contains both pseudocode and links to a toolkit of actual code demos. That said, the code is not in Python or R, but is code for the commercial MATLAB environment, although GNU Octave can work as an open source substitute.

### Gaussian Processes for Machine Learning

**The gist: **Gaussian processes are part of the family of analyses used by Bayesian methods. This text focuses on how Gaussian concepts can be used in common machine learning methods like classification, regression, and model training.

**Target audience: **Roughly the same as "Bayesian Reasoning and Machine Learning."

**Code content: **Most of the code featured in the book is pesudocode, but like "Bayesian Reasoning and Machine Learning," the appendices include examples for MATLAB/Octave.

### Machine Learning

**The gist: **A collection of essays on different and highly specific aspects of machine learning. Some are more general and philosophical; others are focused on specific problem domains, such as "Machine Learning Methods for Spoken Dialogue Simulation and Optimization."

**Target audience: **Intended for lay readers as well as the more technically inclined.

**Code content: **Virtually none, although formulas abound. Read for flavor.