Keep the gradient flowing

Learning, Machine Learning

My new job is about managing an open source package for machine learning in Python. I've had some experience with Python now, but I am a total newbie in the field of machine learning, so my first task will be to find a good reference book in the subject and start reading. The books I've come across so far have been: The classic "Artificial Intelligence, A Modern Approach" by Rusell & Norvig, also known by its initials AIMA has been a very valuable introduction. It has four chapters devoted to Machine Learning, and while it does not go very deeply into the maths nor provide detailed analysis of the algorithm, it can be read fairly easily and has very interesting historical notes at the end of each chapter. "Data Mining, Practical Machine Learning Tools and Techniques" by Ian H. Witten and Eibe Frank. It is easy going, a bit more in-depth but does not go very deep into the maths (and when it does, the section is marked as 'optional'). The second part of the book, called "The Weka Machine Learning Workbench" describes Weka, a machine learning framework written in Java. For me, this is an invaluable resource, as Weka seems to be fairly well designed and will surely provide some design inspiration. "Pattern Classification", by Richard O Duda, Peter E Hart, David G Stork. A bit harsh at the beginning, this book is slowly becoming my favorite. Doesn't hide the maths behind the algorithms, has complete sections on computational complexity, lots of exercises at the end of each chapter ... I just wish it came with answers to (selected) exercises. Interestingly, this books starts describing the most specific methods and finishes with the most general ones. In AIMA, you'll find the reverse scheme.