Jump to ratings and reviews
Rate this book

Thoughtful Machine Learning: A Test-Driven Approach

Rate this book
Learn how to apply test-driven development (TDD) to machine-learning algorithms--and catch mistakes that could sink your analysis. In this practical guide, author Matthew Kirk takes you through the principles of TDD and machine learning, and shows you how to apply TDD to several machine-learning algorithms, including Naive Bayesian classifiers and Neural Networks.

Machine-learning algorithms often have tests baked in, but they can't account for human errors in coding. Rather than blindly rely on machine-learning results as many researchers have, you can mitigate the risk of errors with TDD and write clean, stable machine-learning code. If you're familiar with Ruby 2.1, you're ready to start.


Apply TDD to write and run tests before you start coding
Learn the best uses and tradeoffs of eight machine learning algorithms
Use real-world examples to test each algorithm through engaging, hands-on exercises
Understand the similarities between TDD and the scientific method for validating solutions
Be aware of the risks of machine learning, such as underfitting and overfitting data
Explore techniques for improving your machine-learning models or data extraction

233 pages, Paperback

First published September 1, 2014

13 people are currently reading
51 people want to read

About the author

Matthew Kirk

18 books7 followers
Hey, how’s it going? I’m Matthew Kirk, a software engineer based out of Seattle, WA. I’m also the author of Thoughtful Machine Learning, where I present doing test-driven software development with data in Ruby, and Thoughtful Machine Learning in Python (which is available for sale on February 4th, 2017).

I’ve been building web apps since 2009 and have always been “the data guy”, thanks to my applied math degree and my previous life as a financial quant.

In my career, I’ve been fortunate enough to speak around the world about software and work on interesting projects with later-stage startups. I’ve built social media sentiment engines, diamond recommendation tools, and e-commerce search algorithms...and always got frustrated with how my data projects never seemed to follow best development practices.

So instead of preaching to my coworkers, I wrote Thoughtful Machine Learning as a way to share my knowledge with the world.

There’s lots of machine learning books out there, and I recommend you take a look at all of them. But if you want the skinny, my books are for developers who don’t care about the nuances of academic theories of machine learning…and just want to implement something in their daily work.

If you ever want to chat machine learning, my email is matt@matthewkirk.com. I look forward to hearing from you.

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
4 (12%)
4 stars
7 (22%)
3 stars
12 (38%)
2 stars
7 (22%)
1 star
1 (3%)
Displaying 1 - 4 of 4 reviews
Profile Image for Benjamin.
Author 6 books8 followers
March 13, 2015
Great if you're new to ML or old hat

Pros : Concise, Helpful examples
Best Uses : Student, Novice

I am an academic who studies machine learning and a Python programmer. For those two reasons, I thought that Thoughtful Machine Learning wouldn't be right for me. However, I had another friend who was interested into getting into machine learning - so we decided we'd read through the book together, one chapter at a time.

That was a great idea.

This book is a short read, and a chapter a day is very easily digestible. With that chapter you get to explore ML topics from the standard Naive Bayes to things that aren't typically included in an entry level ML book like SVMs and HMMs. Matt does a great job of creating clear examples and uses non-academic language to explain things. His code doesn't rely on libraries and demonstrates the effectiveness of these techniques.

What that means is that if you're new to ML - this is a good way to get started into it. If you're old hat - it's a fresh perspective and a way to learn how to discuss these topics in fresh manner.

I am also a practitioner, and I thought it was a very novel thesis to include TDD with ML.
Profile Image for Michael Koltsov.
111 reviews70 followers
November 18, 2017
Well, if you're looking for a brief introduction to ML that book could be of some use for you. Unfortunately, it doesn't go far beyond that.

Code examples that are bundled with the book have-not been updated for a long time, therefore some of them don't work.

I reckon that If you had read a few blog posts from 2017 titled "Introduction to Machine Learning" with no Ruby code examples you would have known more than what this book teaches you.
1 review
December 4, 2014
An ok survey of common algorithms and techniques. Not very in depth analysis of each algorithm but didn't set out to provide one.

There was often very little explanation describing the code examples. Ruby is not always straight forward so the code itself does not tell the story. Some additional line comments walking through the steps would have been helpful.

Some topics provided significant description at an abstract level but seemed to jump to demonstration of using a library leaving the reader fuzzy about the how and why. (For example: Hidden Markov Models and Support Vector Machines).
Profile Image for Mohannad Elhamod.
46 reviews10 followers
May 23, 2016
it's actually a good summary and refresher about different machine learning techniques. I think examples lacked good explanation though, Abd I wish they used a more intuitive programming language, such as c++ or Java.
Displaying 1 - 4 of 4 reviews

Can't find what you're looking for?

Get help and learn more about the design.