Machine Learning: An Algorithmic Perspective Paperback – Apr 1 2009
|New from||Used from|
There is a newer edition of this item:
Customers Who Bought This Item Also Bought
No Kindle device required. Download one of the Free Kindle apps to start reading Kindle books on your smartphone, tablet, and computer.
Getting the download link through email is temporarily not available. Please check back later.
To get the free app, enter your mobile phone number.
… liberally illustrated with many programming examples, using Python. It includes a basic primer on Python and has an accompanying website.
It has excellent breadth, and is comprehensive in terms of the topics it covers, both in terms of methods and in terms of concepts and theory. …
I think the author has succeeded in his aim: the book provides an accessible introduction to machine learning. It would be excellent as a first exposure to the subject, and would put the various ideas in context …
This book also includes the first occurrence I have seen in print of a reference to a zettabyte of data (1021 bytes) ― a reference to "all the world’s computers" being estimated to contain almost a zettabyte by 2010.
―David J. Hand, International Statistical Review (2010), 78
If you are interested in learning enough AI to understand the sort of new techniques being introduced into Web 2 applications, then this is a good place to start. … it covers the subject matter of many an introductory course on AI and it has references to the source material and further reading but it is written in a fairly casual style. Overall it works and much of the mathematics is explained in ways that make it fairly clear what is going on … . This is a suitable introduction to AI if you are studying the subject on your own and it would make a good course text for an introduction and overview of AI.
―I-Programmer, November 2009
About the Author
Massey University, Palmerston North, New Zealand
Top Customer Reviews
Most Helpful Customer Reviews on Amazon.com (beta)
undergraduate or Masters level, or for self study, particularly if
some of the background math (eigenvectors, probability theory, etc)
is not already second nature.
Although I am now familiar with much of the math in this area and consider
myself to have intermediate knowledge of machine learning, I can still recall
my first attempts to learn some mathematical topics. At that time my approach
was to implement the ideas as computer programs and plot the results. This
book takes exactly that approach, with each topic being presented both
mathematically and in Python code using the new Numpy and Scipy libraries.
Numpy resembles Matlab and is sufficiently high level that the book code
examples read like pseudocode.
(Another thing I recall when I was first learning was the mistaken
belief that books are free from mistakes. I've since learned to
expect that every first edition is going to have some, and doubly so
for books with math and code examples. However the fact that many of the examples
in this book produce plots is reassuring.)
As mentioned I have only intermediate knowledge of machine learning, and
have no experience with some techniques. I learned regression trees
and ensemble learning from this book -- and then implemented an ensemble
tree classifier that has been quite successful at our company.
Some other strong books are the two Bishop books (Neural Networks for Pattern
Recognition; Pattern Recognition and Machine Learning),
Friedman/Hastie/Tibshirani (Elements of Statistical Learning) and
Duda/Hart/Stork (Pattern Classification). Of these, I think the first Bishop
book is the only other text suitable for a beginner, but it doesn't have the
explanation-by-programming approach and is also now a bit dated (Marsland
includes modern topics such as manifold learning, ensemble learning, and a bit
of graphical models). Friedman et al. is a good collection of algorithms,
including ones that are not presented in Marsland; it is a bit dry however.
The new Bishop is probably the deepest and best current text, but it is
probably most suited for PhD students. Duda et al would be a good book at a
Masters level though its coverage of modern techniques is more limited. Of
course these are just my impressions. Machine learning is a broad subject and
anyone using these algorithms will eventually want to refer to several of these books.
For example, the first Bishop covers the normalized flavor of radial basis
functions (a favorite technique for me), and each of the mentioned books has
their own strengths.
We chose the book for an introductory course in Machine Learning at my university, as our students often don't have the level of mathematical background necessary for treatments like the Bishop book. However, I and my colleague often had to resort to essentially replacing entire chapters of material due to serious flaws in the text. In some cases, the author gives definitions for commonly available terms that are simply factually incorrect. For example, the chapter on Evolutionary Algorithms repeatedly confuses parent selection and elitism, states that crossover cannot be defined for non-binary representations, and other similar mistakes. In the chapter on Reinforcement Learning, most of the material is at least correct, but does not progress in any meaningful manner. For instance, the author introduces TD(') methods using execution traces, gives the formula for updating the trace, and then simply stops. There is no indication of what you should do with this value once it's been calculated. There are quite a number of these sort of issues in the book.
I would also concur with the other reviewers who felt that the idea of stripping away unnecessary mathematical formalism has simply been taken too far here. It sits in an awkward middle ground: it doesn't provide enough formalism to tell you how the algorithms really work, but it simultaneously wastes so much space in trying to hand-wave its way around the issue that the code is relegated to fragments that don't give a very complete picture. I think the book would be more successful if it either accepted that at least some mathematical sophistication is necessary and dispensed with some of the cutesy hand-holding, or else dispensed with the pretense of explaining the material in an academically interesting way and simply focused on implementations of the algorithms along with explanations of the code.
On the whole, I think the book does have some value. It's one of the few books covering modern topics in machine learning that can be used by someone without a pretty solid grounding in statistics, and if the reader is motivated to augment it heavily with other sources, it can be a decent starting point for looking into some technique. But that's about it really. I think it's flawed enough that as a single source of information, it's likely to not meet its intended purpose with a great deal of success.
First, so many books of this type seem to leave off the first 20 or so pages that should tell you what it is that they are trying to do. Instead of assuming that you know what Machine Learning is all about, this book has an initial chapter that explains in simple terms what we are trying to do here.
Second, instead us using some kind of psuedocode, the examples are written in a standard language, Python. Python is a free language in the open source community so students can get/use it without incurring the costs associated with some other languages. It is also intended to be very readable which makes the demonstration programs easier to understand. There is also a chapter on programming in Python.
Machine learning usually is put into the computer science department in universities, and as a result is usually taught to computer science students. In fact, machine learning also requires more mathematical background and more engineering background than most computer science students have. The approach used in this book is to discuss algorithms used in machine learning, but to do so by stressing how and why they work.
The author says that the book is suitable for undergraduate use. Yes, it is, but for the rather advanced undergraduate or even early graduate level student
I don't think there's another ML book like this--it's aimed right at the blind spot framed by applied math reference-type books such as Bishop on one end, and books like 'Programming Collective Intelligence' which are dense with working ML code, but light on theory.
I also like this book because the code is written in NumPy, rather than in the Python standard library code. NumPy is what you would use 'in the real world' to code an ML algorithm, and if you understand the matrix-driven syntax, then the code is far more concise (e.g., no triply nested recursive loops) than the same algorithms coded using just the Python standard library.
In sum, an excellent book.
The author has excellent style of communication and his examples are simple and clear. The Math is explained in painstaking detail (even matrix multiplication). Advanced readers can easily skip these explanations, but novices will find them really useful.
Added to that, the author has taken the extra effort to code up everything in python and has provided the code to play around with! (This book could also be a fun introduction to python, which is a lovely language to learn.) Many times you read some algorithm and try to implement the pseudo-code, only to find that it takes hours for you to make it work. Something as simple as linear regression could turn out to be a pain, if you have incorrect step sizes! Many books simply say "use a small value" for the step size, and you are wondering whether 2 is small or 0.001 is small! But this book goes one step further, and says, what value of step size to use for the example, so you first get something to work before you experiment with it.
If you are teaching an under-grad CS course/introductory CS grad course on machine learning, then this is the book you need to use. Your students will love you :-).
Look for similar items by category
- Books > Computers & Technology > Computer Science > Artificial Intelligence > Machine Learning
- Books > Computers & Technology > Databases > Data Mining
- Books > Computers & Technology > Programming > Algorithms
- Books > Textbooks > Computer Science & Information Systems > Algorithms
- Books > Textbooks > Computer Science & Information Systems > Database Storage & Design