Full description not available
T**Z
Good introduction to machine learning, basic Clojure experience required
Clojure for Machine learning, together with Clojure Data Analysis Cookbook, are two compelling books for people interested in data mining and reasoning. It is also worth mentioning that the amount of publications not dedicated to Clojure itself but how to effectively use it in real world problems is growing. Therefore Clojure for Machine Learning is not a suitable book for newcomers to the language. It will probably not be a good starting point for people completely new to machine learning as well. However basic Clojure knowledge and rough understanding of core concepts in machine learning will be enough to enjoy this book.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.
L**Y
Perfect solution for Clojure programmers who want to learn Machine Learning techniques
Clojure for Machine Learning is a perfect solution for Clojure programmers who want to learn Machine Learning techniques.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.
J**Y
A good bird-eye view of the intersection of Clojure and Machine Learning, useful for people coming from both sides
I've got a review copy of the book and have read the first three chapters. (Oh time!) In short, the book provides a good bird-eye view of the intersection of Clojure and Machine Learning, useful for people coming from both sides. It introduces a number of important methods and shows how to implement/use them in Clojure but does not – and cannot – provide deep understanding. If you are new to M.L. and really like to understand things like me, you want to get a proper textbook(s) to learn more about the methods and the math behind them and read it in parallel. If you know M.L. but are relatively new to Clojure, you want to skip all the M.L. parts you know and study the code examples and the tools used in them. To read it, you need only elementary knowledge of Clojure and need to be comfortable with math (if you haven’t worked with matrices, statistics, or derivation and equations scare you, you will have a hard time with some of the methods). You will learn how to implement some M.L. methods using Clojure – but without deep understanding and without knowledge of their limitations and issues and without a good overview of alternatives and the ability to pick the best one for a particular case.The main topics are matrices, linear regression, data categorization (f.ex. Bayesian classification, k-nearest neighbors, decision trees), neural networks, selection and evaluation of data, support vector machines, data clustering, anomaly detection and recommendation, big data. Some of the tools being used are Incanter, clj-ml (primarily a wrapper of Weka), Enclog (neural networks), BigML (facade for ML cloud services).Some impressions from the first chapters (ch 1 – 2 take 1/3 of the book):* I miss the big picture – f.ex. what kinds of regression methods are there, how to know which is appropriate? How to choose which of the 3-4 categorization methods to use in a given case? Again, a good textbook on M.L. would complement this pragmatically oriented book well.* As mentioned, the book demonstrates what is possible but does not provide enough explanation and math theory to be able to really understand some of the more complex methods. You won’t be able to go and start deriving and optimizing good regression models just based on this text.* Ch1 introduces matrices which are later used f.ex. to compute the parameters of an Ordinary Least Squares regression model. It mentions a number of concepts without elaborating their meaning such as eigen-vector and determinant.* It would be nice if the author pointed regularly to good online/offline resources where the curious reader can learn more about the math, concepts, and methods being introduced.Tip: You might want to check out the Stanford Machine Learning online course at Coursera ([...]), which also draws from numerous case studies and applications.Regarding my qualification, I am a medium-experienced Clojure developer and have briefly encountered some M.L. (regression etc. for quantitive sociological research and neural networks) at the university a decade ago, together with the related, now mostly forgotten, math such as matrices and derivation.
Trustpilot
1 month ago
1 week ago