fdars.metric
Distance metrics for functional data. "Self" functions compute an n-by-n distance matrix from a single dataset. "Cross" functions compute an n1-by-n2 matrix between two datasets.
Functions
lp_self_1d
fdars.lp_self_1d(data, argvals, p=2.0)
Lp distance matrix for a single 1D functional dataset.
| Parameter |
Type |
Default |
Description |
data |
ndarray (n, m) |
|
Functional data matrix |
argvals |
ndarray (m,) |
|
Evaluation points for integration |
p |
float |
2.0 |
Lp exponent; use float('inf') for L-infinity |
| Returns |
Type |
Description |
| dist |
ndarray (n, n) |
Symmetric distance matrix |
t = np.linspace(0, 1, 100)
D = fdars.lp_self_1d(data, t, p=2.0)
lp_cross_1d
fdars.lp_cross_1d(data1, data2, argvals, p=2.0)
Lp distance matrix between two 1D functional datasets.
| Parameter |
Type |
Default |
Description |
data1 |
ndarray (n1, m) |
|
First dataset |
data2 |
ndarray (n2, m) |
|
Second dataset |
argvals |
ndarray (m,) |
|
Evaluation points |
p |
float |
2.0 |
Lp exponent |
| Returns |
Type |
Description |
| dist |
ndarray (n1, n2) |
Distance matrix |
D = fdars.lp_cross_1d(train, test, t, p=2.0)
lp_self_2d
fdars.lp_self_2d(data, argvals_s, argvals_t, p=2.0)
Lp self-distance matrix for 2D functional data.
| Parameter |
Type |
Default |
Description |
data |
ndarray (n, m1*m2) |
|
Flattened 2D data |
argvals_s |
ndarray (m1,) |
|
First dimension grid |
argvals_t |
ndarray (m2,) |
|
Second dimension grid |
p |
float |
2.0 |
Lp exponent |
| Returns |
Type |
Description |
| dist |
ndarray (n, n) |
Distance matrix |
D = fdars.lp_self_2d(data, s_grid, t_grid, p=2.0)
lp_cross_2d
fdars.lp_cross_2d(data1, data2, argvals_s, argvals_t, p=2.0)
Lp cross-distance matrix for 2D functional data.
| Parameter |
Type |
Default |
Description |
data1 |
ndarray (n1, m1*m2) |
|
First dataset |
data2 |
ndarray (n2, m1*m2) |
|
Second dataset |
argvals_s |
ndarray (m1,) |
|
First dimension grid |
argvals_t |
ndarray (m2,) |
|
Second dimension grid |
p |
float |
2.0 |
Lp exponent |
| Returns |
Type |
Description |
| dist |
ndarray (n1, n2) |
Distance matrix |
hausdorff_self_1d
fdars.hausdorff_self_1d(data, argvals)
Hausdorff distance matrix for 1D functional data. Treats each curve as a set of (t, y(t)) points.
| Parameter |
Type |
Description |
data |
ndarray (n, m) |
Functional data |
argvals |
ndarray (m,) |
Evaluation points |
| Returns |
Type |
Description |
| dist |
ndarray (n, n) |
Distance matrix |
D = fdars.hausdorff_self_1d(data, t)
hausdorff_cross_1d
fdars.hausdorff_cross_1d(data1, data2, argvals)
Hausdorff cross-distance for 1D data.
| Parameter |
Type |
Description |
data1 |
ndarray (n1, m) |
First dataset |
data2 |
ndarray (n2, m) |
Second dataset |
argvals |
ndarray (m,) |
Evaluation points |
| Returns |
Type |
Description |
| dist |
ndarray (n1, n2) |
Distance matrix |
hausdorff_self_2d
fdars.hausdorff_self_2d(data, argvals_s, argvals_t)
Hausdorff self-distance for 2D data.
| Parameter |
Type |
Description |
data |
ndarray (n, m1*m2) |
Flattened 2D data |
argvals_s |
ndarray (m1,) |
First dimension grid |
argvals_t |
ndarray (m2,) |
Second dimension grid |
| Returns |
Type |
Description |
| dist |
ndarray (n, n) |
Distance matrix |
hausdorff_cross_2d
fdars.hausdorff_cross_2d(data1, data2, argvals_s, argvals_t)
Hausdorff cross-distance for 2D data.
| Parameter |
Type |
Description |
data1 |
ndarray (n1, m1*m2) |
First dataset |
data2 |
ndarray (n2, m1*m2) |
Second dataset |
argvals_s |
ndarray (m1,) |
First dimension grid |
argvals_t |
ndarray (m2,) |
Second dimension grid |
| Returns |
Type |
Description |
| dist |
ndarray (n1, n2) |
Distance matrix |
dtw_self_1d
fdars.dtw_self_1d(data, p=2.0, w=0)
Dynamic Time Warping self-distance matrix for 1D data.
| Parameter |
Type |
Default |
Description |
data |
ndarray (n, m) |
|
Functional data |
p |
float |
2.0 |
Lp exponent for pointwise cost |
w |
int |
0 |
Sakoe-Chiba band width; 0 means no constraint |
| Returns |
Type |
Description |
| dist |
ndarray (n, n) |
Distance matrix |
D = fdars.dtw_self_1d(data, p=2.0, w=10)
dtw_cross_1d
fdars.dtw_cross_1d(data1, data2, p=2.0, w=0)
DTW cross-distance for 1D data (curves may have different lengths).
| Parameter |
Type |
Default |
Description |
data1 |
ndarray (n1, m1) |
|
First dataset |
data2 |
ndarray (n2, m2) |
|
Second dataset |
p |
float |
2.0 |
Lp exponent |
w |
int |
0 |
Sakoe-Chiba band width |
| Returns |
Type |
Description |
| dist |
ndarray (n1, n2) |
Distance matrix |
soft_dtw_self_1d
fdars.soft_dtw_self_1d(data, gamma=1.0)
Soft-DTW distance matrix (differentiable approximation to DTW).
| Parameter |
Type |
Default |
Description |
data |
ndarray (n, m) |
|
Functional data |
gamma |
float |
1.0 |
Smoothing parameter (smaller = closer to DTW) |
| Returns |
Type |
Description |
| dist |
ndarray (n, n) |
Distance matrix |
D = fdars.soft_dtw_self_1d(data, gamma=0.1)
soft_dtw_cross_1d
fdars.soft_dtw_cross_1d(data1, data2, gamma=1.0)
Soft-DTW cross-distance for 1D data.
| Parameter |
Type |
Default |
Description |
data1 |
ndarray (n1, m) |
|
First dataset |
data2 |
ndarray (n2, m) |
|
Second dataset |
gamma |
float |
1.0 |
Smoothing parameter |
| Returns |
Type |
Description |
| dist |
ndarray (n1, n2) |
Distance matrix |
soft_dtw_div_self_1d
fdars.soft_dtw_div_self_1d(data, gamma=1.0)
Soft-DTW divergence self-distance. Bias-corrected version of Soft-DTW that is a proper divergence.
| Parameter |
Type |
Default |
Description |
data |
ndarray (n, m) |
|
Functional data |
gamma |
float |
1.0 |
Smoothing parameter |
| Returns |
Type |
Description |
| dist |
ndarray (n, n) |
Divergence matrix |
D = fdars.soft_dtw_div_self_1d(data, gamma=1.0)
soft_dtw_div_cross_1d
fdars.soft_dtw_div_cross_1d(data1, data2, gamma=1.0)
Soft-DTW divergence cross-distance.
| Parameter |
Type |
Default |
Description |
data1 |
ndarray (n1, m) |
|
First dataset |
data2 |
ndarray (n2, m) |
|
Second dataset |
gamma |
float |
1.0 |
Smoothing parameter |
| Returns |
Type |
Description |
| dist |
ndarray (n1, n2) |
Divergence matrix |
fourier_self_1d
fdars.fourier_self_1d(data, n_basis=5)
Distance based on Fourier coefficients. Projects curves onto a Fourier basis and computes Euclidean distances in coefficient space.
| Parameter |
Type |
Default |
Description |
data |
ndarray (n, m) |
|
Functional data |
n_basis |
int |
5 |
Number of Fourier basis functions |
| Returns |
Type |
Description |
| dist |
ndarray (n, n) |
Distance matrix |
D = fdars.fourier_self_1d(data, n_basis=7)
fourier_cross_1d
fdars.fourier_cross_1d(data1, data2, n_basis=5)
Fourier coefficient cross-distance.
| Parameter |
Type |
Default |
Description |
data1 |
ndarray (n1, m) |
|
First dataset |
data2 |
ndarray (n2, m) |
|
Second dataset |
n_basis |
int |
5 |
Number of Fourier basis functions |
| Returns |
Type |
Description |
| dist |
ndarray (n1, n2) |
Distance matrix |
hshift_self_1d
fdars.hshift_self_1d(data, argvals, max_shift=0)
Horizontal shift distance. Finds the optimal horizontal translation minimizing L2 distance.
| Parameter |
Type |
Default |
Description |
data |
ndarray (n, m) |
|
Functional data |
argvals |
ndarray (m,) |
|
Evaluation points |
max_shift |
int |
0 |
Maximum shift in grid points; 0 means m/4 |
| Returns |
Type |
Description |
| dist |
ndarray (n, n) |
Distance matrix |
D = fdars.hshift_self_1d(data, t, max_shift=20)
hshift_cross_1d
fdars.hshift_cross_1d(data1, data2, argvals, max_shift=0)
Horizontal shift cross-distance.
| Parameter |
Type |
Default |
Description |
data1 |
ndarray (n1, m) |
|
First dataset |
data2 |
ndarray (n2, m) |
|
Second dataset |
argvals |
ndarray (m,) |
|
Evaluation points |
max_shift |
int |
0 |
Maximum shift in grid points; 0 means m/4 |
| Returns |
Type |
Description |
| dist |
ndarray (n1, n2) |
Distance matrix |