A little experiment to see what low rank approximation looks like. These
are the best rank-k approximations (in the Frobenius norm) to the a
natural image for increasing values of k and an original image of rank
512.

Python code can be found here. GIF animation made
using ImageMagic's convert …

In scipy's development version there's a new function closely related to
the QR-decomposition of a matrix and to the least-squares solution of
a linear system. What this function does is to compute the
QR-decomposition of a matrix and then multiply the resulting orthogonal
factor by another arbitrary matrix. In pseudocode …

Last week we released a new version of scikit-learn. The Changelog is
particularly impressive, yet personally this release is important for
other reasons. This will probably be my last release as a paid engineer.
I'm starting a PhD next month, and although I plan to continue
contributing to the project …

I've been working lately in improving the scikit-learn example gallery
to show also a small thumbnail of the plotted result. Here is what the
gallery looks like now:

And the real thing should be already displayed in the development-documentation. The next thing is to add a static image to those …

Today's coding sprint was a bit more crowded, with some
notable scipy hackers such as Ralph Gommers, Stefan van der Walt,
David Cournapeau or Fernando Perez from Ipython joining in. On
what got done: - We merged Jake's new BallTree code. This is a pure
Cython implementation of a nearest-neighbor …

As a warm-up for the upcoming EuroScipy-conference, some of the
scikit-learn developers decided to gather and work together for a
couple of days. Today was the first day and there was only a handfull of
us, as the real kickoff is expected tomorrow. Some interesting coding
happened, although most of …

Ridge coefficients for multiple values of the regularization parameter
can be elegantly computed by updating the *thin* SVD decomposition of
the design matrix:

import numpy as np
from scipy import linalg
def ridge(A, b, alphas):
"""
Return coefficients for regularized least squares
min ||A x - b||^2 + alpha ||x||^2 …

I haven't worked in the manifold module since last time, yet thanks
to Jake VanderPlas there are some cool features I can talk about.
First of, the ARPACK backend is finally working and gives factor one
speedup over the lobcpg + PyAMG approach. The key is to use ARPACK's
shift-invert mode …

The manifold module in scikit-learn is slowly progressing: the
locally linear embedding implementation was finally merged along with
some documentation. At about the same time but in a different
timezone, Jake VanderPlas began coding other manifold learning
methods and back in Paris Olivier Grisel made my digits example
a lot …

I decided to test my new Locally Linear Embedding (LLE)
implementation against a real dataset. At first I didn't think this
would turn out very well, since LLE seems to be somewhat fragile,
yielding largely different results for small differences in parameters
such as number of neighbors or tolerance, but …