Project details for LWPR

Logo JMLR LWPR 1.2.4

by sklanke - February 6, 2012, 19:55:41 CET [ Project Homepage BibTeX BibTeX for corresponding Paper Download ]

view (9 today), download ( 1 today ), 3 comments, 0 subscriptions


Locally Weighted Projection Regression (LWPR) is a recent algorithm that achieves nonlinear function approximation in high dimensional spaces with redundant and irrelevant input dimensions. At its core, it uses locally linear models, spanned by a small number of univariate regressions in selected directions in input space. A locally weighted variant of Partial Least Squares (PLS) is employed for doing the dimensionality reduction. This nonparametric local learning system 1) learns rapidly with second order learning methods based on incremental training, 2) uses statistically sound stochastic cross validation to learn, 3) adjusts its weighting kernels based on local information only, 4) has a computational complexity that is linear in the number of inputs, and 5) can deal with a large number of - possibly redundant - inputs, as shown in evaluations with up to 50 dimensional data sets. To our knowledge, this is the first truly incremental spatially localized learning method to combine all these properties.

We have implemented the LWPR algorithm in plain ANSI C, with wrappers and bindings for C++, Matlab/Octave, and Python (using Numpy). LWPR models can be stored in platform-dependent binary files or optionally in platform-independent, human-readable XML files. The latter functionality relies on the XML parser Expat as the only dependency.

LWPR models are fully interchangeable between the different implementations, that is, you could train a regression model in Matlab, store it to a file, and load it from a Python script or C++ program to calculate predictions. Just as well, you could train a model from real robot data collected online in C/C++, and later inspect the LWPR model comfortably within Matlab.

Changes to previous version:

Version 1.2.4

  • Corrected typo in lwpr.c (wrong function name for multi-threaded helper function on Unix systems) Thanks to Jose Luis Rivero
BibTeX Entry: Download
Corresponding Paper BibTeX Entry: Download
Supported Operating Systems: Linux, Macosx, Windows, Unix
Data Formats: None
Tags: Regression, Online Learning
Archive: download here

Other available revisons

Version Changelog Date

Version 1.2.4

  • Corrected typo in lwpr.c (wrong function name for multi-threaded helper function on Unix systems) Thanks to Jose Luis Rivero
February 6, 2012, 19:55:41

Version 1.2.3

  • Corrected bugs in the Python module (missing Py_DECREF in functions returning multiple numpy arrays that led to a memory leak, as well as bad preprocessor directive "USE_EXPAT" instead of "HAVE_LIBEXPAT") Thanks to Benjamin Dittes

  • Corrected bad preprocessor directive (see above) in C++ wrapper lwpr.hh. Also added casts between signed and unsigned integers in lwpr.hh and Thanks to Peter Pastor, Robert Nickl and Adrian Haith

November 12, 2009, 11:57:54

Version 1.2.2

  • Corrected bugs in the Python module (for accessing the "n_pruned" and "num_rfs" members) Thanks to Arjan Gijsberts
  • Fixed a missing matrix transpose in the visualisation part of "test_lwpr_nD.m"

Version 1.2.1

  • Fixed two missing #includes in C++ wrapper and example that resulted in problems with GCC >= 4.3 Thanks to Dan Grollman
June 29, 2009, 20:20:44

Initial Announcement on

February 13, 2008, 16:45:01


Raj (on September 24, 2008, 09:43:49)
I go through some journal papers and conference papers based on LWPR algorithm. From my knowledge in all the papers LWPR algorithm used in Controlling the robot arms. Now my question is can i use LWPR algorithm to control the movements of mobile robots? waiting for your reply Thank you
Stefan (on October 28, 2008, 13:17:55)
Dear Raj, In general, there is no reason why you should not be able to use LWPR for mobile robots. However, without a clearer picture of what you want to learn, it is hard to judge whether other algorithms wouldn't be more suitable. Cheers, Stefan
salsePefSew (on February 17, 2009, 07:00:57)
Hello, I can't understand how to add your blog ( ) in my rss reader ------------------------ internet signature:

Leave a comment

You must be logged in to post comments.