It seems that Packt Publishing is on a publishing spree on Machine Learning in Python. After Building Machine Learning Systems In Python for which I was technical reviewer, Packt published Learning Scikit-Learn In Python last November.
I started using Boost.Asio years ago for my professional occupation. I remember difficult hours trying to understand its help and its tutorials. Would that have been different with the book?
I recently had the opportunity to be a technical reviewer for the new Building Machine Learning Systems in Python. As I took part in the book, I won’t write a review like what I did for other books.
First, I have to say that I was impressed by the quality of the content. Although I had some things that I thought were not excellent (I still need to check how my reviews changed the book), it’s the best book I’ve read from Packt so far. It has a good balance between code and comprehension, which is an equilibrium that is rarely achieved.
I don’t think it is possible to write a better book on Machine Learning in Python, unless the ecosystem evolves with new algorithms. Which it will, and it will mean a new edition of the book! Neat!
Open Source software seems for the young generation as sure as the sun rises. And even if I witnessed the emergence of Open Source, I more often than not forget that there was a time when Linux didn’t exist. This recent history brought us a lot, but we may only have handpicked some of this revolution’s fruit. Eric Raymond is one of the guys behind this revolution, and he took some time to think about the changes it brought.
I’m please to announce a new version for scikits.optimization. The main focus of this iteration was to finish usual unconstrained optimization algorithms.
- Fixes on the Simplex state implementation
- Added several Quasi-Newton steps (BFGS, rank 1 update…)
The scikit can be installed with pip/easy_install or downloaded from PyPI
It has been a while, too long for sure, since my last update on this scikit. I’m pleased to announce that some algorithms are finally fixed as well as some tests.
- Fixed Polytope/Simplex/Nelder-Mead
- Fixed the Quadratic Hessian helper class
Additional tutorials will be available in the next weeks.
Yes, because Cover Trees are sometimes too slow. In fact, I asked myself this question, not for the build time, but for the search time if the data has a structure. Imagine, what would happen if your data was more a less a regular grid? When I tried that, starting with a point at (0,0), then (1,0)… the first node (0,0) had references to all the last points (9,9), (9,8)… And I figured, it would be slower than a tree search. So I decided to give kd-trees a shot for this kind of search on a regular grid.
I had to port a simplex/Nelder-Mead optimizer that I already have in Python in C++. As for the Python version, I tried to be as generic as possible but as efficient as possible, so the state is no longer a dictionary, but a simple structure.
I could have used the Numerical Recipes version, but the licence cost is not worth it, and the code is not generic enough, not explained enough. And also there are some design decisions that are questionable (one method = one responsibility).
I’ve looked on github for a good C++ implementation of Cover Trees for nearest-neighbors search, but I didn’t find one. I may have overlooked some repositories, but in the end, implementing it myself wasn’t that difficult.