merge_regression_problems¶
- probnum.filtsmooth.utils.merge_regression_problems(regression_problem1, regression_problem2)[source]¶
Make a new regression problem out of two other regression problems.
- Parameters
regression_problem1 (TimeSeriesRegressionProblem) – Time series regression problem.
regression_problem2 (TimeSeriesRegressionProblem) – Time series regression problem.
- Raises
ValueError – If the locations in both regression problems are not disjoint. Multiple observations at a single grid point are not supported currently.
- Returns
problem – Time series regression problem.
- Return type
Note
To merge more than two problems, combine this function with functools.reduce.
Examples
Create two car-tracking problems with similar parameters and disjoint locations.
>>> import probnum.problems.zoo.filtsmooth as filtsmooth_zoo >>> import numpy as np >>> rng = np.random.default_rng(seed=1) >>> prob1, _ = filtsmooth_zoo.car_tracking( ... rng=rng, measurement_variance=2.0, timespan=(0.0, 10.0), step=0.5 ... ) >>> print(prob1.locations) [0. 0.5 1. 1.5 2. 2.5 3. 3.5 4. 4.5 5. 5.5 6. 6.5 7. 7.5 8. 8.5 9. 9.5]
>>> prob2, _ = filtsmooth_zoo.car_tracking( ... rng=rng, measurement_variance=2.0, timespan=(0.25, 10.25), step=0.5 ... ) >>> print(prob2.locations) [0.25 0.75 1.25 1.75 2.25 2.75 3.25 3.75 4.25 4.75 5.25 5.75 6.25 6.75 7.25 7.75 8.25 8.75 9.25 9.75]
Merge them with merge_regression_problems
>>> new_prob = merge_regression_problems(prob1, prob2) >>> print(new_prob.locations) [0. 0.25 0.5 0.75 1. 1.25 1.5 1.75 2. 2.25 2.5 2.75 3. 3.25 3.5 3.75 4. 4.25 4.5 4.75 5. 5.25 5.5 5.75 6. 6.25 6.5 6.75 7. 7.25 7.5 7.75 8. 8.25 8.5 8.75 9. 9.25 9.5 9.75]
If you have more than two problems that you want to merge, do this with functools.reduce.
>>> import functools >>> prob3, _ = filtsmooth_zoo.car_tracking( ... rng=rng, measurement_variance=2.0, timespan=(0.35, 10.35), step=0.5 ... ) >>> new_prob = functools.reduce( ... merge_regression_problems, ... (prob1, prob2, prob3), ... ) >>> print(new_prob.locations) [0. 0.25 0.35 0.5 0.75 0.85 1. 1.25 1.35 1.5 1.75 1.85 2. 2.25 2.35 2.5 2.75 2.85 3. 3.25 3.35 3.5 3.75 3.85 4. 4.25 4.35 4.5 4.75 4.85 5. 5.25 5.35 5.5 5.75 5.85 6. 6.25 6.35 6.5 6.75 6.85 7. 7.25 7.35 7.5 7.75 7.85 8. 8.25 8.35 8.5 8.75 8.85 9. 9.25 9.35 9.5 9.75 9.85]