May 26, 2013

Review of "Clojure Data Analysis Cookbook" book

(Disclaimer: I've got the "Clojure Data Analysis Cookbook" book from Packt Publishing for review - as one of Incanter's maintainers, I was interested how this package is described there).

The book itself is classical cookbook - there are different recipes, combined by common topics into chapters, but almost independent from each other.  You can select any of them, and experiment with it.  But book doesn't described theoretical foundations of corresponding examples - it only gives solution & explain how it works, but you can find more information by using links to additional information.  Neither this book describes Clojure itself - you need to grab some other book for this, such as "Programming Clojure, 2ed" or "Clojure Programming".

Book covers wide range of problems, starting with data import (from different sources & formats), cleanup. After that, author shows how performance of processing could be improved by different tricks, starting with basic type hints, and continue by using Clojure's primitives for concurrent programming (agents, STM, pmap, reducers, etc.). Separate chapter is dedicated to analysis of data using Cascalog - Clojure-based framework for data transformation & analysis.

Several chapters covers Incanter - from operations with datasets, to statistical analysis and charting - this information is enough to start to use Incanter for data analysis.  Book describes latest version of Incanter - 1.4.1, although some information (such as import of data from SQL databases) will become outdated in Incanter 1.5.0 (I hope that it will be released soon).

Besides Incanter, book describes how to use Clojure together with other programs and libraries for statistics and data mining, such as Weka, Mathematica & R.  And the last chapter of the book describes how you can create charts in web applications using Clojure web frameworks, Clojurescript & existing Javascript libraries for charting.

I can recommend this book if you're interested in data analysis, and have some experience/interest in Clojure.

I can't say that this is perfect book - there are some problems with code formatting, and in electronic version, URLs aren't clickable (that would be very useful when you want to read additional information.  But overall impression from this book is very good.

I want to thank author, Eric Rochester, that he wrote such useful book.

No comments: