CDN$ 29.78
  • List Price: CDN$ 47.99
  • You Save: CDN$ 18.21 (38%)
Only 4 left in stock (more on the way).
Ships from and sold by Amazon.ca.
Gift-wrap available.
Quantity:1
Have one to sell?
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 – Apr 19 2012


See all 2 formats and editions Hide other formats and editions
Amazon Price New from Used from
Paperback
"Please retry"
CDN$ 29.78
CDN$ 29.78 CDN$ 32.63

Best Books of 2014
Unruly Places is our #1 pick for 2014. See all

Special Offers and Product Promotions

  • Join Amazon Student in Canada


Frequently Bought Together

Machine Learning in Action + Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython
Price For Both: CDN$ 56.08


Customers Who Viewed This Item Also Viewed



Hero Quick Promo
Boxing Day Kindle Deals
Load your library with over 30 popular fiction books and more, today only. Learn more

Product Details


Product Description

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.


Inside This Book (Learn More)
Browse Sample Pages
Front Cover | Copyright | Table of Contents | Excerpt | Index | Back Cover
Search inside this book:

What Other Items Do Customers Buy After Viewing This Item?

Customer Reviews

There are no customer reviews yet on Amazon.ca
5 star
4 star
3 star
2 star
1 star

Most Helpful Customer Reviews on Amazon.com (beta)

Amazon.com: 23 reviews
56 of 60 people found the following review helpful
Little on Theory, Too Much on UI June 23 2012
By Jeremy Kun - Published on Amazon.com
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". Harrington is apparently afraid of using whitespace, and as the function goes on it becomes increasingly cramped and impossible to read (mostly due to the pervasive use of backslashes to denote line continuations). Instead of breaking the code into functions and explaining the pieces, Harrington uses a comment-style typeset code annotation. In my opinion this only helps to clutter the page. It's clear this piece of code (as with his other code samples) were heavily constrained by the page width. It's the author and editor's job to compensate for that; they failed.

So while this book has a lot of valuable resources in it, they should fix it in two ways. First, quit pretending this is a useful mathematical treatment. Second, reorganize.

I will say at least, that with these minor modifications, this text is *vastly* better than Marsland's attempt, "Machine Learning, an Algorithmic Perspective."
25 of 27 people found the following review helpful
Good attempt but needs LOT of improvement June 16 2012
By Arun R - Published on Amazon.com
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.

Finally, I am a big believer in following the conventions of a language. I would have been really happy had the author followed PEP8 ([...]), because along with learning machine learning, you could have learnt some good python coding practices.
46 of 54 people found the following review helpful
Great idea, terrible execution June 15 2012
By del08751 - Published on Amazon.com
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).
7 of 8 people found the following review helpful
Poor Code Samples Dec 24 2012
By John Leitch - Published on Amazon.com
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])
else:
p0Num += trainMatrix[i]
p0Denom += sum(trainMatrix[i])

Page 79:
wordList = textParse(feed1['entries'][i]['summary']
docList.append(wordList)
fullText.extend(wordList)
classList.append(1)
wordList = textParse(feed0['entries'][i]['summary']
docList.append(wordList)
fullText.extend(wordList)
classList.append(0)

Page 90:
if int(labelMat[i]) == 1:
xcord1.append(dataArr[i,1]); ycord1.append(dataArr[i, 2])
else
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.
8 of 10 people found the following review helpful
Good text, very bad code June 18 2012
By Amazon Customer - Published on Amazon.com
Format: Paperback
I am new to ML, and I found this book to be easy to read and easy to understand. So, from theoretical perspective it's probably a very good book. However, the code samples are just terrible. Obviously, the author is a scientist, and needs a competent developer that can help him with code samples. For some reason he feels the need to praise Python. As result, there is a code sample that says "This code is a great place to demonstrate how easy it is to process text with Python", but the example has at least three bugs in 15 lines of code - so the comment turns a compliment into embarrassment.

Unfortunately, in many cases the author doesn't explain what he is trying to achieve with his code snippets. Once that is clear, there is usually a much simpler way to accomplish the same thing; with less numpy calls and more regular Python. I get an overall feeling that the book is for mathematicians and statisticians, who will look at code snippets as illustrations - and not for programmers. This feeling is reinforced by the fact that many code snippets in my electronic copy are *images* where nothing can cut and pasted; not to mention that 'el' and 'one', 'oh' and 'zero' look the same.

Last, the book is published in 2012, but the author seems completely oblivious to the fact that there is Python 3 in the market.

In summary, if this text was accompanied by competent code - it probably would be the best book on the subject


Feedback