pybaselines.Baseline2D.pspline_iasls
- Baseline2D.pspline_iasls(data, lam=1000.0, p=0.01, lam_1=0.0001, num_knots=25, spline_degree=3, max_iter=50, tol=0.001, weights=None, diff_order=2)[source]
A penalized spline version of the IAsLS algorithm.
- Parameters:
- dataarray_like, shape (M, N)
The y-values of the measured data. Must not contain missing data (NaN) or Inf.
- lam
floator sequence[float,float], optional The smoothing parameter for the rows and columns, respectively. If a single value is given, both will use the same value. Larger values will create smoother baselines. Default is 1e3.
- p
float, optional The penalizing weighting factor. Must be between 0 and 1. Values greater than the baseline will be given p weight, and values less than the baseline will be given 1 - p weight. Default is 1e-2.
- lam_1
floator sequence[float,float], optional The smoothing parameter for the rows and columns, respectively, of the first derivative of the residual. If a single value is given, both will use the same value. Default is 1e-4.
- num_knots
intor sequence[int,int], optional The number of knots for the splines along the rows and columns, respectively. If a single value is given, both will use the same value. Default is 25.
- spline_degree
intor sequence[int,int], optional The degree of the splines along the rows and columns, respectively. If a single value is given, both will use the same value. Default is 3, which is a cubic spline.
- max_iter
int, optional The max number of fit iterations. Default is 50.
- tol
float, optional The exit criteria. Default is 1e-3.
- weightsarray_like, shape (N,), optional
The weighting array. If None (default), then the initial weights will be an array with size equal to N and all values set to 1.
- diff_order
intor sequence[int,int], optional The order of the differential matrix for the rows and columns, respectively. If a single value is given, both will use the same value. Must be greater than 0. Default is 2 (second order differential matrix). Typical values are 1 or 2.
- Returns:
- baseline
numpy.ndarray, shape (M, N) The calculated baseline.
- params
dict A dictionary with the following items:
- 'weights': numpy.ndarray, shape (M, N)
The weight array used for fitting the data.
- 'tol_history': numpy.ndarray
An array containing the calculated tolerance values for each iteration. The length of the array is the number of iterations completed. If the last value in the array is greater than the input tol value, then the function did not converge.
- baseline
- Raises:
ValueErrorRaised if p is not between 0 and 1 or if diff_order is less than 2.
See also
References
He, S., et al. Baseline correction for raman spectra using an improved asymmetric least squares method, Analytical Methods, 2014, 6(12), 4402-4407.
Eilers, P., et al. Splines, knots, and penalties. Wiley Interdisciplinary Reviews: Computational Statistics, 2010, 2(6), 637-653.