Programming Books C Java PHP Python Learn more Browse Programming Books
Buy New
  • List Price: $44.99
  • Save: $15.65 (35%)
FREE Shipping on orders over $35.
In Stock.
Ships from and sold by
Gift-wrap available.
Sell yours for a Gift Card
We'll buy it for $11.60
Learn More
Trade in now
Have one to sell? Sell on Amazon
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See all 2 images

Machine Learning in Action Paperback – April 19, 2012

ISBN-13: 978-1617290183 ISBN-10: 1617290181 Edition: 1st

Buy New
Price: $29.34
30 New from $24.84 13 Used from $28.19
Amazon Price New from Used from
"Please retry"
$24.81 $28.19
Free Two-Day Shipping for College Students with Amazon Student Free%20Two-Day%20Shipping%20for%20College%20Students%20with%20Amazon%20Student

Frequently Bought Together

Machine Learning in Action + Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython
Price for both: $56.37

Buy the selected items together

Shop the new
New! Introducing the, a hub for Software Developers and Architects, Networking Administrators, TPMs, and other technology professionals to find highly-rated and highly-relevant career resources. Shop books on programming and big data, or read this week's blog posts by authors and thought-leaders in the tech industry. > Shop now

Product Details

  • Paperback: 384 pages
  • Publisher: Manning Publications; 1 edition (April 19, 2012)
  • Language: English
  • ISBN-10: 1617290181
  • ISBN-13: 978-1617290183
  • Product Dimensions: 7.4 x 1 x 9.2 inches
  • Shipping Weight: 1.4 pounds (View shipping rates and policies)
  • Average Customer Review: 3.5 out of 5 stars  See all reviews (22 customer reviews)
  • Amazon Best Sellers Rank: #206,916 in Books (See Top 100 in Books)

Editorial Reviews

About the Author

Peter Harrington holds a Bachelors and a Masters Degrees in Electrical Engineering. He is a professional developer and data scientist. Peter holds five US patents and his work has been published in numerous academic journals.

More About the Author

Discover books, learn about writers, read author blogs, and more.

Customer Reviews

Unfortunately, in many cases the author doesn't explain what he is trying to achieve with his code snippets.
Amazon Customer
In short, if you want to "Just do ML", ie, quickly get started and pick up anything else you need along the way, then this book may be for you.
Sujit Pal
And if you know something about ML, this is a good complement with regard to a practical implementation of ML algorithm.
Yeoun Jae Kim

Most Helpful Customer Reviews

56 of 60 people found the following review helpful By Jeremy Kun on June 23, 2012
Format: Paperback Verified Purchase
I agree with other reviewers' complaints on the repetitiveness and poor flow of this book, but I want to point out some other concerns and appreciations.

In the preface Harrington emphasizes the importance of knowing the theory and being able to connect the theory to the algorithms and applications. I wholeheartedly agree with this statement, but it appears Harrington forgot this was his stated goal. The mathematics contained in the book is wishy-washy and vague, and its connections to the algorithms is at best tenuous. Harrington rarely explains why a particular formula is used, and when he does he's really explaining how it's used and not why it makes sense to use it (given, this is a common criticism of applied mathematics). He will often throw in mathematical jargon without a useable explanation. And for every paragraph spent on mathematical theory, five paragraphs are spent on how to use various third-party libraries for graphing, UI, and data collection (e.g., Tkinter, Matplotlib, Yahoo! PlaceFinder API, Google Shopping API, etc.). These are great, but they massively clutter the text. I'd much rather have a 200 page appendix than have circuitous detours sprinkled throughout the book.

One big plus is in his treatment of support vector machines. He includes (unlike many texts which are solely about support vector machines) a complete python implementation of the Sequential Minimal Optimization algorithm. That being said, it's a horrendous piece of code clearly not written for legibility. This page (page 109) is littered with at least fifteen 1-3 letter variable names and pointless statements like "if L==H: print 'L==H'; continue".
Read more ›
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
25 of 27 people found the following review helpful By Arun R on June 16, 2012
Format: Paperback Verified Purchase
Looking at many good reviews on amazon, I decided to purchase this book. It's a decent book, but IMO it has been edited poorly and the code has not been tested properly.

The introduction chapter got me really excited, just like other Manning's "in Action" books do. But once I started executing the code in chapter 2 "Classifying with k-nearest neighbors" I realized that the code had bugs. Though I could figure out what's wrong and fix the bugs, I did not expect this from Manning, after having read some of their excellent books like (The Quick Python Book, Second Edition, Spring in Action and Hadoop in Action).

Moreover the book has some introduction to python and numpy in appendix A. I believe the author could have pointed the reader elsewhere for learning python and those pages could have been used to explain more of numpy and matplotlib, which the author uses freely without any explanation in the text. (Yup, be ready to read some online numpy and matplotlib tutorials and documentation.)

If you don't know python, then you can do what I did: read The Quick Python Book, Second Edition and then attempt this book.

The figures in the book are not in color so you need to execute the code to understand what the author is telling. It forces you to actually run the code, which is good, but you can't read this book without a computer in front of you.
Read more ›
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
46 of 54 people found the following review helpful By del08751 on June 15, 2012
Format: Paperback Verified Purchase
Using Python and NumPy code to teach machine learning is a great idea. Well-written Python is so easy to understand that it's often called 'executable pseudocode', and third-party extensions such as NumPy and SciPy make it competitive with platforms like Matlab for math and science application programming. The author seems to know his subject, and he had another good idea when deciding to structure the book around the ten most popular machine learning algorithms (though he only ends up covering eight of them for reasons he explains in the introduction). Unfortunately, the book is poorly written and even more poorly edited; it reads like a very rough draft that was put once through a spell-checker and then published. The text is repetitive, confused, and often doesn't match up with the code and data sets to which it refers. Color-coded figures are published (in the print edition) in black and white. I'd hesitate to trust this author and publisher again (not to mention the reviewers who gave the book four or five stars).
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
7 of 8 people found the following review helpful By John Leitch on December 24, 2012
Format: Paperback
As a book that targets developers, I expected Machine Learning in Action to have clear and concise code samples. The author's language of choice, Python, further compounded this expectation; while I am personally not a fan of Python, it carries a well deserved reputation for being extraordinarily readable. Unfortunately, the samples suffer from serious readability issues due to violations of basic programming principles.

Since I found the violations of the Don't Repeat Yourself (DRY) principle to be both the most prolific and impactful, I will share some examples. Sorry about the lack of indentation; apparently Amazon does not like whitespace.

Page 53:
xMid = (parentPt[0]-cntrPt[0])/2.0 + cntrPt[0]
yMid = (parentPt[1]-cntrPt[1])/2.0 + cntrPt[1]

Page 70:
if trainCategory[i] == 1:
p1Num += trainMatrix[i]
p1Denom += sum(trainMatrix[i])
p0Num += trainMatrix[i]
p0Denom += sum(trainMatrix[i])

Page 79:
wordList = textParse(feed1['entries'][i]['summary']
wordList = textParse(feed0['entries'][i]['summary']

Page 90:
if int(labelMat[i]) == 1:
xcord1.append(dataArr[i,1]); ycord1.append(dataArr[i, 2])
xcord2.append(dataArr[i,1]); ycord2.append(dataArr[i, 2])

Keep in mind these are just the examples I found by doing a cursory scan while writing this review. A few instances would have been forgivable, but the problem is widespread and it had a major impact on my ability to reason about the code. Unless a revised edition with cleaner code is released (and I hope it is, there's a lot of potential here) I cannot recommend this book.
1 Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again

Most Recent Customer Reviews