scikit-learn/scikit-learn — pull request #2457 by untom (2013-09-18 15:24:08+00:00)
Title: Switch BernoulliRBM to CSR format

While taking a look at Issue #2455, I've noticed that `BernoulliRBM` enforces CSC format for sparse data. However it accesses the data row-wise (it trains in Minibatches of `batch_size` rows). Thus CSR format seems like a much more natural choice.

I ran some short tests on a 2000x100000 sparse matrix with 95% sparsity on an RBM with 128 components, and saw a speedup of ~ 5% when switching from CSC to CSR matrices... (I'd expect the speedup to be larger on larger matrices).