Preface

The field of machine learning has grown immensely in popularity in recent years. There are, of course, many reasons for this, but the steady advancement of processing power, steadily falling costs of RAM and storage space, and the rise of on-demand cloud computing are certainly significant contributors.

But those factors only enabled the rise of machine learning; they don’t explain it. What is it about machine learning that’s so compelling? Machine learning is like an iceberg; the tip is made of novel and exciting areas of research like computer vision, speech recognition, bioinformatics, medical research, and even computers that can win a game of Jeopardy! (IBM’s Watson). These fields are not to be downplayed or understated; they will absolutely become huge market drivers in years to come.

However, there is a large underwater portion of the iceberg that is mature enough to be useful to us today—though it’s rare to see young engineers claiming "business intelligence" as their motivation for studying the field. Machine learning—yes, machine learning as it stands today—lets businesses learn from complex customer behavior. Machine learning helps us understand the stock market, weather patterns, crowd behavior at crowded concert venues, and can even be used to predict where the next flu breakout will be.

In fact, as processing resources become ever cheaper, it’s hard to imagine a future where machine learning doesn’t play a central role in most businesses' customer pipeline, operations, production, and growth strategies.

There is, however, a problem. Machine learning is a complex and difficult field with a high dropout rate. It takes time and effort to develop expertise. We’re faced with a difficult but important task: we need to make machine learning more accessible in order to keep up with growing demand for experts in the field. So far, we’re behind the curve. McKinsey & Company’s 2011 "Big Data Whitepaper" estimated that demand for talent in machine learning will be 50-60% greater than its supply by the year 2018! While this puts existing machine learning experts in a great position for the next several years, it also hinders our ability to realize the full effects of machine learning in the near future.

Why Genetic Algorithms?

Genetic algorithms are a subset of machine learning. In practice, a genetic algorithm is typically not the single best algorithm you can use to solve a single, specific problem. There’s almost always a better, more targeted solution to any individual problem! So why bother? Genetic algorithms are an excellent multi-tool that can be applied to many different types of problems. It’s the difference between a Swiss Army knife and a proper ratcheting screwdriver. If your job is to tighten 300 screws, you’ll want to spring for the screwdriver, but if your job is to tighten a few screws, cut some cloth, punch a hole in a piece of leather, and then open a cold bottle of soda to reward yourself for your hard work, the Swiss Army knife is the better bet.

Additionally, I believe that genetic algorithms are the best introduction to the study of machine learning as whole. If machine learning is an iceberg, genetic algorithms are part of the tip. Genetic algorithms are interesting, exciting, and novel. Genetic algorithms, being modeled on natural biological processes, make a connection between the computing world and the natural world. Writing your first genetic algorithm and watching astounding results appear from the chaos and randomness is awe-inspiring for many students.

Other fields of study at the tip of the machine learning iceberg are equally as exciting, but they tend to be more narrowly focused and more difficult to comprehend. Genetic algorithms, on the other hand, are easy to understand, are fun to implement, and they introduce many concepts used by all machine learning techniques.

If you are interested in machine learning but have no idea where to start, start with genetic algorithms. You’ll learn important concepts that you’ll carry over to other fields, you’ll build—no, you’ll earn—a great multi-tool that you can use to solve many types of problems, and you won’t have to study advanced math to comprehend it.

About the Book

This book gives you an easy, straightforward introduction to genetic algorithms. There are no prerequisites in terms of math, data structures, or algorithms required to get the most out of this book—though we do expect that you are comfortable with computer programming at the intermediate level. While the programming language used here is Java, we don’t use any Java-specific advanced language constructs or third party libraries. As long as you’re comfortable with object-oriented programming, you’ll have no problem following the examples here. By the end of this book, you’ll be able to comfortably implement genetic algorithms in your language of choice, whether it’s an object-oriented language, a functional one, or a procedural one.

This book will walk you through solving four different problems using genetic algorithms. Along the way, you’ll pick up a number of techniques that you can mix and match when building genetic algorithms in the future. Genetic algorithms, of course, is a large and mature field that also has an underlying mathematical formality, and it’s impossible to cover everything about the field in a single book. So we draw a line: we leave pedantry out of the discussion, we avoid mathematical formality, and we don’t enter the realm of advanced genetic algorithms. This book is all about getting you up and running quickly with practical examples, and giving you enough of a foundation to continue study of advanced topics on your own.

The Source Code

The code presented in this book is comprehensive; everything you need to get the examples to run is printed in these pages. However, to save space and paper, we often omit code comments and Java docblocks when showing examples. Please visit http://www.apress.com/9781484203293 and open the Source Code/Downloads tab to download the accompanying Eclipse project that contains all of the example code in this book—you’ll find a lot of helpful comments and docblocks that you won’t find printed in these pages.

By reading this book and working its examples, you’re taking your first step toward ultimately becoming an expert in machine learning. It may change the course of your career, but that’s up to you. We can only do our best to educate and give you the tools that you need to build your own future. Good luck!

—Burak Kanber

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset