Framework for fitting functions to data with SciPy

## Project Description

## Fitting SciKit

A framework for fitting functions to data with SciPy which unifies the various available interpolation methods and provides a common interface to them based on the following simple methods:

`Fitter.__init__(p)`: set parameters of interpolation function, e.g. polynomial degree`Fitter.fit(x, y)`: fit given input-output data`Fitter.__call__(x)`or`Fitter.eval(x)`: evaluate function on new input data

Each interpolation routine falls in one of two categories: scatter fitting or
grid fitting. They share the same interface, only differing in the definition
of input data `x`.

Scatter-fitters operate on unstructured scattered input data (i.e. not on a
grid). The input data consists of a sequence of `x` coordinates and a sequence
of corresponding `y` data, where the order of the `x` coordinates does not
matter and their location can be arbitrary. The `x` coordinates can have an
arbritrary dimension (although most classes are specialised for 1-D or 2-D
data). If the dimension is bigger than 1, the coordinates are provided as an
array of column vectors. These fitters have `ScatterFit` as base class.

Grid-fitters operate on input data that lie on a grid. The input data consists
of a sequence of x-axis tick sequences and the corresponding array of `y`
data. These fitters have `GridFit` as base class.

The module is organised as follows:

### Scatter fitters

`ScatterFit`: Abstract base class for scatter fitters`LinearLeastSquaresFit`: Fit linear regression model to data using SVD`Polynomial1DFit`: Fit polynomial to 1-D data`Polynomial2DFit`: Fit polynomial to 2-D data`PiecewisePolynomial1DFit`: Fit piecewise polynomial to 1-D data`Independent1DFit`: Interpolate N-dimensional matrix along given axis`Delaunay2DScatterFit`: Interpolate scalar function of 2-D data, based on Delaunay triangulation and cubic / linear interpolation`NonLinearLeastSquaresFit`: Fit a generic function to data, based on non-linear least squares optimisation`GaussianFit`: Fit Gaussian curve to multi-dimensional data`Spline1DFit`: Fit a B-spline to 1-D data`Spline2DScatterFit`: Fit a B-spline to scattered 2-D data`RbfScatterFit`: Do radial basis function (RBF) interpolation

### Grid fitters

`GridFit`: Abstract base class for grid fitters`Spline2DGridFit`: Fit a B-spline to 2-D data on a rectangular grid

### Helper functions

`squash`: Flatten array, but not necessarily all the way to a 1-D array`unsquash`: Restore an array that was reshaped by`squash``sort_grid`: Ensure that the coordinates of a rectangular grid are in ascending order`desort_grid`: Undo the effect of`sort_grid``vectorize_fit_func`: Factory that creates vectorised version of function to be fitted to data`randomise`: Randomise fitted function parameters by resampling residuals

### Contact

Ludwig Schwardt <ludwig at ska.ac.za>

## History

### 0.6 (2016-12-05)

- Fix pip installation, clean up setup procedure, flake8 and add README
- PiecewisePolynomial1DFit updated to work with scipy 0.18.0
- Delaunay2DScatterFit now based on scipy.interpolate.griddata, which is orders of magnitude faster, more robust and smoother. Its default interpolation changed from ‘nn’ (natural neighbours - no longer available) to ‘cubic’.
- Delaunay2DGridFit removed as there is no equivalent anymore

### 0.5.1 (2012-10-29)

- Use proper name for np.linalg.LinAlgError

### 0.5 (2011-09-26)

- Initial release of scikits.fitting

## Release history Release notifications

## Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help | File type | Python version | Upload date |
---|---|---|---|

scikits.fitting-0.6-py2-none-any.whl (54.1 kB) Copy SHA256 hash SHA256 | Wheel | py2 | Dec 5, 2016 |

scikits.fitting-0.6.tar.gz (34.0 kB) Copy SHA256 hash SHA256 | Source | None | Dec 5, 2016 |