Many of the algorithms are wrapped in classes when they could simply be modules. For example, rather than having a directory structure of
algs/RandomSamplingLinearLeastSquares/__init__.py
algs/RandomSamplingLinearLeastSquares/RandomSamplingLinearLeastSquares.py
with RandomSamplingLinearLeastSquares.py defining a class, just have
algs/RandomSamplingLinearLeastSquares.py
containing the functions defined by the algorithm, wrapped in a class (or possibly not, as needed).