This guy is translating "Programming Collective Intelligence" from Python to Ruby
railsonwave.com
railsonwave.com
For example, libSVM already exists as such an implementation. Using LAPACK or something like that for NNMF and writing an easy-to-use hook for Ruby would make more sense than doing it in Ruby. I just don't get the urge to rewrite code in another language without fundamentally improving the situation (obviously 'improvement' is subjective, but I mean here 'make it go faster').
Are there really a ton of sites that are so heavily invested in Ruby that they fail to see its shortcomings in this respect? (As in, it's slow for many types of operations... that's why most scientific libraries are written in C++ or Fortran and then interfaced to a more flexible language or languages) NumPy exists, for example, because Python sucks at manipulating matrices.
I guess I've been an academic for too long at this point, but it seems a little sad to do this unless someone is paying you for the tedium. YMMV.
Even if he weren't, there's nothing wrong with porting libraries to Ruby. There's always an impedance mismatch when you SWIG or otherwise FFI a library into a native application.
Besides, let's be honest -- Python ain't that much faster than Ruby, especially with Rubinius et al on the horizon.
Plus python is trivial to understand. Why not work through some of the more modern examples before dismissing it?
There's a big ML shop in mountain view that uses Python a lot. Can't seem to think of the name right now but ...
[1] http://i-need-closures.blogspot.com/2007/09/programming-coll...
[2] http://i-need-closures.blogspot.com/2007/09/programming-coll...
[3] http://i-need-closures.blogspot.com/2007/10/programming-coll...
Am I the only one who thinks that this field still seems so incredibly privative? Online recommendation systems particularly... they suck!
But more importantly, even if someone developed a "perfect" recommendation system, what would that be worth? For example, it has been said that symmetric encryption is good enough today that even if the perfect (could only be beaten via bruit force) algorithm was created , nothing would change.
Are we facing the same problem in this field? Or are those implementing these systems today just neglecting to take the field to the next level?
It might be just me but I found the book fairly useless. All the author does is take some ultra basic AI/Machine Learning algorithms and build some bare bones web 2.0 type scenarios around it. The chapters on neural networks, svms and decision trees struck me as particularly primitive. A lot of additional work would need to be done (e.g: nomalizing data for the NNs) before those algorithms would be useful in a real world context.
An ok book if you know nothing at all about AI/machine learning. I wonder how much value it actually provides. I might be missing something. If you think so feel free to correct me.
[Though he did exactly what I planned. I just picked up Programming Collective Intelligence, and plan to write the examples in Ruby... ]