Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Clojure for Machine Learning Paperback – April 24, 2014
|New from||Used from|
All Books, All the Time
Read author interviews, book reviews, editors picks, and more at the Amazon Book Review. Read it now
Frequently bought together
Customers who bought this item also bought
About the Author
Akhil Wali is a software developer, and has been writing code since 1997. Currently, his areas of work are ERP and business intelligence systems. He has also worked in several other areas of computer engineering, such as search engines, document collaboration, and network protocol design. He mostly works with C# and Clojure. He is also well versed in several other popular programming languages such as Ruby, Python, Scheme, and C. He currently works with Computer Generated Solutions, Inc. This is his first book.
If you buy a new print edition of this book (or purchased one in the past), you can buy the Kindle edition for only $2.99 (Save 84%). Print edition purchase must be sold by Amazon. Learn more.
For thousands of qualifying books, your past, present, and future print-edition purchases now lets you buy the Kindle edition for $2.99 or less. (Textbooks available for $9.99 or less.)
Top customer reviews
Book goes through pretty much all standard machine learning topics, including: linear regression, various classification algorithms, clustering, artificial neural networks and support vector machines. Author also briefly covers large scale machine learning on top off Hadoop and Map Reduce. Too bad other more modern BigData solutions were not represented. This book starts with a brief introduction to matrices and linear algebra. Not being an expert in the field I spotted few embarrassing mistakes. E.g. "For matrix A of size m x n and B of size p x q [...] if n = p, the product of A and B is a new matrix of size n x q" – in this notation the size of A times B is m x q, not n x q. Few pages later formula for calculating inversion of 2x2 matrix is broken (incorrectly transposed). For a book filled with math I would expect reviewers or proof readers to double checks easily available formulas.
Please keep in mind that Clojure for Machine learning is not a best choice to learn Clojure, it expects you to know basic constructs. Moreover Clojure code was not always perfectly idiomatic. Using + 1 rather than inc function, nesting of functions instead of composing or threading (-> macro) them, abuse of atoms to introduce mutability or using reduce instead of conceptually simpler apply + to add up vector of numbers. In one place we see sorting just to take first element – where simply taking minimum would be enough, cutting running time from O(nlogn) to O(n). However author does a good job explaining the code and in general it is quite pleasant to read. Many examples are written on top of ml-clj library, sometimes spiced with Incanter for visualization. But when the algorithm is not very complex, author implements it from scratch in plain Clojure. I found that really enjoyable.
I was reading an e-book on a dated Kindle Keyboard. The experience was rather good, however math formulas were stored in bitmap format and not scaled properly, thus when inlined in text they were much bigger than ordinary font, resulting in lots of empty space between lines. This is just cosmetics, maybe related to my device. Also one or two times the book references colours on pictures, which doesn’t work well on a black and white e-book reader.
Despite few issues, I found this book rather complete and moderately easy to read, taking subject into account. If you want to discover machine learning and have no prior Clojure knowledge, start from learning Clojure first. But if you happen to use Clojure already and need to improve your understanding or find good reference, definitely check out Clojure for machine learning. You can tell an author is an expert in the field and different aspects are explained well. You will not find many complete recipes, but a solid foundation instead.
Disclaimer: I received a free copy of this book from Packt Publishing and was asked for a review.
Clojure experience is recommended to understand the book, but it's not required. Author explains some Clojure basics and includes detailed instructions for running all examples. But since all examples are written in Clojure, reader should be at least familiar with functional paradigm.
The main focus of the book is explanation of core Machine Learning techniques, so it includes built-from-scratch implementations of basic Machine Learning algorithms with detailed explanations.
Apart from built-from-scratch implementations, all chapters contain good examples of using open source Clojure libraries like core.matrix, Incanter, clj-ml and Enclog.
I'm not sure if this book will be useful for people already familiar with Machine Learning. On the one hand, it covers all popular Machine Learning solutions for Clojure. On the other hand, it's focused on explaining Machine Learning basics.
On the other hand, the biggest issues with applying ML techniques aren’t things like “how do I run a logistic regression”, it’s things like “my data doesn’t fit in memory anymore”, “how do I get fitting time less than 8 hours”, “how do I get the last 2% of accuracy I need”, or “should I be running a logistic regression in the first place”. This is the sort of thing that’s very difficult to approach holistically in a single book, especially a brisk 270-page book that covers ten or so technique variants. To be fair, the author does bring up some meta-level issues like overfitting, regularization, and precision / recall tradeoffs, but it’s not really aimed at giving you a deep understanding of the tricky parts.
So in sum, this is a nice book to put in an office library for an occasional bootstrap, or if you’re using Clojure already and you want to dip your toes in the ML realm. Look at the table of contents, and see if there’s a good amount of “stuff” that looks intriguing (there is a really good range of coverage). But, if you have an interest in a particular technique or problem you’re better off implementing it from scratch or diving deeply into a solid library and learning the nuts and bolts on your own.
Most recent customer reviews
It does exactly what the title says.Read more