HTTPS clone URL
Subversion checkout URL
Neighbors working notes
- A list of topics for a Google summer of code (GSOC) 2011
- A list of topics for a google summer of code (gsoc) 2012
- A list of topics for a Google Summer of Code (GSOC) 2013
- C integer types: the missing manual
- Contributors Guide
- Coordinated descent in linear models project discussion, summer 2012
- Efficient implementation of covariance updates
- git and github tips
- Google summer of code (GSOC) 2014
- Google summer of code (GSOC) 2015
- GSOC 2014 Project Proposal : Locality sensitive Hashing for approximate neighbor search
- GSoC 2014 Application: Improved Linear Models
- GSoC 2014: Extending Neural Networks Module for Scikit learn
- GSoC 2015 : Various enhancements to the model selection API of scikit learn
- GSoC 2015 Proposal: Cross validation and Meta estimators for Semi supervised Learning
- GSoC 2015 Proposal: Global optimization based Hyper parameter optimization
- GSoC 2015 Proposal: Global optimization based Hyper parameter optimization (SMAC RF and GP) Hamzeh Alsalhi
- GSoC 2015 Proposal: Improve GMM module
- GSoC 2015 Proposal: Metric Learning module
- GSoC 2015 Proposal: scikit learn: Cross validation and Meta estimators for Semi supervised learning
- How to make a release
- How to write docs
- Liblinear fork
- Manifold working notes
- Need for speed project discussion, summer 2012
- Neighbors working notes
- Past sprints
- Pipeline et al. design issues
- Quick packaging for Debian Ubuntu
- Setting up tests to benchmark current and future code
- Third party projects and code snippets
- Upcoming events
Clone this wiki locally
Function barycenter tries to find appropriate weights to reconstruct the point x from a subset (y1, y2, ..., yn), where weights sum to one.
This is just a simple case of Equality Constrained Least Squares  with constrain dot(np.ones(n), x) = 1. In particular, the Q matrix from the QR decomposition of B is the Householder reflection of np.ones(n).
This method was added to ease some computations in the future manifold module, namely in LLE. However, it is still to be shown that it is useful and efficient in that context.
The algorithm has to iterate over n_samples, which is the main bottleneck. It would be great to vectorize this loop. Also, the rank updates could probably be moved outside the loop.
Also, least squares solution could be computed more efficiently by a QR factorization, since probably we don't care about a minimum norm solution for the undertermined case.
The paper 'An introduction to Locally Linear Embeddings', Saul & Roweis solves the problem by the normal equation method over the covariance matrix. However, it does not degrade gracefully when the covariance is singular, requiring to explicitly add regularization.
Should be good as it uses SVD to solve the LS problem. TODO: explicit bounds.
The API is convenient to use from NeighborsBarycenter and kneighbors_graph, but might not be very easy to use directly due to the fact that Y must be a 3-D array.
It should be checked that it is usable in other contexts.
|||Section 12.1.4 ('Equality Constrained Least Squares'), 'Matrix Computations' by Golub & Van Loan|