Very nice article!
But ...
You generated your original data from: "sklearn.datasets.make_moons".
Then you say that you tested your classifier on a hold-out set with "sample_ppc()".
I don't think that's a true hold-out set. A true hold-out set would be obtained by running "make_moons()" again to generate new data.
Have you tried that? It would be interesting I think.
I'll run the test myself too ...
Again, thanks for a very nice and informative article.