To explain the perspective from which this book was written, it will be helpful to define
the terms machine learning and hackers.
What is machine learning? At the highest level of abstraction, we can think of machine
learning as a set of tools and methods that attempt to infer patterns and extract insight
from a record of the observable world. For example, if we’re trying to teach a computer
to recognize the zip codes written on the fronts of envelopes, our data may consist of
photographs of the envelopes along with a record of the zip code that each envelope
was addressed to. That is, within some context we can take a record of the actions of
our subjects, learn from this record, and then create a model of these activities that will
inform our understanding of this context going forward. In practice, this requires data,
and in contemporary applications this often means a lot of data (several terabytes).
Most machine learning techniques take the availability of such a data set as given—
which, in light of the quantities of data that are produced in the course of running
modern companies, means new opportunities.
What is a hacker? Far from the stylized depictions of nefarious teenagers or Gibsonian
cyber-punks portrayed in pop culture, we believe a hacker is someone who likes to
solve problems and experiment with new technologies. If you’ve ever sat down with
the latest O’Reilly book on a new computer language and knuckled out code until you
were well past “Hello, World,” then you’re a hacker. Or, if you’ve dismantled a new
gadget until you understood the entire machinery’s architecture, then we probably
mean you, too. These pursuits are often undertaken for no other reason than to have
gone through the process and gained some knowledge about the how and the why of
an unknown technology.